Labs

Things I built to find out if they would work.

A place for the experiments. Not products, not roadmapped — things I wanted to see run.

Each one declares its own state: what it needs, how it was built, and what you may do with it live on the project itself.

Experiments

Galaxcelerate - a procedurally generated spiral galaxy rendered in WebGPU

Galaxcelerate

Fly through a procedurally generated galaxy. A compute shader builds the entire star field — bulge, disk, spiral arms, young blue clusters, and pink nebulae — from one seed, so every slider change regenerates millions of stars instantly. Rendering is additive HDR with no depth buffer and no sorting, so overlapping density reads as brightness the way it does in a real galaxy. Drag to orbit, WASD to fly, and double-click a star to visit it. The seed lives in the URL, so a galaxy you like is a link you can share.

Blids - two dense flocks of hundreds of thousands of boids, coloured by heading

Blids

Millions of boids flocking in the browser, in about 700 lines of JavaScript and WGSL. Up to 4 million agents, with every force computed as an exact pairwise function of true distance — a spatial grid finds candidate neighbours but never influences the result, so the simulation stays honest at any population. Most of the work went into hunting down the faint grid patterns that flocking sims fall into; the README documents all four causes and the fixes.