INDEX25 PLATES / 14 SHEETS
THE ALTITUDE ATLAS — DRAWING SET 25 PLATES / 14 SHEETS

THE ALTITUDE ATLAS

SAME SUBJECT AT EVERY SCALE — THE FORM CHANGES BECAUSE THE TRUTH DOES CLIENT lit-ui-router · simshanith · PLATES COUNTED 2026-10-18

LATEST2026-10-18SHEET 3B · REV Jthe thirteenth quarter, @repo/dev-gate, closes the row at the release roadISSUE LOG ↗

SHEET INDEX — ASCENT ORDER

SHEET 1 · REV H

the RENDER LOOP

ONE PACKAGE

The loop sits on the ground: every leg is a road that turns along the iso axes and stops short of the wall it points at. The city breaks its metaphor once, on purpose — the document is not a building but a browser window whose DOM rises in plates. The core matches, the hall runs its hook bays, Lit commits onto a layer, and a click on the topmost plate flies back to location.

ISO CIRCUIT · 1 PLATE
SHEET 1i · REV A

the RENDER LOOP, WALKED

ONE PACKAGE

The circuit, stood up and stepped. 10 stations and 12 legs, then one click — a click on <a uiSref> from /people to /people/32 — walked in 12 steps under the pointer, every step standing on the 30 source lines the plate cites verbatim.

INTERACTIVE CIRCUIT · 1 PLATE
SHEET 2 · REV I

the BRICK ASSEMBLY

COMPANIONS

Every companion drawn here enters through a published stud — on @uirouter/core, or on a brick that publishes one of its own. Drawn exploded, the sheet answers the only question that matters about a plugin architecture: pull any brick off and what breaks? Only what stands on it or peers it — four bricks seat on lit-ui-router, one of them on the server too, three of them peering a brick on the plate — and the plate’s studs stay where they are.

BRICK ASSEMBLY · 2 PLATES
SHEET 2A · REV H

the COUPLING PLAN

COMPANIONS

The brick assembly, uncoupled and brought down to one elevation: core as a socket wall, companions as shallow blocks drawn just short of seated, and each of the six connection points on the wall — five published studs and one keyed red seat — large enough to letter its API call on the joint itself. Eight more joints are companion-to-companion, and one of those spans both halves of the plate.

COUPLING PLAN · 2 PLATES
SHEET 2B · REV G

the COUPLING BENCH

COMPANIONS, CONTRACTED

The same assembly as sheets 2 and 2A, reduced to what a consumer's installer actually reads: 13 buildings and 23 contracts. Hover an edge for the range it declares and the section it lives in; hover a building for its version, what it declares, and what declares it.

INTERACTIVE COUPLING GRAPH · 2 PLATES
SHEET 2C · REV A

the ALTERNATE BUILDS

ONE BOX, EIGHT BUILDS

One box, eight models. The sample apps, the docs site and the examples pin seven distinct sets of family parts, and the atlas’s own app pins an eighth on its own branch; each set is drawn as the small assembly it makes on the runtime plates its parts peer, under a callout of its parts: effect, mobx and signal-polyfill share no model, one brick stays in the box at the cabinet’s tree and no bricks with the atlas app, and three plates carry nothing at the cabinet’s tree and one with the atlas app.

BUILD INSTRUCTIONS · 4 PLATES
SHEET 2E · REV A

the CONSUMER BUILDS

TWENTY CONSUMERS

The repository's own consumers drawn as bricks on the family they pin. Seventeen of twenty pin lit-ui-router, brick 1; sample-app-lit-e2e pins no family part; the atlas app, on its own branch, is the heaviest at 32 studs.

BUILD INSTRUCTIONS · 4 PLATES
SHEET 2F · REV A

the PINNED BUILDS

TWENTY CONSUMERS, PIN BY PIN

The consumers' pins, layer by layer, in sheet 2C's builds. The eight pnpm members read their 11 family pins from the tree; the twelve npm consumers, the examples and the atlas app, read their 28 from their own lockfiles. Pins trailing npm's latest: none.

BUILD INSTRUCTIONS · 5 PLATES
SHEET 2 · 3D · REV A

