Dynamic ocean
Real-time ocean surface built from summed Gerstner waves on an EditableMesh, with level of detail, analytic normals from wave derivatives, and a benchmarking harness to keep it inside the frame budget.
Simulations, procedural geometry and performance work I've built on my own time, mostly in Luau where every millisecond of a 60 fps frame budget counts.
A 3D mass-spring cloth solved with Verlet integration and structural, shear and bend springs, shaded in a WebGL shader with the spring network drawn on top. The original runs in Roblox on an EditableMesh. This web port lets you grab, throw, tear, re-pin and orbit it.
Open the simulationReal-time ocean surface built from summed Gerstner waves on an EditableMesh, with level of detail, analytic normals from wave derivatives, and a benchmarking harness to keep it inside the frame budget.
Simulates and visualizes up to 10,000 cars at 60 fps. Lanes are circular queues, merges use a modified binary search, and drivers react to the car ahead with a modeled human reaction delay.
Breaks any polygonal pane into shards around the impact point using concentric fracture rings and radial cracks, then triangulates each shard with ear clipping into its own EditableMesh.
A FABRIK inverse-kinematics solver driving a multi-legged spider. Each leg raycasts for footholds and steps when it drifts too far, so the gait emerges from the terrain rather than animations.
Chunked voxel terrain from layered Perlin noise, merged into large faces with greedy meshing, with a custom bit buffer for compact chunk data. Ported from a C# reference implementation.
A compiler from a large subset of Scheme down to the pure λ-calculus: numbers, booleans, lists and let-forms all become nothing but single-argument functions.