devlog
Devlog
Notes on building. For one-line “what shipped” entries see /changelog; for “what's next” see /roadmap. Both are short. The pieces below are the longer “why.”
2026-06-06
Chrome kept shrinking the game into a corner
An integrated GPU was rendering the whole scene into the top-left quarter of the tab. I spent an hour blaming the GPU. It was one CSS call, and Firefox had been hiding it the whole time.
read on →2026-05-20
HLS for point clouds — why splat streaming looks like video streaming
Captures got too big to ship as one file. The fix wasn't a new compressor. It was borrowing the delivery protocol that already solved this for video.
read on →2026-05-18
What the unit tests caught
The test suite is 98 pure-logic checks, about five seconds wall-clock end to end. Most just pin behaviour that's already correct. Two of them found bugs nobody had noticed.
read on →2026-05-18
Reading the trainer's source before writing the guide
I had a recipe for validating a splat-pruning step on my own captures. Building the tool to run it turned up the fact that the recipe named the wrong trainer.
read on →2026-05-16
The cleanup that bought me time
I spent four days not shipping a single feature, just breaking one giant file into small ones. Best trade I made all month.
read on →2026-05-16
Photoreal-first in practice — what I said no to
The photoreal-first stance is easy to state. It only matters at the points where I said no to something that would have shipped in another engine. Here are the concrete ones.
read on →2026-05-16
The feedback gap — heard, seen, felt
v3 looked great and felt dead. A crash should reach your ears and your hands, not just your eyes, so feel and sound were the next thing I went after.
read on →2026-05-16
Why splats — the photoreal-first stance
Gaussian splats are the moat. Everything else — post-process, audio, mode design — is in service of not getting between the capture and the eye.
read on →2026-05-14
Three workers, one main thread
The streaming pipeline is the engineering proof of concept. Why three workers, and why not one or seven.
read on →