← Dev log

The shelf, the player, and a much bigger world

Big day. Here's what actually landed.

The console grew a real launcher

Turning the deck on used to hand you a list. Now it hands you a shelf.

Three tabs — GAMES, REELS, SYSTEM — with a spine rail down the side that scales to however many cartridges you own, whether that's three or three hundred. Games sort by recency, so the thing you were playing last night is where your thumb already is.

Every cartridge gets cover art. Not a generic icon: a sticker drawn from that game's own palette, either authored by the developer in the manifest or generated procedurally from the colors the game actually uses. Under each one sits the metadata you'd expect off the back of a box — genre, version, developer, last played — plus a provenance badge saying where the cartridge came from.

The pause menu joined the fiction

Pausing used to break the spell: an iOS overlay floating on top of the game, obviously from a different universe.

It's now drawn on the glyph display like every other console screen, in the running game's palette. Same grid, same 32 colors, same everything. Nothing about pausing leaves the machine anymore.

GlyphReel got a player

GlyphReel is the console's recording format — gameplay captured as glyphs rather than video, which makes it absurdly small.

As of today, reels carry metadata (which game, which title, when it was recorded), and the console can play them back itself. Record on the deck, drop a .glyphreel file between devices through Files, and watch it in the REELS tab with a live progress readout from the Superintendent.

Phase 3 of the 3D engine closed — on both sides

This is the one that changes what you can build.

The engine's limits are no longer hand-picked numbers; they're derived from a declared 16 MiB budget. That works out to 131,072 resident triangles, 4,096 nodes, and 512 meshes — up from 5,000, 128, and 64. Roughly twenty-six times the geometry.

Getting there took the machinery you'd expect from a real renderer: chunked and frustum culling, LOD chains that fall back to impostors at distance, streaming so a world doesn't have to fit in memory all at once, a per-frame light policy (64 lights declared, 8 active), and spatial queries — raycast, heightAt, lineOfSight, overlap — so games can ask questions about the world instead of tracking it themselves.

The part we're proudest of: the studio's reference implementation (JavaScript, V8) and the iPhone implementation (Swift) agree bit-for-bit. 17 of 17 golden fixtures, characters exact.

One war story. Cross-implementation diffing turned up a mismatch on a handful of frames, and it traced to hypot. Swift's was one or two ulps off V8's — on exactly the values surface normals get built from, so the error landed in shading. V8 accumulates with Kahan compensation; Swift's didn't. The two are now algorithm-for-algorithm identical. You will never notice this, which is the whole point: the frame you see in the studio is the frame that renders on the phone.

The authoring surface was rebuilt for agents

The DevKit's agent-facing side is now fourteen agent skills — the format that's becoming the cross-agent standard. Drop a fresh AI agent into a scaffolded project and it can discover the full console API, the art-code system, the design pipeline, and how to test its own work, without you pasting documentation at it.

We verified this the only way that counts: walked a brand-new agent through it, from empty folder to running cartridge. That's DevKit 2.15.0.

Also small and overdue: glyph new now creates every project as a git repository whose first commit is the untouched scaffold. Your first diff is your work.

TestFlight prep

Consoles now start with an empty shelf. Every game is acquired from the on-console store — power the deck off to visit it, the way you'd walk to a shop. It's a better first five minutes than a pre-stuffed library.

The cartridge-jam ritual also learned some manners: it will never jam on a game's first three launches. Blowing dust out of a cartridge is charming on your fortieth boot and confusing on your first. And the privacy manifest shipped.

Next

Two things in flight. Open World Explorer — a cartridge built specifically to stress the new large-world pipeline on real hardware, because a budget on paper isn't a budget until a phone holds 60 fps against it. And a JavaScript port of Fatsillians, so every title in the store runs on the JS bridge.

More when it ships.

← Everything else that shipped