Real-time 3D & Graphics
Browser tooling for people who have to get real work done in it — BIM and CAD models, factory-scale datasets, and simulations that stay interactive at the size of the actual problem. Three.js, WebGPU, GLSL and WebAssembly, shipped into production rather than into a showreel.
What We Build
Thousands of elements in one scene, held at frame rate — GPU-driven scene graphs, instanced draws, and a draw-call budget treated as a hard specification rather than a target.
Loading real building and factory models client-side and making them editable: ifc.js, Revit-derived geometry, constraint feedback, and bill-of-materials generation off the live scene.
Large, messy engineering and geospatial datasets rendered as interactive views with deck.gl and WebGL — responsive at the size of the real corpus, not at the size of the demo.
Custom GLSL and WGSL, signed-distance fields, raymarching. The objects drifting across this site are evaluated per pixel in real time — it is the same renderer we ship.
When the hot path is geometry or a solver rather than the DOM, it moves to WASM. Used in anger, not as a checkbox — the scaffolding tool's geometry kernel runs there.
Profiling the things that actually cost: overdraw, draw calls, memory ceilings, and the garbage collector. Most 'we need WebGPU' problems turn out to be a loop that allocates.
Tech Stack
Applications
Designing structure over a BIM model in the browser and costing it as you go
Revit-derived plant metadata turned into a view a material-flow team can actually explore
Constraint graphs, dependency structures and simulation output, rendered interactively
Not a spinning product shot — geometry that has to stay valid while the user changes it
Raymarched fields and generated geometry, computed per frame rather than authored
Sites and tools where the 3D is load-bearing rather than decorative — this one included
Tell us the scene size, the interaction you need, and the device it has to run on. If the honest answer is that it belongs on the server or in a native app, we would rather say so in the first conversation than the third invoice.
From the journal
How the objects drifting across this site are actually computed — the same renderer, written up at length.