the BRICK ASSEMBLY, IN THE ROUND

COMPANIONS, IN THE ROUND

SHEET 2'S FINISHED MODEL IN THE ROUND · 10 BRICKS · 2 PLATES · 2 LEVELS OF GROUND · ONE GLTF BINARY · THE SHEET'S EXPLOSION HALF AGAIN AS HIGH AS ITS ONE CLIP, ASSEMBLE ⇄ EXPLODE · THE CAMERA TURNS TO THE SHEET'S THREE DRAWN CORNERS

3D · WEBGL · LOADED ON DEMAND
SHEET 2C · 3D · REV A

the BUILDS, IN THE ROUND

ONE BOX, IN THE ROUND

SHEET 2C'S EIGHT BUILDS IN THE ROUND — VANILLA, SIGNALS, EFFECT, MOBX, NAV, SERVER, ESLINTED VANILLA and THE ATLAS · ELEVEN OF THE BOX'S ELEVEN BRICKS AND EIGHT OF ITS NINE PLATES BUILT · ONE GLTF BINARY PER BUILD · EACH BUILD'S EXPLOSION HALF AGAIN AS HIGH AS ITS ONE CLIP, ASSEMBLE ⇄ EXPLODE · THE CAMERA TURNS TO THREE CORNERS

3D · WEBGL · LOADED ON DEMAND
SHEET 3 · REV H

the INSTRUMENT YARD

MONOREPO

The monorepo drawn as what it functionally is: a short conveyor that turns source into one tarball, inside a yard of instruments built to measure that tarball. Every structure carries its measured mass — footprint ∝ √sloc, height ∝ authored files — and gate severity is colour rather than height, because the two do not correlate: the blocks that stop the line are among the smallest on the sheet.

ISOMETRIC CITY · 4 PLATES isometric
SHEET 3A · REV E

the HANDOFF WORKS

TWO TASK MANAGERS

The two task managers drawn as the two machines they are — mise the node-free umbrella, turbo the cached fan-out — with the seams as the featured parts: every crossing is a bolted gasket labeled with what crosses it and what the boundary buys. The star fitting is the cache gasket on the return duct: turbo caches mise, because the six re-entrant lint lanes hash the mise task files and mise.lock, so a tool-pin bump invalidates exactly its own lane.

COUPLING SCHEMATIC · 2 PLATES
SHEET 3B · REV J

the WATCHED CITY

CI TASK GRAPH

The pull-request graph that plate 3A traced as plumbing, surveyed here as ground: every real task massed by what it watches (footprint) and what it actually executes (height). The survey’s verdict is flatness — 234 of 310 blocks are a single script line riding an external binary — which makes the exceptions legible at a glance: a 301-line test tower on a 50-file lot, and a 555-file plain patrolled by 20 lines of command.

ISOMETRIC GRAPH CITY · 3 PLATES isometric graph
SHEET 4 · REV H

the FAMILY SPINE

ECOSYSTEM

Not a loop and not a city: a spine. Every limb shares @uirouter/core and no limb talks to another, so the honest drawing is radial. Each block is massed from its own authored source and each stem crosses a gate naming the core range that limb admits — and the gates do not agree.

MASSED SPINE · 3 PLATES
SHEET 5 · REV D

the DESIGN SPACE

JS ECOSYSTEM

No mechanism connects these projects, so an edge between them would be fiction; the one line on the sheet runs inside the lineage, where sheet 2 draws the mechanism. What is real is position: where matching happens, who owns navigation, and — the squares — whether the URL or a state tree is the source of truth.

POSITIONED CHART · 0 PLATES
SHEET 6 · REV A

the ROUTING STRATA

EVERYTHING

At the widest altitude the only shared structure is a definition, so the drawing shrinks to a core sample and the writing does the work: five strata, one invariant triple.

CORE SAMPLE · 0 PLATES
SHEET 7 · REV H

the MEASURED CITY

MONOREPO, MEASURED

Sheet 3 drew the monorepo as a process; this sheet counts who lives in it. Footprint ∝ √sloc, height ∝ authored files, tests drawn as annexes rather than deleted — and over that census the two things a census alone cannot say: which district each member belongs to, and which roads run between them. Every road is a workspace dependency or a turbo task edge, never an impression.

