Skip to content

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.”

  1. 2026-09-20

    Light the photograph never saw

    DLSS 5 teaches a game to look photographed. We are starting from the photograph and teaching it to take new light, in a browser tab.

    read on →
  2. 2026-09-20

    Phones are in

    The phone work from this month is on the live site. What a phone gets now, and the two parts that are not finished.

    read on →
  3. 2026-09-19

    Drawing bigger than the frame

    Every picture setting below the highest was soft for a reason that had nothing to do with how much detail it was given.

    read on →
  4. 2026-09-11

    Still following a finger that had gone

    The controls stopped working after five or ten minutes. Not on the first drag, which is exactly why it took so long to find.

    read on →
  5. 2026-09-11

    The light is already in there

    A photographed street comes with real light for free. Everything we add to it arrives with none, and that is the whole problem.

    read on →
  6. 2026-09-04

    Which way is right

    Four ways of looking around, all turning the wrong way, all doing the same sum. Two more places are still doing it.

    read on →
  7. 2026-09-04

    The two pages that mattered were blank

    The product was being outranked by pages that only talk about the product. One of them shipped seventeen characters of text.

    read on →
  8. 2026-09-03

    A control you cannot see

    Phones stopped being turned away on their name. Then the controls had to become controls, which took being told so plainly.

    read on →
  9. 2026-09-02

    The one I fixed by taking the ground away

    Last week nine places stopped driving on the roofs. The tenth was the one already fixed, and it was the worst of them.

    read on →
  10. 2026-08-31

    The music was there and nothing let you hear it

    Reported as a volume problem. It was a volume problem, and also two other problems wearing the same symptom.

    read on →
  11. 2026-08-30

    The number was right and nothing read it

    A drone that took off by itself, reported twice, fixed twice. Both fixes were correct. Neither one ran.

    read on →
  12. 2026-08-28

    The car was driving on the roofs

    One bug that presents as three, found once before and fixed in one place out of nine. Solving the instance instead of the class.

    read on →
  13. 2026-08-27

    I counted the splats wrong three times

    The home page claimed 99 million. Each correction was wrong in a new way, and only the third one stopped being a guess.

    read on →
  14. 2026-08-24

    A place you can only fly

    One of the five new captures offers a single way through it. Deciding to say that out loud was the harder half.

    read on →
  15. 2026-08-20

    Aix looked soft. I was wrong about why, twice.

    Of the four captured towns, one always looked blurrier than the rest. I had a confident explanation, then a better one, and the thing that actually fixed it was neither.

    read on →
  16. 2026-08-15

    The machines I never tested

    A measurement taken honestly in May became a rule about a whole class of computers, and outlived every condition it was taken under.

    read on →
  17. 2026-08-09

    The bicycle had to be allowed to fall over

    The first version was a car with two wheels, and it was bad in a specific way: it was fine.

    read on →
  18. 2026-08-06

    The map only drew what it was sure of

    Which sounds like the careful choice, and is the opposite: a reader cannot tell nothing is here from I did not check.

    read on →
  19. 2026-08-03

    A floor that was not there

    One flat plane under every place, set at the height a car needs. Invisible in a courtyard, and a quarter of a hill town walked in mid air.

    read on →
  20. 2026-07-30

    Two triangles in mid air

    Lourmarin went in as the fourth place you could drive, and for two days it was the fourth place you could not.

    read on →
  21. 2026-07-14

    Four answers to what is this for

    Somebody asked and I gave them the technical answer, which is a fine reason to start building something and a poor reason for anyone else to care.

    read on →
  22. 2026-06-27

    Someone else on the street

    Ludlow Square was convincing for about eight seconds, which is roughly how long it takes to notice that nothing in it is alive.

    read on →
  23. 2026-06-16

    Five weeks, 531 commits: what building this looked like

    I started on the 9th of May with one claim to prove or kill: a scanned real place, photoreal, drivable at 30 FPS in a browser tab on a laptop with no graphics card. This is the log of getting there.

    read on →
  24. 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 →
  25. 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 →
  26. 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 →
  27. 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 →
  28. 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 →
  29. 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 →
  30. 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 →
  31. 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 →
  32. 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 →