Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

WebGPU Experiments

Note (8/31/2021): these have fallen a bit out of date with WebGPU API changes coming up to the final release. I haven't had time to update them yet, but will update this repo when I've done so.

A series of examples written while learning about WebGPU: a glTF viewer, a web-based LiDAR viewer, and a data-parallel Marching Cubes implementation using compute shaders. The glTF viewer uses a custom glb importer to load data efficiently into WebGPU and supports the basic glTF features. The LiDAR viewer uses LAStools.js, a version of libLAS compiled to Web Assembly, to load las and laz files directly in the browser. The Marching Cubes example is a data-parallel implementation of marching cubes written using compute shaders to leverage GPU compute for interactive isosurface extraction. If you have a browser with WebGPU enabled, you can try them out: glTF Viewer, LiDAR Viewer, Marching Cubes.

Triangle & Generated Triangle

Basic demos of rendering a triangle, or generating one and the draw calls in a compute shader.

triangle image

GLB Viewer

This project has been updated and split out into its own repo:

A binary glTF viewer supporting static scenes with multi-level instancing, different materials, and textures.


Marching Cubes Try it out!

A data-parallel implementation of Marching Cubes using compute shaders. Note that as of 5/7/2020 some functionality (3D texture uploads) is not implemented in WebGPU which would make this easier to implement or include some other features (e.g., sampling the volume, adding volume rendering),

isosurface on the Skull data set

LiDAR Viewer Try it out!

A viewer for las/laz files. Uses LASTools.js to load las/laz files directly in the browser, and renders them as instanced billboard quads. To run this demo, download the LASTools.js release (liblas.js, liblas.wasm, liblas_wrapper.js) and place them under js/.

Morro Rock


A series of examples written while learning about WebGPU







No releases published


No packages published