feat: scale-true drill-down — the section never rescales - #9
Draft
bryan-uipath wants to merge 2 commits into
Draft
bryan-uipath wants to merge 2 commits into
bryan-uipath wants to merge 2 commits into
Conversation
bryan-uipath
force-pushed
the
feat/scale-true-drill
branch
from
September 4, 2026 22:35
c60cd46 to
b84ed9f
Compare
bryan-uipath
force-pushed
the
feat/scale-true-drill
branch
from
September 4, 2026 22:57
b84ed9f to
93162cb
Compare
Each node keeps the rect/depth/tier it was first laid out at (VNode.home); a drilled-in scope is laid out there instead of re-mapped to the full stage, so heights, footprints and terrace altitude read the same at every level and the homing transition has nothing to scale. A legibility floor enlarges only scopes too small to place their children. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A drilled scope whose root was never laid out (a module made on the spot by a double-click, a file stripped for being too small) fell back to the whole CITY_SIZE rect — a 900-unit pancake. It now lands on a floor-sized square at its nearest placed ancestor. The legibility floor measures the home's short side, so a skinny plot is widened too, and label culling is relative to the stage instead of a fixed 3 units. Folders too deep for a terrace sign no longer count as signed, so they keep their label pill. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bryan-uipath
force-pushed
the
feat/scale-true-drill
branch
from
September 7, 2026 20:11
0244cf0 to
2467be5
Compare
bryan-uipath
force-pushed
the
feat/pr-provenance
branch
from
September 7, 2026 20:11
b7428d2 to
0acda53
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #8.
Drilling in used to re-map the subtree to the full 900-unit stage, so footprints inflated while heights stayed absolute: a district read as a pancake, and the homing transition had to scale it up around the anchor. Now each node keeps the rect/depth/tier it was first laid out at (
VNode.home) and a drilled-in scope is laid out at that home. Everything lands where it already stood; only the surroundings go away and the camera closes in.layoutCity(root, { at })places the root at a given rect/depth/tier;layoutNoderecords first placement.scopeHome()resolves the home of the (possibly synthetic) scope root;stageFloor()is the only exception — scopes too small to place their children are enlarged about their centre (real foldersmax(48, √files·6), file/module scopes keep the oldmax(60, √buildings·55)).kis now 1 in the common case; the old city fading over the identical new one is invisible.Before / after isolating
packages/canvas/.../hooks(58 files): the old version stretched it to a flat plate; the new one keeps its towers.Known trade-offs (recorded in DESIGN.md "Scale-true drill-down"):
Verification:
npm run typecheck; motion probe passes (0% viewport jump on every rebuild frame, skyline cleared, no polar backtrack).🤖 Generated with Claude Code