Column
COLUMN — TECHNICAL WRITE-UPS
2026.08.02WEBGPU
Driving 100k particles with WebGPU compute
Buffer layout and workgroup sizing, checked against a minimal running example.
2026.07.24WORKERS
Serving a static blog from Cloudflare Workers
Astro static output, Workers Builds and local validation: how this repository is organised.
2026.07.11THREE.JS
Cutting draw calls 200× with InstancedMesh
The standard move for repeating geometry — attribute layout and the frustum-culling trap.
2026.06.28GAME
Designing a game that ends in 20 seconds
The shorter the loop, the more input feel is everything. Priorities for hit detection, feedback and sound.
2026.06.15WEBGPU
Organising WGSL bind groups
A bind-group layout that survives a growing pipeline count — including how I got it wrong first.
2026.06.02PERF
Measuring input latency in rAF loops
Timing the path from pointer event to pixels, and isolating where the felt difference comes from.
The page you were looking for may have moved or been removed.