vf

vector-field

A data structure and lookup for 3D vector fields (flow fields).

Showing:

Popularity

Downloads/wk

5

GitHub Stars

18

Maintenance

Last Commit

3mos ago

Contributors

0

Package

Dependencies

0

License

MIT

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

vector-field

npm version stability-stable npm minzipped size dependencies types Conventional Commits styled with prettier linted with eslint license

A data structure and lookup for 3D vector fields (flow fields).

paypal coinbase twitter

See the example and its source.

Installation

npm install vector-field

Usage

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.sin(phi),
    Math.cos(theta),
    Math.sin(theta) * Math.cos(phi),
  ];
};
const vectorField = new VectorField(directionFn, [12, 6, 6], 1);

const frame = () => {
  time += 0.001;
  vectorField.update();
  requestAnimationFrame(frame);
};

requestAnimationFrame(() => {
  frame();
});

API

Classes

VectorField

A data structure and lookup for 3D vector fields (flow fields).

Typedefs

vec3 : Array.<number>
VectorFieldCell : Object
VectorFieldDirectionFn : function

The custom function to compute the cell direction (often a noise function)

VectorField

A data structure and lookup for 3D vector fields (flow fields).

Kind: global class
Properties

NameType
directionFnVectorFieldDirectionFn
stepsvec3
boundsvec3
halfBoundsvec3
fieldArray.<VectorFieldCell>

new VectorField(directionFn, [steps], [bounds])

Creates an instance of VectorField.

ParamTypeDefaultDescription
directionFnVectorFieldDirectionFnThe custom function to compute the cell direction (often a noise function)
[steps]number | vec310The number of steps on each dimension (all positive integer). Use integer for identical dimensions.
[bounds]number | vec31The size of a containing box for the field. Is divided into steps for each dimension (all positive). Use integer for identical dimensions.

vectorField.update()

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

ParamTypeDescription
cellvec3[cx, cy, cz]

vec3 : Array.<number>

Kind: global typedef

VectorFieldCell : Object

Kind: global typedef
Properties

NameType
positionvec3
directionvec3

VectorFieldDirectionFn : function

The custom function to compute the cell direction (often a noise function)

Kind: global typedef

ParamType
positionvec3
stepPositionvec3

License

MIT. See license file.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100