- 2-sat 2SAT solver
- 3d-camera-core An interface for 3D cameras
- 3d-view 3D camera view controller
- 3d-view-controls A 3D camera with hooks for input handling
- 3p Progressive triangle streams
- a-big-triangle Draws a big triangle
- affine-complement Finds a basis for the affine complement of a set of points
- affine-hull Finds the affine hull of a point set
- aho-corasick-automaton Stream Aho-Corasick automata
- almost-equal Test if two floats are almost equal
- alpha-complex Computes the alpha complex of a point set in any dimension
- alpha-shape Any dimensional alpha shape computation
- ancestor-of Test if a node is an ancestor of another node in a tree
- ao-mesher Voxel ambient occlusion mesher
- ao-shader Ambient occlusion capable shader for ao-mesher
- apply-colormap Applies a colormap to an ndarray
- arcball A simple library agnostic arcball camera.
- array-trie A trie data structure for arrays
- baboon-image The baboon test image
- ball-morphology Morphological operations with ball shaped structuring elements
- barycentric Converts points to barycentric coordinates
- bfs2inorder Converts BFS tree indexes to inorder tree indexes
- bfs-tree-layout Index computations for balanced binary trees stored in BFS order
- bibtex-parser CommonJS port of BibTeX-js
- binary-merge 2-way merge
- binary-search-bounds Better binary searching
- bipartite-independent-set Maximum independent set for bipartite graph
- bipartite-matching Maximum unweighted bipartite matching
- bipartite-vertex-cover Minimal vertex cover for bipartite graphs
- bisect Floating point binary search
- bit-interleave Interleaves bits
- bitmap-to-boxes Partitions a 2D binary image into rectangles
- bitmap-triangulate Triangulates a bitmap image
- bit-twiddle Bit twiddling hacks for JavaScript
- boundary-cells Enumerates all boundary cells in a simplicial complex
- bound-points Find a bounding box for a set of points
- box2dweb 2D physics engine
- box-frustum Checks if an axis aligned bounding box intersects a camera frustum.
- box-intersect Any dimensional box intersection
- box-intersect-1d Find all intersections in a set of intervals
- bunny The Stanford bunny
- burrows-wheeler Naive Burrows-Wheeler transform implementation
- cartesian-tree Linear time Cartesian tree construction
- circumcenter Computes circumcenters of simplices
- circumradius Computes the circum radius of a simplex
- companion-roots Finds roots of polynomials by solving the eigenvalues of the companion matrix
- compare-angle Compares two angles with a common edge
- compare-slope Compares the slopes of a pair of 2D vectors
- conjugate-gradient Conjugate gradient solver
- connected-components Finds connected components of an undirected graph
- contour-2d Extracts the boundary of a binary 2D image
- convex-boundary-3d Finds the boundary of a convex polytope formed by the intersection of halfspaces
- convex-hull Any dimensional convex hull
- convex-minkowski-sum Any dimensional Minkowski sums of convex polytopes
- conway-hart CommonJS port of George Hart's polyhedral notation library
- cooriented Checks relative orientation of cells
- count-min-sketch Count-Min Sketch Data Structure
- csr-matrix Compressed sparse row matrix class
- cube-mesh Generates subdivided cube meshes
- cubic-hermite Cubic hermite interpolation
- cwise Component-wise operations on ndarrays
- cwise-bake Bakes cwise calls to serializable json
- cwise-compiler cwise's internal compiler
- cwise-parser Parser for cwise
- cycle-decomposition Computes the cycle decomposition for a permutation
- delaunay-triangulate Delaunay triangulations in any dimension
- detect-pitch Detects the pitch of an audio snippet
- differential Homological exterior derivartive with integer coefficients
- dirichlet Dirichlet/aliased sinc function
- distance-transform Distance transforms for ndarrays
- double-bits Inspect binary representation of IEEE754 doubles
- double-hex Convert IEEE754 floats to C99 style hexadecimal strings
- double-to-base-2-string Turn a number into a human readable binary string
- drag-and-drop-files Handle file drag and drop events without all the Yak shaving
- draw-billboard Draws a billboarded sprite
- draw-simplicial-complex Draws a simplicial complex to a canvas element
- dup Initialize an array of arrays to a constant
- durand-kerner Finds multiple roots of polynomials using Weierstrass' method
- dynamic-forest Maintains connectivity information for a graph under dynamic insertions and deletions
- edges-to-adjacency-list Convert a list of edges to an adjacency list
- euler-characteristic Euler characteristic for simplicial complexes
- eval-grid Initializes an n-dimensional image
- exact-segment-intersect Exactly constructs the intersection of two line segments
- extract-frustum-planes Extracts the planes for a WebGL viewing frustum
- fenwick-tree Compute prefix sums of arrays in O(log n)
- filtered-vector Filter an input vector valued curve
- find-basis-3d Finds an orthonormal basis with at least one vector parallel to a given vector
- float-bits Pulls out the bits from floating point numbers
- float-exponent Extracts the previous power of 2 floating point number
- foreach-combination Visit all k combinations of an array in lexicographic order
- frame-hop Frame slicing for windowed signal processing
- full-convex-hull Computes the convex hull of a set allowing for possible lower dimensional degeneracies
- functional-red-black-tree A fully persistent balanced binary search tree
- fuse-vertices Fuses vertices in meshes
- game-shell Ready-to-go game shell
- game-shell-orbit-camera Attaches an orbit-camera to a game-shell with default key bindings
- gauss-quadrature Gauss-Legendre quadrature rules
- gauss-random Samples standard normal distribution
- generic-slice Array.prototype.slice.call()-like method for TypedArrays, Buffers and Arguments
- get-pixels Reads the pixels of an image as an ndarray
- gl Creates a WebGL context without a window
- gl-api A JSON listing of the WebGL 1.0 API
- gl-axes Renders axes for WebGL plots
- gl-axes3d 3D axes for WebGL
- gl-basic-tile-map Draws 2D tile maps using WebGL
- gl-buffer WebGL buffer wrapper
- gl-buffer-snoop Intercepts uploads to WebGL buffers in order to keep track of their expected value on the GPU.
- gl-clear A helper WebGL module for clearing the current buffer – extracted from [@mikolalysenko](http://github.com/mikolalysenko)'s [gl-now](http://github.com/mikolalysenko/gl-now).
- gl-compare Visually compare two webgl render loops on the fly
- gl-conformance Khronos WebGL conformance test suite
- gl-error3d Draws error bars around points
- gl-error-bars Draws error bars around points
- gl-fbo Frame buffer object wrapper for WebGL
- gl-line3d 3D line plot
- gl-line-plot 3D line plot
- gl-mat2 gl-matrix's mat2, split into smaller pieces
- gl-mat3 gl-matrix's mat3, split into smaller pieces
- gl-mat4 gl-matrix's mat4, split into smaller pieces
- gl-matrix-invert Inverts a matrix in gl-matrix format of any dimension
- gl-mesh Static indexed mesh drawing for WebGL
- gl-mesh3d 3D mesh drawing
- gl-now Create a WebGL context now!
- gl-plot3d Quick start rendering engine for plotting/data visualization
- gl-post Simple WebGL post-processing
- gl-render-text Renders text to a WebGL texture
- gl-reset Completely reset the state of a WebGL context, deleting any allocated resources
- gl-scatter3d 3D scatter plot
- gl-scatter-plot 3D scatter plot
- gl-select Point picking and selection routines for glsl
- gl-select-static Static point picking/selection routine
- gl-shader WebGL shader wrapper
- gl-shader-core Core implementation of gl-shader without parser dependencies
- gl-shader-errors "Parses" the log output of gl.getShaderInfoLog
- gl-shells Simple ready-to-go viewers for static models in WebGL
- gl-simplicial-complex Draws a simplicial complex in WebGL
- glsl-deparser through stream that translates glsl-parser AST nodes into working glsl code
- glsl-determinant Computes the determinant of a matrix in glsl
- glsl-diffuse-lambert Lambertian diffuse lighting for GLSL
- glsl-diffuse-oren-nayar Oren-Nayar diffuse lighting model
- glsl-easings Robert Penner's easing functions in GLSL, available as a module for glslify.
- glsl-exports Find all uniforms and attributes in a GLSL shader
- glsl-extract extract uniforms and attributes from glsl programs
- glsl-frobenius Computes the Frobenius norm of a matrix in glsl
- glslify A node.js-style module system for GLSL!
- glslify-api An API and accompanying client for generating glslify shaders in the browser
- glslify-deps Walk the dependency graph of a [glslify](http://github.com/stackgl/glslify) shader.
- glslify-resolve-remote A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm
- glslify-stream create a readable stream of glsl ast nodes that produce a module system
- glsl-inverse Invert a matrix in GLSL
- glsl-min-stream through stream that transforms glsl-parser AST nodes and rewrites variables into shorter forms
- glsl-parser transform streamed glsl tokens into an ast
- glsl-read-float Read floating point values back from WebGL
- glsl-smooth-min Smooth minimum functions for GLSL
- glsl-specular-beckmann Beckmann specular distribution for GLSL
- glsl-specular-blinn-phong Blinn-Phong specular effect
- glsl-specular-cook-torrance Cook-Torrance specular/fresnel lighting term
- glsl-specular-gaussian Gaussian specular model for GLSL
- glsl-specular-phong Phong specular distribution in GLSL
- glsl-specular-ward Ward anisotropic specular model
- glsl-token-assignments Take an array of GLSL tokens and determine which tokens are either assignments or variable declarations.
- glsl-token-depth Determine the scope depth of an array of GLSL tokens
- glsl-token-descope "Descope" an array of GLSL tokens such that they can be safely inlined alongside within another shader without causing any global variable conflicts.
- glsl-tokenizer r/w stream of glsl tokens
- glsl-token-properties Takes an array of GLSL tokens and determines whether or not they're a property of another identifier
- glsl-token-scope Infer the scope of each token in an array of GLSL tokens
- glsl-token-string Converts an array of GLSL tokens to a plain source string
- glsl-transpose Transpose a matrix in GLSL
- gl-spikes gl-spikes ========= Draws axis spikes compatible with gl-axes. This can be useful to illustrate selections or specific points in a point cloud
- gl-spikes3d gl-spikes3d =========== Draws axis spikes compatible with gl-axes3d. This can be useful to illustrate selections or specific points in a point cloud
- gl-state Saves WebGL context state
- gl-surface3d Renders parametric surfaces in 3D
- gl-surface-plot Renders 2D surfaces
- gl-texture2d WebGL texture wrapper
- gl-tile-map Creates a mip mapped texture atlas from a list of tiles and uploads it to WebGL
- gl-vao Vertex array object wrapper/shim for WebGL
- gl-vec2 gl-matrix's vec2, split into smaller pieces
- gl-vec3 gl-matrix's vec3, split into smaller pieces
- greedy-mesher Greedy mesh compiler
- grid-graph Generates a grid shaped graph
- grid-mesh Creates a simplicial complex for a plane.
- guarded-array Bounds checked array
- hash-int Hashes integers
- hermite-coefficients Returns coefficients of degree n Hermite polynomial
- horner Evaluates polynomial
- horn-sat Solves HORNSAT
- i-graph Generalized generalized Petersen graph generator
- image-rotate Rotates a 2D ndarray
- incremental-convex-hull Incremental n-dimensional convex hull algorithm
- incremental-delaunay Incremental Delaunay triangulation
- inlinify Inline functions in JavaScript
- inorder-tree-layout Index calculations for inorder layout of balanced binary trees
- interval-tree-1d 1D interval tree data structure
- invert-hash Inverts an object hash
- invert-permutation Inverts permutations
- iota-array Generates an array of consecutive integers starting at 0
- isabella-texture-pack Creative commons licensed texture pack for voxel games
- is-little-endian Checks if your system is little endian
- isosurface 3D isosurface polygonizer
- is-property Tests if a JSON property can be accessed using . syntax
- k-hash Generic k-way indepenent hash function
- latex A simple wrapper for LaTeX in node.js
- lazy-property Lazily initialized properties for objects
- least-common-ancestor O(1) least common ancestor queries for JSON trees
- left-right Computes the orientation of 3 points
- legendre-poly Coefficients of Legendre polynomials
- lena The Lena test image
- level-ancestor Finds the kth ancestor of a node in a JSON tree
- limit-bench Benchmark with time limits
- loop-subdivide Applies on iteration of Loop's subdivision surface algorithm to a triangulated mesh
- lower-bound Finds the first item in an array greater than or equal to a given value
- luminance Convert RGB to grayscale
- marching-simplex-table Construct the table entries for the marching simplex method
- mathmode Turns LaTeX math mode expressions into images
- matrix-camera-controller View camera control by direct matrix manipulation
- maximal-independent-set Maximal independent vertex sets
- meshdata Some common freely available triangulated meshes, collected from various places around the net
- mesh-geodesic Approximate geodesic distance for triangulated meshes
- mesh-to-binvox Converts a mesh to a binvox stream
- mesh-viewer Just draws meshes
- mespeak Text to speech synthesizer
- minimal-bit-array Minimal bit array implementation that is compatible with ndarrays
- monotone-convex-hull-2d Robust 2D convex hull algorithm
- morton-page Morton order index for multidimensional pages
- mouse-change Mouse state change listener
- mouse-event Cross browser mouse event property access
- mouse-wheel Consistent cross browser mouse wheel movement
- multinomial Multinomial coefficients
- murmurhash-js Native JS murmur hash implementation
- n-body-pairs Given a collection of spheres with equal radii, find all pairwise intersections.
- ndarray Multidimensional Arrays
- ndarray-bit ndarrays of bits
- ndarray-complex Complex arithmetic for ndarrays
- ndarray-convolve Convolution and cross correlation functions for ndarrays
- ndarray-crout-decomposition LU decomposition using the crout algorithm
- ndarray-determinant Computes the determinant of an ndarray
- ndarray-diagonal Get a view of the diagonal entries of an ndarray
- ndarray-distance Lp distance between ndarrays
- ndarray-downsample2x Downsample by a factor of two using sinc interpolation
- ndarray-extract-contour Generic contour extraction library for surface nets/dual contouring
- ndarray-fft FFT for ndarrays
- ndarray-fill Fills an ndarray with function
- ndarray-gaussian-filter Gaussian filter for ndarrays
- ndarray-gradient Finds the gradient of an ndarray using finite differences
- ndarray-hash Hash table backed sparse ndarray
- ndarray-homography Applies a homograph to an ndarray
- ndarray-imshow Displays an ndarray as an image
- ndarray-linear-interpolate Multilinear interplation for ndarrays
- ndarray-linear-solve solve a linear system with a cached LU decomposition
- ndarray-log-polar Convert a 2D ndarray to log-polar coordinates
- ndarray-matrix-vector-product Dense matrix-vector multiplication
- ndarray-moments Statistical moments of ndarrays
- ndarray-normalize Normalizes an ndarray to zero mean and unit variance
- ndarray-ops Common operations for ndarray arrays
- ndarray-pack Packs an array-of-arrays into a single ndarray
- ndarray-prefix-sum Computes a prefix sum of an ndarray
- ndarray-proxy Lazy ndarrays
- ndarray-scratch Pooled memory for ndarrays
- ndarray-segment Run length encoded sparse ndarray
- ndarray-select Linear time selection algorithm for ndarrays
- ndarray-sort Sorts ndarrays in place
- ndarray-stencil Stencil operations for ndarrays
- ndarray-string ndarray views of strings
- ndarray-to-binvox Dumps an ndarray to a binvox stream
- ndarray-trace Computes the trace of an ndarray
- ndarray-translate Shifts ndarrays
- ndarray-translate-fft Translates ndarrays using sinc interpolation
- ndarray-unpack Converts an ndarray into an array-of-arrays
- ndarray-warp ndarray image warping
- ndconvolve n-dimensional convolutions
- ndcrop Crops n-dimensional images
- ndfft n-dimensional fast Fourier transform for JavaScript
- ndflow n-dimensional network flow solver
- ndgemm Matrix multiplication for ndarrays
- ndpack-image Package an image into a requireable module
- ndresize Resizes n-dimensional images (or volumes) by cropping and padding
- nextafter Find the floating point number immediately after any given number
- normals Estimates normals for meshes
- orbit-camera Orbiting 3D camera for WebGL
- orbit-camera-controller Orbit camera controller
- orbiter Orbiting quaternion camera
- order-maintenance Ordered list maintenance data structure
- orthogami Turn voxel models into papercraft
- overlap-add Additive synthesis of signals
- pairing-heap A pairing heap
- parsed-url Short cut to get a parsed url and query string in browserify
- parse-grid-bench Parses grid path finding benchmark data
- parse-obj Parses .OBJ formatted meshes
- parse-ply A streaming PLY parser
- partition-array Partitions an array by a predicate
- patcher Object patching and replication for JavaScript
- permutation-parity Computes the parity of a permutation
- permutation-rank Ranks and unranks permutations
- persistent-button Persistent, logged, toggleable button
- phase-align Finds patterns in ndarrays
- phase-unwrap Phase unwrapping for ndarrays
- pitch-shift Variable rate controllable audio pitch shifter
- planar-dual Find the faces of a planar graph
- planar-graph-to-polyline Convert a planar graph to a collection of nest polylines
- planar-graph-to-svg Draw a planar graph to an svg file
- plane-to-polygon Converts a plane to a polygon
- pngparse-sync Synchronously parse a PNG file
- point-in-big-polygon Industrial strength point in polygon test
- point-in-region Quickly and robustly determines which region contains a given query point
- point-in-simplex Checks if a point is contained in a simplex
- poly-derivative Differentiates polynomial
- poly-line Generate paths and cycles
- poly-mult Multiplies polynomials by brute force
- poly-mult-fft Multiplies polynomials together using an FFT
- polytope-closest-point Computes the closest point to a polytope in arbitrary dimensions
- ppm A simple streaming ascii PPM image parser/writer
- qhull-js A port of qhull to JavaScript
- quasicrystals Quasicrystal pattern generator
- random-permutation Generates a random permutation
- random-tree Generates a random tree
- range-minimum-query Preprocess an array to find the smallest element in any interval in O(1)
- raymarch Volume ray marching renderer
- rectangle-decomposition Minimal decomposition of rectilinear polygons into rectangles
- red-blue-line-segment-intersect Find all intersections between two sets of line segments
- rle-classify Primitive intersection routines (point, ray, line segment, etc.) for narrowband level sets
- rle-components Connected component labeling / extraction for narrowband level sets
- rle-core Core tools for working with narrow band level sets in JavaScript
- rle-csg Constructive solid geometry library for narrow band level sets
- rle-extents Finds bounding box for rle volume
- rle-funcs Functional programming primitives for narrowband levelsets
- rle-mesh Meshing routines for narrowband levelsets
- rle-morphology Mathematical morphology operations for narrow band level sets
- rle-ndarray Convert between ndarrays and rle volumes
- rle-rasterize Rasterizes meshes into narrowband level sets
- rle-repair RLE repair
- rle-sample Methods for sampling narrowband level sets
- rle-save-binvox Export to binvox file format
- rle-stencils Stencils for use with rle library
- rle-voxeljs Narrowband level set to voxeljs conversion tool
- robust-compare Compares a pair of non-overlapping increasing sequences
- robust-compress Compress a robust sequence
- robust-determinant General purpose robust determinant computation
- robust-determinant-2 Exactly computes the determinant of a 2x2 matrix as a nonoverlapping increasing series
- robust-determinant-3 Exactly computes the determinant of a 3x3 matrix
- robust-dot-product Exactly computes the dot product between two vectors
- robust-in-sphere Exact arithmetic test to check if point is contained in sphere
- robust-linear-solve Exactly solve a low dimensional linear system
- robust-orientation Exactly computes the orientation of a tuple of points
- robust-point-in-polygon Exactly test if a point is inside, outside or on the boundary of a polygon
- robust-point-in-simplex Exact geometric predicate to classify a point against a simplex
- robust-product Exactly multiplies two non-overlapping increasing sequences
- robust-scale Multiplies a nonoverlapping increasing sequence of floats by a single float
- robust-segment-intersect Exact arithmetic test for line segment intersection
- robust-sequence-to-fixed-point Turn a sequence of floats into a fixed point value
- robust-subtract Exact subtraction of non-increasing overlapping sequences
- robust-sum Evaluates the sum of two nonoverlapping increasing sequences of floats
- rsqrt Quake style 1.0/sqrt. DO NOT USE
- save-pixels Saves an ndarray as an image to a file
- scratch Scratch memory
- se2-correlate Correlation over the 2D rigid motion group for images
- segment-tree Segment tree data structure
- serverify Runs browserify in a server
- shader-school Self directed GLSL lessons
- shapeways node.js module for accessing the Shapeways Api http://developers.shapeways.com/
- signed-distance Signed distance field computations
- signum Returns the sign of a number
- simple-2d-shader A simple 2D shader
- simple-3d-shader A simple 3d shader for webgl
- simple-heap A basic binary heap data structure
- simplicial-cartesian-product Cartesian product of simplicial complexes
- simplicial-complex Topological indexing for simplicial complexes
- simplicial-complex-boundary Extracts the boundary of a simplicial complex
- simplicial-complex-contour Extract a contour on a simplicial complex
- simplicial-disjoint-union Concatenates two simplicial complexes
- simplicial-layout Code for drawing simplicial complexes in arbitrary dimensions.
- simplify-2d-complex Simplifies a 2D polygonal region
- simplify-planar-graph Simplifies a planar graph
- slab-decomposition Slab decomposition data structure for 2D vertical ray queries
- spatial-grid Computes closest points to meshes and polygons
- spatial-noise Spatially deterministic noise generators
- specialize Partial function evaluator
- sphere-mesh Generates subdivided spheres
- sphere-random Uniformmly sample a point on a hypersphere
- spherical-triangulation Maintain a spherical triangulation under incremental vertex insertions
- splat-points-3d Splats a point cloud onto a 3D volume
- split-polygon Splits a convex polygon by a plane
- stackgl-generator Spits out fresh stackgl modules for your convenience
- stackgl-readme-css Reusable CSS for styling README/Markdown content consistently
- star-polygon Generate star polygons
- stars Vertex stars of simplicial complexes
- static-kdtree A kdtree data structure
- static-range-query Fast n-dimensional orthogonal range searches for static point sets
- stft Short time Fourier transform
- strongly-connected-components Computes strongly connected components of a directed graph
- superscript-number Converts a number to superscript format
- surface-nets General purpose level set extraction
- svg-3d-simplicial-complex Renders a simplicial complex to a chunk of an svg file
- symmetric-tensor-eval Evaluates a multivariable polynomial
- symmetric-tensor-index Index arithmetic for symmetric tensors
- symmetric-tensor-to-string Converts symmetric tensors into human readable/LaTeX parseable strings
- teapot The Utah Teapot
- test-float-overlap Test if two floating point numbers overlap
- tile-mip-map Tile base mip mapping for texture atlases
- to-px Convert any CSS unit to logical pixels ("px")
- tree-layout-tester Tests cases for various tree layout algorithms
- triangulate-hypercube Triangulates a hypercube into simplices
- triangulate-polyline Triangulates a complex polygon
- trimesh Tools for processing triangulated meshes in Javascript
- turntable-camera-controller Turn table camera controller
- two-product Multiplies two floating point numbers together producing a non-overlapping increasing sequence of floats
- two-sum Computes a non-overlapping sequence representing the sum of two floating point numbers.
- typedarray-pool Reuse typed arrays
- union-find A union-find data structure for maintaining disjoint sets.
- uniq Removes duplicates from a sorted array in place
- upper-bound Find the index of the first element greater than x in a sorted array
- validate-robust-sequence Tests if a sequence of floats is a robust non-overlapping increasing sequence
- vectorize-text Render a string to a vectorized cell complex
- version-tree Version tracking data structure
- vishull2d Visible regions for 2D poly-lines
- voronoi-diagram Constructs a Voronoi diagram for a collection of points
- voxel-crunch Simple run length encoding library
- voxelize Voxelizes a mesh into an ndarray
- voxel-print 3D print voxel models via shapeways
- voxel-raycast Ray queries for voxel.js
- webglew WebGL extension wrangler
- webgl-workshop Boilerplate for frontend-focused NodeSchool lessons
- write-ply Serializes a PLY file to a stream
- write-vrml Serializes a mesh to a VRML file
- zero-crossings Finds all zero crossings in a 1D ndarray
- zeros Initialize an ndarray with zeros