All Projects → vanruesc → rabbit-hole

vanruesc / rabbit-hole

Licence: Zlib license
An experimental voxel engine.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to rabbit-hole

Dungeontemplatelibrary
🌏: Dungeon free resources (terrain & roguelike generation)
Stars: ✭ 595 (+1425.64%)
Mutual labels:  terrain, voxel, 3d-graphics
Mundus
A 3D world/level editor built with Java, Kotlin & libGDX.
Stars: ✭ 164 (+320.51%)
Mutual labels:  terrain, engine
Voxelplugin
Voxel Plugin for Unreal Engine
Stars: ✭ 844 (+2064.1%)
Mutual labels:  terrain, voxel
voxel-builder
Voxel-based 3D modeling application
Stars: ✭ 31 (-20.51%)
Mutual labels:  terrain, voxel
Marching Cubes Terrain
Marching Cubes terrain implementation in Unity using the Job System and the Burst compiler
Stars: ✭ 292 (+648.72%)
Mutual labels:  terrain, voxel
Veloren
[Mirror] An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World
Stars: ✭ 868 (+2125.64%)
Mutual labels:  terrain, voxel
Proceduralterrain
Procedural voxel terrain generation in Unity
Stars: ✭ 237 (+507.69%)
Mutual labels:  terrain, voxel
Yave
Yet Another Vulkan Engine
Stars: ✭ 211 (+441.03%)
Mutual labels:  engine, 3d-graphics
delphi3d-engine
A 3D-graphic and game engine for Delphi and Windows.
Stars: ✭ 52 (+33.33%)
Mutual labels:  engine, 3d-graphics
mine.js
🌏 A voxel engine built with JS/TS/RS. (formerly mc.js) (maybe mine.ts? or even mine.rs?)
Stars: ✭ 282 (+623.08%)
Mutual labels:  engine, voxel
Procedural-Terrain-Generator-OpenGL
Procedural terrain generator with tessellation | C++ OpenGL 4.1
Stars: ✭ 98 (+151.28%)
Mutual labels:  terrain, 3d-graphics
PlanetRenderer
A repo for my research on planet rendering in c++ | opengl **Now runs on Linux**
Stars: ✭ 62 (+58.97%)
Mutual labels:  terrain, lod
Terrain-Generation-Study
Using Perlin noise to generate a map texture and then generate an LOD enabled terrain mesh from the map. This system was going to be used in a now abandoned project.
Stars: ✭ 23 (-41.03%)
Mutual labels:  terrain, lod
Sucle
Common Lisp Voxel Game Engine
Stars: ✭ 239 (+512.82%)
Mutual labels:  engine, voxel
volpy
Volume Calculations for Digital Elevation Models in Python
Stars: ✭ 26 (-33.33%)
Mutual labels:  terrain, volume
Filetovox
Tool for convert files into Magicavoxel file
Stars: ✭ 188 (+382.05%)
Mutual labels:  terrain, voxel
Mine.js
🌏 A Minecraft-like voxel engine built in Javascript. (formerly mc.js)
Stars: ✭ 136 (+248.72%)
Mutual labels:  engine, voxel
Chunkstories
Somewhat fancy blocky game engine written in Kotlin
Stars: ✭ 199 (+410.26%)
Mutual labels:  engine, voxel
SlimTracin
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup
Stars: ✭ 49 (+25.64%)
Mutual labels:  engine, 3d-graphics
VoxelEngine
Custom voxel engine written in C++ and OpenGL
Stars: ✭ 44 (+12.82%)
Mutual labels:  engine, voxel

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.

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].