MEASURED CITY · 4 PLATES measured
SHEET 7A · REV G

the SHADOW SURVEY

MONOREPO, TESTED

This plate asks which members of sheet 7’s city ever stand in test light. Every member’s own suite runs under a coverage meter, and its light is drawn to two rules: reach, how much of the member’s source the suite loads; brightness, the line coverage of what it loads. The finding is a repo-wide habit visible from the air: the light is bright far more often than it is wide.

SHADOW PLAN · 5 PLATES
SHEET 7B · REV I

the WORKING CITY

MONOREPO, RUNNING

Sheet 7 counted the city, sheet 13 dated its stone, plate 7A metered its test light. This plate turns the same city on: every member becomes a Working Plant sprite in the Factorio sense — a machine whose state is broadcast, not implied. The alert channel is drawn and empty: no gate in the city is red at HEAD.

WORKING CITY · 7 PLATES working
SHEET 7 · 3D · REV H

the CITY, IN THE ROUND

MONOREPO, IN THE ROUND

SHEET 7'S CENSUS CITY IN THE ROUND · 48 MEMBERS · 47 MASSED · 37 SPEC ANNEXES · 4 DISTRICTS · ONE GLTF BINARY · ONE CLIP RAISES IT FROM THE GROUND, RAISE ⇄ GROUND · THE CAMERA ORBITS FREE AND TURNS TO THE FOUR TRUE DIAGONALS · A SECOND LANE RELIGHTS THE CITY FROM SHEET 7A'S FILED SHADOW PLATE

3D · WEBGL · LOADED ON DEMAND real 3d isometric
SHEET 7B · 3D · REV B

the WORKING CITY, IN THE ROUND

THE WORKING CITY, IN THE ROUND

SHEET 7'S CENSUS CITY IN THE ROUND, AT WORK · 48 MEMBERS · 47 MASSED · EACH CROWNED BY A WORKING PLANT SIZED FROM ITS OWN CENSUS · 37 SPEC ANNEXES · 4 DISTRICTS · ONE GLTF BINARY · ONE CLIP RAISES IT FROM THE GROUND AND CROWNS IT, RAISE ⇄ GROUND · THE CAMERA ORBITS FREE AND TURNS TO THE FOUR TRUE DIAGONALS · A SECOND LANE RELIGHTS THE CITY FROM SHEET 7A'S FILED SHADOW PLATE

3D · WEBGL · LOADED ON DEMAND real 3d isometric
SHEET 8 · REV D

the DELIVERED CITY

ONE CONSUMER

The production dependency closure of one sample app, surveyed on disk: every delivered package as a building — footprint from file count, height from lines — with the consumer’s own 646-line building standing in the city it summoned.

DELIVERED CITY · 1 PLATE delivered
SHEET 9 · REV G

the SHIPPED CITY

ONE DEPLOY

The production docs deploy surveyed on the wire: 1,035 files, 5.8 MB gzipped, drawn as 13 districts — the tallest towers are prerendered prose and font files, the routed apps are 392 KB of accent buildings in their own city, and there is no ghost block: the deploy carries no unreachable files at all.

SHIPPED CITY · 1 PLATE shipped
SHEET 10 · REV E

the BUNDLED CITY

ONE BUNDLE

One shipped bundle opened up: every package that survived tree-shaking as a building — footprint from source kept, height from gzipped wire share — and the machine the router wraps, the chrome that demos it, and the app that uses it stand as three districts summing to 122.3 KB.

BUNDLED CITY · 4 PLATES bundled
SHEET 11 · REV I

the ENTRY QUARTERS

ELEVEN PACKAGES

The split view to sheet 10’s unified city: every exported entry of every publishable package bundled alone and priced — 11 package quarters, 27 doors, the codecov bundle-analysis series drawn as skylines.

ENTRY QUARTERS · 4 PLATES
SHEET 12 · REV F

the REGISTER PLATE

PR CI GRAPH

