vanruesc / rabbit-hole

An experimental voxel engine.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rabbit Hole

CI Version Peer dependencies

An experimental voxel engine for WebGL. This software has been created in the context of a Master's degree project at the University of Applied Sciences Brandenburg in cooperation with the Norwegian University of Technology and Science.

⚠️ While many core features are already implemented, this project is still incomplete. ⚠️

Demo · Documentation · Master's Thesis (2016) · Electronic Imaging Paper (2018)

Installation

This library requires the peer dependency three.

npm install three rabbit-hole

Usage

The following example uses the rendering framework three. Please refer to the usage example of three for information on how to setup the renderer, scene and camera.

Basics
import { Terrain } from "rabbit-hole";

const terrain = new Terrain();
scene.add(terrain);

requestAnimationFrame(function render() {

	requestAnimationFrame(render);
	terrain.update(camera);
	renderer.render(scene, camera);

});
Constructive Solid Geometry
import { SuperPrimitive, SuperPrimitivePreset } from "rabbit-hole";

const a = SuperPrimitive.create(SuperPrimitivePreset.SPHERE);
const b = SuperPrimitive.create(SuperPrimitivePreset.TORUS);
const c = SuperPrimitive.create(SuperPrimitivePreset.CUBE);

terrain.union(a);
terrain.subtract(b.intersect(c).subtract(a));
terrain.intersect(c.subtract(a.union(b)));

Features

  • Multithreading
  • Level of Detail
  • Real-time volume construction and destruction

Contributing

Please refer to the contribution guidelines for details.

About

An experimental voxel engine.

License:zlib License


Languages

Language:JavaScript 98.9%Language:CSS 0.6%Language:HTML 0.5%