All Projects → vanruesc → sparse-octree

vanruesc / sparse-octree

Licence: Zlib License
A sparse octree data structure.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to sparse-octree

tabmat
Efficient matrix representations for working with tabular data
Stars: ✭ 70 (+2.94%)
Mutual labels:  sparse
volrend
PlenOctree Volume Rendering (supports CUDA & fragment shader backends)
Stars: ✭ 419 (+516.18%)
Mutual labels:  octree
canvas-raycasting
Canvas + Raycasting Experiment
Stars: ✭ 17 (-75%)
Mutual labels:  raycasting
GPU-Zen-2-Baker
🥧 An OpenGL 4.x example of GPU Zen 2's ray casting techniques for baked texture generation chapter.
Stars: ✭ 32 (-52.94%)
Mutual labels:  raycasting
grblas
Python wrapper around GraphBLAS
Stars: ✭ 22 (-67.65%)
Mutual labels:  sparse
dlaudio
Master thesis: Structured Auto-Encoder with application to Music Genre Recognition (code)
Stars: ✭ 14 (-79.41%)
Mutual labels:  sparse
lod-mesh
3D polygonal mesh renderer with dynamic level-of-detail (LOD).
Stars: ✭ 52 (-23.53%)
Mutual labels:  octree
bitpit
Open source library for scientific HPC
Stars: ✭ 80 (+17.65%)
Mutual labels:  octree
EasySparse
Sparse learning in TensorFlow using data acquired from Spark.
Stars: ✭ 21 (-69.12%)
Mutual labels:  sparse
sparse dot
Python wrapper for Intel Math Kernel Library (MKL) matrix multiplication
Stars: ✭ 38 (-44.12%)
Mutual labels:  sparse
RaycastVisualization
This asset allows users to view raycasts as the user fires them.
Stars: ✭ 61 (-10.29%)
Mutual labels:  raycasting
Portal-Raycaster
A software portal rendering game engine
Stars: ✭ 41 (-39.71%)
Mutual labels:  raycasting
NDTensors.jl
A Julia package for n-dimensional sparse tensors.
Stars: ✭ 28 (-58.82%)
Mutual labels:  sparse
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+135.29%)
Mutual labels:  octree
bbhtm
bare bone Hierarchial Temporal Memory
Stars: ✭ 14 (-79.41%)
Mutual labels:  sparse
PlenOctrees NeRF-SH
PlenOctree Extraction algorithm
Stars: ✭ 48 (-29.41%)
Mutual labels:  octree
octree color quantizer
Octree color quantizer in Python
Stars: ✭ 35 (-48.53%)
Mutual labels:  octree
raycaster-sdl
A simple raycasting demonstration using SDL2
Stars: ✭ 24 (-64.71%)
Mutual labels:  raycasting
bvh-tree
A Bounding Volume Hierarchy implementation using javascript
Stars: ✭ 41 (-39.71%)
Mutual labels:  raycasting
genieclust
Genie++ Fast and Robust Hierarchical Clustering with Noise Point Detection - for Python and R
Stars: ✭ 34 (-50%)
Mutual labels:  sparse

Sparse Octree

CI Version

A sparse, pointer-based octree data structure. For a linear implementation see linear-octree.

Demo · Sandbox · Documentation

Installation

This library requires the peer dependency three.

npm install three sparse-octree

Usage

Points
import { Vector3 } from "three";
import { PointOctree } from "sparse-octree";

const min = new Vector3(-1, -1, -1);
const max = new Vector3(1, 1, 1);

const octree = new PointOctree(min, max);

const myData = {};
const p1 = new Vector3(0, 0, 0);
const p2 = new Vector3(0, 0, 0.5);

octree.set(p1, myData);
octree.move(p1, p2);
octree.get(p2); // => myData

octree.remove(p2);
octree.get(p2); // => null
Custom Octrees
import { Octree, CubicOctant } from "sparse-octree";

export class CubicOctree extends Octree {

	constructor(min, size) {

		this.root = new CubicOctant(min, size);

	}

}

Features

  • Pointer-based structure
    • Handles octant splitting
    • Supports cubic octrees for reduced memory usage
    • Dynamic depth
  • Adheres to a common octant layout
  • Supports raycasting
  • Supports culling
  • Can be extended to manage any data
  • Provides a point management implementation

Contributing

Maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].