The pull-request graph is a near-rectangle: 48 packages against 24 fanned task names, plus a ragged tail of 41 one-offs. 73% of the holes are unpunched — placeholder nodes that run nothing, minted so a ^self chain has somewhere to land an edge or an umbrella something to fan out from.

REGISTER PLATE · 1 PLATE
SHEET 12i · REV A

the REGISTER, WALKED

PR CI GRAPH

The punchcard, stood up. Default view is the real subgraph alone — 310 tasks that run a command over 187 edges that join two of them. PHANTOM SHROUD floods in the other 844 nodes and 4,519 edges, and 73.1% of the graph stops being a statistic.

INTERACTIVE REGISTER · 1 PLATE
SHEET 13 · REV H

the WEATHERING MAP

WORKSPACE × TIME

Every sheet so far has drawn the city as it stands; this one dates the stone. Same districts and footprints as sheet 7, but the fills now say when each file was first committed and the edges how often it is touched. The history is three construction campaigns separated by silent months, and the two encodings disagree on purpose: 93% of the city is summer-built and barely weathered, while the port’s original masonry carries the hottest edges on the map.

WEATHERING MAP · 2 PLATES
SHEET 14 · REV A

the UPSTREAM WORKS

CITY × COMMONS

Every other sheet draws the city; this one draws the commons the city's own record cites. Across a river of time from the first commit, 87 consignments — pull requests, issues and bug reports in other projects' trackers — sit at the day they were filed, moored to the works on the north bank; the 14 the city sent fly its pennant and the 73 it watches fly none, and roads cross back to the 95 home pull requests, issues and commits that cite them on the city's wharf.

UPSTREAM WORKS · 2 PLATES

APPENDIX — PLATES ABOUT THE ATLAS, NOT THE CODEBASE

APPENDIX A1 · REV A

the SPRITE STUDY

THE ATLAS ITSELF

Every other plate in this set measures the codebase. This one measures a decision: how a workspace member should look when a sheet draws it as a building. One demo member is drawn fifteen times, five states along a wreck-to-splendor gauge under three competing treatments, and each treatment is priced. The verdict stands in the set: sheet 7B is the working plant, and sheet 13 the weathering gauge.

SPRITE STUDIES · NO CENSUS PLATE — META
APPENDIX A2 · REV D

the SURVEY OFFICE

THE CENSUS PIPELINE

The instrument drawn by its own instrument: 22 probe stations over three tiers write 22 filed plates, which 25 drawings read — and the one that matters most is read eighteen times over. Nothing here is hand-listed: the stations are the generator files that write a plate, the tiers are the basis primitive each one calls, and the edges are the plate URLs the sheets construct.

FLOW GRAPH · NO CENSUS PLATE — META
APPENDIX A2i · REV B

the SURVEY OFFICE — INTERACTIVE

THE CENSUS PIPELINE

appendix A2's cytoscape sibling — the same introspected nodes and edges, hoverable; the master plate's fan-out is the hero

INTERACTIVE GRAPH · NO CENSUS PLATE — META
APPENDIX A3 · REV A

the ATLAS, MEASURED

THE ATLAS ITSELF

The atlas turned on itself with the census city's own instrument: footprint ∝ √sloc, height ∝ files, from sheet 7's functions. Sheet 7's four districts stand along the top as one block each; the atlas stands below them as a fifth district of four members — 3.2× the product it draws: 25,849 sloc against 8,156 in packages/.

ISOMETRIC CITY · 5 PLATES — META measured
APPENDIX A4 · REV B

the ATLAS, SHIPPED

THE ATLAS ITSELF

The atlas's own deploy surveyed on the wire with sheet 9's instrument at two altitudes: footprint ∝ files, height ∝ gzipped bytes, from sheet 9's functions. By role, three summed blocks of the docs deploy stand west of three of the atlas's; by district, the docs deploy's thirteen stand west of the atlas's eleven — 1.5× the docs deploy it draws, on the wire: 8.6 MB gzipped against 5.8 MB, in 282 files against 1,035.

