A data structure and lookup for 3D vector fields (flow fields).
See the example and its source.
npm install vector-field
import VectorField from "vector-field";
let time = 0;
const directionFn = ([x, y, z]) => {
const n = myNoise4D(x, y, z, time);
const theta = n;
const phi = n;
return [
Math.sin(theta) * Math.cos(phi),
Math.sin(theta) * Math.sin(phi),
Math.cos(theta),
];
};
const vectorField = new VectorField(directionFn, [12, 6, 6], 1);
const frame = () => {
time += 0.001;
vectorField.update();
requestAnimationFrame(frame);
};
requestAnimationFrame(() => {
frame();
});
- VectorField
A data structure and lookup for 3D vector fields (flow fields).
- vec3 :
Array.<number>
- VectorFieldCell :
object
- VectorFieldDirectionFn :
function
The custom function to compute the cell direction (often a noise function)
A data structure and lookup for 3D vector fields (flow fields).
Kind: global class Properties
Name | Type |
---|---|
directionFn | VectorFieldDirectionFn |
steps | vec3 |
bounds | vec3 |
halfBounds | vec3 |
field | Array.<VectorFieldCell> |
Creates an instance of VectorField.
Param | Type | Default | Description |
---|---|---|---|
directionFn | VectorFieldDirectionFn |
The custom function to compute the cell direction (often a noise function) | |
[steps] | number | vec3 |
10 |
The number of steps on each dimension (all positive integer). Use integer for identical dimensions. |
[bounds] | number | vec3 |
1 |
The size of a containing box for the field. Is divided into steps for each dimension (all positive). Use integer for identical dimensions. |
Create/update the field according to the provided noise function.
Kind: instance method of VectorField
vectorField.lookup(cell) ⇒ VectorFieldCell
| undefined
Find a VectorFieldCell
at specified position. Useful to compute a particle's velocity for instance.
Kind: instance method of VectorField
Param | Type | Description |
---|---|---|
cell | vec3 |
[cx, cy, cz] |
Kind: global typedef Properties
Name | Type |
---|---|
position | vec3 |
direction | vec3 |
The custom function to compute the cell direction (often a noise function)
Kind: global typedef
Param | Type |
---|---|
position | vec3 |
stepPosition | vec3 |
MIT. See license file.