Skip to content

An example of marching cubes in WebGL, using Rust + WebASM to compute the isosurface

License

Notifications You must be signed in to change notification settings

Twinklebear/webgl-marching-cubes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebGL Marching Cubes

This is a WebGL + WebASM implementation of the classic Marching Cubes algorithm for extracting isosurfaces from 3D volume data. An isosurface is a surface which represents points in the 3D data which all have the same value (e.g., pressure, temperature). The isosurface extraction code is implemented in Rust and compiled to WebAssembly to accelerate extraction of the surface. Depending on your browser, when compared to the pure Javascript version the WebASM version is 10-50x faster! The surface is rendered as a triangle mesh and combined with the volume during the volume raycasting step, in a manner roughly similar to shadow mapping. Try it out online!

To compile the WebAssembly version you'll need Rust and wasm-pack. After install Rust you can install wasm-pack with cargo install wasm-pack. Then build the WASM code: wasm-pack build -t web --release, and run a local webserver to serve the files.

Images

images

About

An example of marching cubes in WebGL, using Rust + WebASM to compute the isosurface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages