Graphics

cvcGL · WebAssembly examples
guest@cyberpcangel:~/graphics$ ls demos/ 

Real-time C++ graphics running in your browser through WebAssembly — the libcvc cvcGL scene graph, the same engine CyberPC Angel uses for scientific visualization. These are the multi-threaded builds: the simulation runs on a Web Worker that shares memory with the renderer, so a sim step never blocks a frame.

terrain_lab — a live view of the cvc::world L-system terrain generator: material-coloured terrain, L-system trees, solid buildings on paved streets, and water

terrain_lab

See what the L-system world generator produces: terrain coloured by its own per-cell material (or risk / occupancy / height), trees, rocks and buildings grown from the built-in L-system recipes, a baked street network wrapping paved plazas, volumetric water filling the valleys, and a drifting cloud. Tune the generator live — seed, species counts, tree generations, relief and water level.

run it →

lsystem_forest — a procedural island of L-system trees under a drifting cloud

lsystem_forest

Fly over a procedural island: L-system trees swaying in the wind, a travelling-wave sea and a GPU ray-cast cloud volume, with shadow maps and a free orbit/fly camera. 100% procedural — nothing is downloaded.

run it →

lsystem_coast — an L-system tree island ringed by a GPU spectral FFT ocean with whitecaps and shore foam

lsystem_coast

The forest island afloat on a real sea: a three-cascade JONSWAP spectral ocean solved entirely on the GPU — a Cooley–Tukey butterfly IFFT run as fragment-shader ping-pong (a port of ABYSSAL) — with choppy crests, Jacobian-fold whitecaps and shore foam. Same L-system trees, cloud volume, shadows and fly camera.

run it →

volren_bunny — the Stanford bunny ray-cast from a signed-distance volume on a lit stage

volren_bunny

The Stanford bunny as a volume, not a mesh: a signed-distance field ray-cast by cvc::volren — exact marching-cubes isosurfaces, spline-gradient shading, volumetric and deep shadow maps — composited into the live scene through a depth-mapped quad so geometry occludes it per pixel. Add up to nine bunnies; drive resolution, anti-aliasing, lights and shadows live.

run it →

volslice_bunny — nine translucent amber bunnies composited from view-aligned slices

volslice_bunny

VolumeRover2’s classic view-aligned slice compositor, ported to cvc::volslice: the bunny’s distance field windowed into a byte texture and coloured by a 256-entry transfer function, hundreds of camera-facing slices blended back to front on the GPU. Up to nine bunnies, each its own scene-graph volume node depth-sorted per frame; quality, near-plane peel, window and opacity-correction all live.

run it →

nav_city_swarm — hundreds of coloured vehicles crossing a foggy procedural city

nav_city_swarm

800 vehicles cross a foggy city with no global plan — the GRL-SNAM reactive swarm on the cvc::nav runtime (no Python, no libtorch). Tune agents, fog and belief live, then Apply / Restart to watch shared belief beat private belief on the same city.

run it →

nav_city_drive — colour-coded vehicle convoys threading real downtown Austin to their rally points

nav_city_drive

A few colour-coded convoys thread real downtown Austin to six rally points with no global plan — the GRL-SNAM reactive drive on the cvc::nav runtime, steered by the published trained CoefMLP (no Python, no libtorch). Watch each group thread the streets, chase-cam onto a lead, or drag a rally point to re-route the whole convoy live.

run it →

nav_fog_ghost — an agent detouring a phantom wall, fog cone and belief grid on the ground

nav_fog_ghost

Fog of war: a vehicle detours a phantom wall its stale map shows but reality lacks, then erases it cell by cell as its sensor clears the ground. Switch between three limited-belief scenarios — ghost, dynamic and traffic.

run it →

Last updated 2026-10-07 15:25 UTC · libcvc d364c29cc884