
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
WebAssembly & Javascript module for fast 3D matrix vector calculations using SIMD vector 128 bits.
v128 is an high performance javascript library for 3D matrix vector calculations using 128 bits vector type from WebAssembly
npm install v128
Web browser :
<script src="node_module/v128/dist/v128-min.js"></script>
Node.js :
const {v128} = require("v128");
await v128.init(4);
let cameraPos = v128.vector.new(0,2.5,-4);
let center = v128.vector.new(0,0,0);
let up = v128.vector.new(0,1,0);
let viewMatrix = v128.matrix.lookAt(cameraPos,center,up,v128.matrix.new());
let projectionMatrix = v128.matrix.perspective(Math.PI/2,4/3,0.1,1000,v128.matrix.new());
let viewProjection = v128.matrix.multiply(viewMatrix, projectionMatrix,v128.matrix.new());
WebGL compatibility :
gl.uniformMatrix4fv(projectionLocation, false, v128.memory.toArray(projectionMatrix));
prerequisite :
step to build : just type :
> make
objectWebAssembly & Javascript module fast matrix vector calculations using SIMD vector 128 bits.
Kind: global namespace
object
Promiseobject
UInt32Float32ArrayFloat32Arrayobject
UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32object
UInt32NumberUInt32UInt32UInt32UInt32UInt32UInt32NumberUInt32objectobjectPromisePromisePromise resolve when API is ready
Kind: static property of v128
objectmemory API
Kind: static namespace of v128
object
UInt32Float32ArrayFloat32ArrayRandomize all the memory
Kind: instance method of memory
UInt32allocate float memory array
Kind: instance method of memory
Returns: UInt32 - the pointer from v128 memory
| Param | Type | Description |
|---|---|---|
| size | Number | the number of float to allocate |
free float memory
Kind: instance method of memory
| Param | Type | Description |
|---|---|---|
| pointer | UInt32 | the pointer to free |
fill float memory with given values
Kind: instance method of memory
| Param | Type | Description |
|---|---|---|
| pointer | UInt32 | |
| ...vals | Numbers | number values to fill |
Float32Arrayget copy of portion float memory
Kind: instance method of memory
| Param | Type |
|---|---|
| pointer | UInt32 |
Float32Arrayget read/write access of portion float memory
Kind: instance method of memory
| Param | Type |
|---|---|
| pointer | UInt32 |
objectmatrix API
Kind: static namespace of v128
object
UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32UInt32fast create new matrix from initial values
Kind: instance method of matrix
Returns: UInt32 - the pointer to new matrix
| Param | Type | Description |
|---|---|---|
| ...vals | Numbers | number values to fill into matrix |
free the matrix
Kind: instance method of matrix
| Param | Type | Description |
|---|---|---|
| pointer | UInt32 | the pointer of matrix to free |
set or create matrix identity
Kind: instance method of matrix
Returns: the pointer of matrix identity
| Param | Type | Description |
|---|---|---|
| [pMatDest] | UInt32 | the pointer of matrix to set |
UInt32fast multiply 2 matrix (WebAssembly method)
Kind: instance method of matrix
Returns: UInt32 - the pointer to result matrix A*B
| Param | Type | Description |
|---|---|---|
| pMatA | UInt32 | pointer of matrix A |
| pMatB | UInt32 | pointer of matrix B |
| pMatDest | UInt32 | pointer of result matrix A*B |
UInt32fast multiply matrix * vector (WebAssembly method)
Kind: instance method of matrix
Returns: UInt32 - the pointer to result transformed vector
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of matrix |
| pVec | UInt32 | pointer of vector |
| pVecDest | UInt32 | pointer of result transformed vector (matrix * vector) |
UInt32fast create view matrix from camera position & target position (WebAssembly method)
Kind: instance method of matrix
Returns: UInt32 - the pointer to result view matrix
| Param | Type | Description |
|---|---|---|
| pCamPos | UInt32 | pointer of camera position |
| pTargetPos | UInt32 | pointer of target position |
| pUpAxis | UInt32 | pointer of up axis |
| pMatDest | UInt32 | pointer of result view matrix |
UInt32fast invert matrix (WebAssembly method)
Kind: instance method of matrix
Returns: UInt32 - the pointer to inversed matrix
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of th matrix |
| pMatDest | UInt32 | pointer of inversed matrix |
UInt32create projection matrix from perspective data
Kind: instance method of matrix
Returns: UInt32 - the pointer to result projection matrix
| Param | Type | Description |
|---|---|---|
| fovy | number | Vertical field of view in radians |
| aspect | number | Aspect ratio. typically viewport width/height |
| near | number | Near clipping bound of the frustum |
| far | number | Far clipping bound of the frustum |
| pMatDest | UInt32 | pointer of result projection matrix |
UInt32Creates a matrix from a vector translation
Kind: instance method of matrix
Returns: UInt32 - the pointer to result translated matrix
| Param | Type | Description |
|---|---|---|
| pVec | UInt32 | pointer of Translation vector |
| pMatDest | UInt32 | pointer of result translated matrix |
UInt32Creates a matrix from a vector scaling
Kind: instance method of matrix
Returns: UInt32 - the pointer to result scaled matrix
| Param | Type | Description |
|---|---|---|
| pVec | UInt32 | pointer of scaling vector |
| pMatDest | UInt32 | pointer of result scaled matrix |
UInt32Creates a matrix from the given angle around the X axis
Kind: instance method of matrix
Returns: UInt32 - the pointer to result rotated matrix
| Param | Type | Description |
|---|---|---|
| rad | Number | the angle to rotate the matrix by |
| pMatDest | UInt32 | pointer of result rotated matrix |
UInt32Creates a matrix from the given angle around the Y axis
Kind: instance method of matrix
Returns: UInt32 - the pointer to result rotated matrix
| Param | Type | Description |
|---|---|---|
| rad | Number | the angle to rotate the matrix by |
| pMatDest | UInt32 | pointer of result rotated matrix |
UInt32Creates a matrix from the given angle around the Z axis
Kind: instance method of matrix
Returns: UInt32 - the pointer to result rotated matrix
| Param | Type | Description |
|---|---|---|
| rad | Number | the angle to rotate the matrix by |
| pMatDest | UInt32 | pointer of result rotated matrix |
UInt32Rotates a matrix by the given angle around the X axis
Kind: instance method of matrix
Returns: UInt32 - the pointer of the receiving matrix
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of matrix to rotate |
| angle | Number | the angle in radian to rotate the matrix by |
| pMatDest | UInt32 | pointer of the receiving matrix |
UInt32Rotates a matrix by the given angle around the Y axis
Kind: instance method of matrix
Returns: UInt32 - the pointer of the receiving matrix
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of matrix to rotate |
| angle | Number | the angle in radian to rotate the matrix by |
| pMatDest | UInt32 | pointer of the receiving matrix |
UInt32Rotates a matrix by the given angle around the Z axis
Kind: instance method of matrix
Returns: UInt32 - the pointer of the receiving matrix
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of matrix to rotate |
| angle | Number | the angle in radian to rotate the matrix by |
| pMatDest | UInt32 | pointer of the receiving matrix |
UInt32Translates a matrix by the given vector
Kind: instance method of matrix
Returns: UInt32 - the pointer of the receiving matrix
| Param | Type | Description |
|---|---|---|
| pMat | UInt32 | pointer of matrix to translate |
| pVec | Number | pointer of vector to translate by |
| pMatDest | UInt32 | pointer of the receiving matrix |
objectvector API
Kind: static namespace of v128
object
UInt32NumberUInt32UInt32UInt32UInt32UInt32UInt32NumberUInt32UInt32fast create new vector from initial values
Kind: instance method of vector
Returns: UInt32 - the pointer to new vector
| Param | Type | Description |
|---|---|---|
| ...vals | Numbers | number values to fill into vector |
free the vector
Kind: instance method of vector
| Param | Type | Description |
|---|---|---|
| pointer | UInt32 | the pointer of vector to free |
Numberget fast length of 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: Number - the length of vector
| Param | Type | Description |
|---|---|---|
| pVec | UInt32 | pointer of vector |
UInt32fast normalize 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of normalized vector
| Param | Type | Description |
|---|---|---|
| pVec | UInt32 | pointer of vector |
| pVecDest | UInt32 | pointer of receive normalized vector |
UInt32fast add two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
| pVecDest | UInt32 | pointer of receive sum result vector ( A + B ) |
UInt32fast sub two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
| pVecDest | UInt32 | pointer of receive sum result vector ( A - B ) |
UInt32fast multiply two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
| pVecDest | UInt32 | pointer of receive multiply result vector ( A * B ) |
UInt32fast divide two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
| pVecDest | UInt32 | pointer of receive divide result vector ( A / B ) |
UInt32fast cross product of two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
| pVecDest | UInt32 | pointer of receive cross product result vector ( A.B ) |
Numberfast dot product of two 3D Homogeneous coordinates vector (WebAssembly method)
Kind: instance method of vector
Returns: Number - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVecA | UInt32 | pointer of vector A |
| pVecB | UInt32 | pointer of vector B |
UInt32fast scale vector by a scalar number
Kind: instance method of vector
Returns: UInt32 - the pointer of result vector
| Param | Type | Description |
|---|---|---|
| pVec | UInt32 | pointer of vector to scale |
| scale | Number | amount to scale the vector by |
| pVecDest | UInt32 | pointer of receive result vector |
objectWebGL2 Uniform Buffer Objects API (UBOs) using std140 layout.
Kind: static namespace of v128
objectWebGL Vertex Buffer Objects API (VBOs)
Kind: static namespace of v128
PromiseInitialize the v128 API
Kind: static method of v128
Returns: Promise - resolve when API is ready
| Param | Type | Description |
|---|---|---|
| size | Number | the number of page for v128 Memory (page = 64Kb) |
FAQs
WebAssembly & Javascript module for fast 3D matrix vector calculations using SIMD vector 128 bits.
The npm package v128 receives a total of 1 weekly downloads. As such, v128 popularity was classified as not popular.
We found that v128 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.