SHIPPED CITY · 2 PLATES — META measured
REPOSITORYlit-ui-router · simshanith
INSTRUMENTS (tools/*)26
LATEST SHIPPED1.16.5 · 2026-10-15
PUBLISHABLE PACKAGES11 · eslint-plugin-lit-ui-router 1.2.1 · lit-ui-router 1.16.5 · lit-ui-router-effect 0.4.1 · lit-ui-router-mobx 1.2.0 · lit-ui-router-signals 0.1.1 · lit-ui-router-ssr 0.4.0 · ui-router-navigation-location-plugin 1.1.2 · ui-router-effect 0.1.2 · ui-router-mobx 0.1.1 · ui-router-server 0.4.0 · ui-router-signals 0.1.1
SHEETS14 altitudes · 25 plates · 5 in the appendix · whole plate cabinet counted at origin/main @ eb1162da

GENERAL SURVEY — THE WHOLE TRACKED REPOSITORY, AS SHIPPED ON MAIN

SLOC (CODE)101,277
FILES COUNTED1,114
LINES132,627
BLANKS17,658
COMMENTS13,692
LANGUAGEFILESSLOCSLOC, AS A BAR
TypeScript66274,393
Markdown8310,611
JSON2118,816
YAML201,746
JavaScript321,276
Vue81,211
HTML20833
Patch11645
CSS2591
TOML7389
BASH11333
TypeScript Typings24219
SVG19152
JSONC255
License15
Shell12

BASIS — every tracked file on origin/main @ eb1162da (1,160 paths, 1,114 of them a language scc can name; the other 46 are binaries, dotfiles, and lockfiles — generated, and rightly left out) · scc 4.0.0 Code basis · counted 2026-10-18 · every number above imported from www/atlas.lit-ui-router.dev/data/census-files.json · deliberately broader than the sheets' authored-source census, and deliberately main: this atlas's own branch would add a 29k-sloc self-portrait.

The source image — an isometric block city over a strategy-breeding harness — works because of three quiet decisions, and only one of them is the city: it maps roles in a mechanism rather than files; it spends its one visual scalar (height) on a true quantity; and it keeps a CONDITION field that says what is currently wrong. This set keeps those three decisions and lets everything else change with altitude.

The result is an argument about form: a loop where there is a genuine cycle (sheet 1), panels where packages are too small to be cities (sheet 2), the full city where the measurement thesis is actually true (sheet 3), a massed spine where the family shares one core but the limbs never touch (sheet 4), a chart where edges would be fiction (sheet 5), and mostly prose where only a definition survives (sheet 6). Fitness peaks in the middle altitudes and collapses at both ends.

Above the sixth altitude the set stops arguing about form and starts measuring. Sheets 7–10 are a survey quartet, each counting the same subject at a different boundary: what the repository holds (the monorepo by mass), what npm delivers (the sample app's node_modules, 273× the app it serves), what the browser downloads (the docs deploy on the wire, where the prerendered prose tops the skyline and the lettering alone outweighs every routed app the site demonstrates), and who occupies the bytes after tree-shaking (the machine the router wraps is 21.3% of the bundle; the router itself, 5.9%). Sheet 11 cuts the same wire the other way, pricing 11 package quarters and 27 doors one at a time. Sheet 12 leaves the wire and draws the monorepo as its own CI reads it, the pull-request task graph punched onto a register plate. Sheet 13 ages the city by commit date, and sheet 14 draws it among the commons it builds on: the pull requests, issues and bug reports in other projects that its own record cites, sent or watched, and the home work that cites them. Interactive lanes (1i, 2B and 12i) walk the plates they sit beside, and the routed set stands sheets 2, 2C and 7 in the round. The appendix files plates whose subject is the atlas rather than the codebase: the sprite study behind the building sprites (appendix A1), and the survey office that turns the instrument on itself (appendix A2) — the census pipeline behind almost every number here, drawn as archive → probe stations → filed plates → drawings, introspected from the generator at build time, and walked live in its lane A2i. Appendix A3 turns sheet 7's ruler on the atlas itself: its drawing office, survey office, routed site and site build, massed beside the codebase they draw. Appendix A4 turns sheet 9's ruler on the atlas's own deploy: what the browser downloads from atlas.lit-ui-router.dev, district by district, beside the docs deploy summed by role.