Dress Up reports ยท ^du_report(5) ยท 2026-10-18 ยท about Messed Up Dress Up, a game made with M and N ยท after ^du_report(4)

Always be knolling

What did the two full-screen designers, ๐ŸŽต Music and ๐Ÿ—บ๏ธ World design, do the same way that the rest of Dress Up's panels do not, and should every panel move to it? Read from the game's code at 0.0.204 (every row each tab declares, and which a player sees in each place), with pictures of the panels as they are and mockups of what they could be (^ticket(279)).

Short answers.

  1. The two designers share one way of laying out a panel, 13 choices in all: one way in and out, the rest of the page cleared, a slim bar, cards in a grid, boxes within boxes, kinds told apart by a faint tint, fewer words, and a row on one line. The world designer adds the game itself as its first card. Each choice was asked for along the way (tickets 159, 210, 224, 226, 231, 250), and none of it has reached the other 17 tabs.
  2. The ๐Ÿž๏ธ Background tab is the biggest of them by far: 1,337 rows in 100 groups, 81% of them the three castles' rooms. In a place, a player sees 9 rows (the forest) to 50 (outside a castle), one under the other in a narrow column, the groups as dashed boxes.
  3. The proposal: one approach for every panel, nine rules (below): a box for each thing you can see or hear, named once; nesting shown by boxes inside boxes alone; everything laid out in plain view, in order (knolled); the thing shown, not just named; and every big tab a designer with the game as its first card, its boxes mirroring what is in the picture.
  4. Three before and afters: the castle's color themes (one decision in one place, its colors shown), the bubble themes (three cards, each with its bubble drawn), and a full-screen ๐Ÿž๏ธ Background designer (the game as its first card; the place picked from pictures of the places; what stands in the place as a card each, with its picture).
  5. Found on the way: the house's ๐Ÿงธ toys slider never shows (two rows share a key), and the bubble themes' on/off switches look the same on and off.
2 of 19
tabs with a full screen of their own (๐ŸŽต Music, ๐Ÿ—บ๏ธ World design)
1,337
rows declared in ๐Ÿž๏ธ Background, in 100 groups
9โ€“50
of them a player sees in one place (the forest; outside a castle)
13
choices the two designers make alike

Four ideas

Knolling. Laying out the things you are working with, at right angles, grouped by kind, all in plain view. The word is said to come from Frank Gehry's furniture shop in 1987, where Andrew Kromelow squared up the tools that way. The artist Tom Sachs made "always be knolling" a rule of his studio: put away what you are not using, group what you are, and lay it out so that you can see all of it. For a panel: each thing's controls together, in its own place, aligned with its neighbours, nothing hidden in a list that scrolls past.

Boxes within boxes, with little visual noise. Sub-structure should be visible as structure: a part of a thing sits in a box inside that thing's box, and that is all the decoration it needs. No dashed borders, no repeated names, no instructions in a label.

Fractal organization. The same shapes at every scale: a tab is a box of boxes, a box is a box of rows, a row a line of chips. Learn one level and you can read them all; zooming in or out changes the scale, not the rules.

Mirror worlds. David Gelernter's Mirror Worlds (1991), subtitled "the day software puts the universe in a shoebox", imagines software models of the world that you can look into whole and then zoom into, part by part: a view he called topsight. The world designer is a small one already: the game's world as a grid of squares, each a picture of its place, and the game itself in a card beside it. A designer for each panel would mirror what that panel changes: the place, the friend, the music.

What the two designers do alike

The music full screen: a slim bar, cards in a grid, the mixing board's strips as cardsThe world designer full screen: the grid of places on the left, the game and the cards on the right

๐ŸŽต Music and ๐Ÿ—บ๏ธ World design, full screen, at 1280 ร— 800 (0.0.204; shown smaller here). Each has a slim bar with โœ• back; the music's mixing board is a card of cards, its strips tinted by kind; the world designer's grid is a picture of each place, and its first card on the right is the game itself.

choicewhat it iswhere
one way in, one way outeach tab's first row is a full-screen chip ("โ›ถ the music, full screen", "โ›ถ the world designer, full screen"); โœ•, Escape or leaving the browser's full screen all go backjs/22-full-screen.js:33, 60, 110-119
the page clearedthe picture's stage, the divider, the title and the 19 tabs hidden; the side panel the whole windowstyle.css:87-93
a slim barthe tab's name and a small โœ• back, the panel's frame gone (ticket 210: the music full screen was "especially large and over-stated"; full screens "more compact, and sleek looking")style.css:94-105
cards in a gridauto-fill grids, 330 px (Music) and 280 px (World) wide at least, 8 px apart; wide things span the rowstyle.css:106, 113, 133-135
boxes within boxesthe mixer's strips, and the square's things, each a card inside the cardstyle.css:311-326, 140-142
kinds by tint--mu-main, --mu-mix, --mu-lfo, --mu-inst; a world square tinted by its placestyle.css:4-18, 435-460
fewer wordsa row's label hidden where the bar names the tab; the tune picker without dashed boxesstyle.css:122-123, 339-345
emoji firstevery bar, card and strip named emoji firstagent-instructions.md:78
one column when narrowthe grids fold to one column; the world's split, cards and in-game view only from 900 pxstyle.css:114-124, 154
a row on one linea knob: its label (6.2em), the slider, its value (3.8em)style.css:365-372
the game as its first card (World)the live picture moved into the right side's first card, sticky, folded away by its ๐Ÿ‘๏ธ (ticket 231)js/22-full-screen.js:84-108
remembered in the browserthe world's split, its view folded or not, its warnings shown or notjs/20-controls.js:1478; js/22-full-screen.js:79-105; js/25-world.js:208-219
the music's look, carried backticket 250 gave the Music tab outside full screen the same cardsstyle.css:107-111

Where they differ: Music opens from the game's full screen (๐ŸŽš๏ธ) as well as its tab; World only from its tab; Music hides the picture; World shows it as a card, from 900 px wide only; World keeps three things in the browser; Music none. Left unfinished: the in-game view only on windows 900 px wide or more; the 56 px bar's height written into the CSS and fitPic; stale comments (the world designer's "first piece is coming"; "the three LFOs" where there are seven; the tunes picker's dashed boxes) and two stale lines in agent-instructions.md (.world-main and .world-side; the letters "full screen only").

The panels as they are

The game at 1280 wide: the picture, and the Background tab in a narrow column under 19 tab buttonsThe Background tab's rows in the forest, on a narrow window

The ๐Ÿž๏ธ Background tab in the forest, at 1280 ร— 800 (left, smaller) and on a narrow window (right): under the 19 tabs, the kinds of place and the places as chips in dashed boxes, then one row under another.

01020304050๐ŸŒฒ forest9 rows๐Ÿฐ castle (N's, outside)50 rows, 10 groups๐Ÿ›‹๏ธ living room22 rows๐Ÿซง bubble space27 rows, 4 groups๐Ÿšช castle room 127 rows, 6 groups๐ŸŒฒ forest clearing24 rows, 3 groups๐ŸŒณ tree house22 rows๐Ÿฆ† lake17 rows๐Ÿง™ witch's woods17 rows๐Ÿ  house and yard13 rows
Figure 1. Rows of ๐Ÿž๏ธ Background a player sees in each place, at the game's defaults (0.0.204; SHOWN_WHEN run on the defaults, each place in turn). Outside a castle, 50 rows in 10 groups and about 258 chips.
where Background's 1,337 rows come fromrowsshare
the three castles1,08781%
the tree house977%
๐Ÿ”ญ smaller going north, one per place302%
bubble space201%
everything else1038%

Every tab

tabrows declaredgroupsshown at the defaults
๐Ÿง Body817
๐Ÿ˜€ Face31022
๐Ÿ‘ Eyes15013
๐Ÿ’‡ Hair404
๐Ÿฆ’ Neck, arms & legs12011
๐Ÿ‘• Shirt806
๐Ÿ– Hands1504
๐Ÿ‘– Pants603
๐Ÿฉฑ Swim & undies701
๐Ÿ‘Ÿ Feet804
๐Ÿ‘ป Visibility909
๐Ÿฏ Costume4601
๐ŸŽฎ Controls22622
๐ŸŽต Music10010
๐Ÿ—บ๏ธ World design202
๐Ÿ”ฌ Inspection404
โ™ฟ Accessibility303
โš™๏ธ Advanced101
๐Ÿž๏ธ Background1,3371009 to 50

๐ŸŽต Music's 10 rows include the mixing board, about 120 controls for a tune of 14 parts; ๐Ÿ—บ๏ธ World design's 2 include the whole designer.

Before and after

The castle's color themes

A castle has two themes, A and B: each two flag colors, how they go together (โ†”๏ธ in turn, โ–ฅ stripes, โ–ฆ checkers) and a carpet. A is the castle's own, its flags outside too; B starts as A with its colors swapped. Today the colors are set in one group ("๐ŸŽจ N's castle: its color themes", 8 rows), and each room that takes a theme chooses one in its own box, by name: "๐ŸŽจ theme A" or "๐ŸŽจ theme B", with no color to see. One decision in two places. After: the two themes side by side, each drawn as its flag; each room shows its theme as its flag's two colors, and a tap swaps it; the rooms that keep their own colors say so.

before (castle N, room 1)

A room's box: its colors, theme A or theme B, as words

after

๐ŸŽจ N's castle: its colors two themes; each room that takes one shows which
A its flags outside, and rooms 1, 3, 5 โ€ฆ
๐Ÿšฉ color 1
๐Ÿšฉ color 2
๐Ÿšฉ together
โ†”๏ธ in turnโ–ฅ stripesโ–ฆ checkers
๐ŸŸฅ carpet
B rooms 2, 4 โ€ฆ: A, its colors swapped
๐Ÿšฉ color 1
๐Ÿšฉ color 2
๐Ÿšฉ together
โ†”๏ธ in turnโ–ฅ stripesโ–ฆ checkers
๐ŸŸฅ carpet
๐Ÿšช its rooms tap a room's flag to give it the other theme
๐Ÿ‘‘ 1 king's room A๐ŸŒฟ 2 greenhouse ยท its own๐Ÿ•ณ๏ธ 3 trap room ยท its own๐Ÿ—๏ธ 4 dungeon ยท its ownโ›“๏ธ 5 deep dungeon ยท its own
Only rooms with doors of their own (the king's room, hallways, the dining room, the spiral stairs) take a theme; the others keep their own colors, and say so.

The bubble themes

Three themes, A (always) and B and C (each switched on or off), five rows each: colour, size, shine, sparkle, sparkle colour. They are in ๐Ÿž๏ธ Background, for bubble space (20 rows, 4 groups), and again in ๐ŸŽฎ Controls, for blowing bubbles, where B and C have a second, separate on and off. Every label repeats its theme's letter ("๐Ÿ…ฑ๏ธ colour", "๐Ÿ…ฑ๏ธ size"), and the on and off switch is a chip named "๐Ÿ…ฑ๏ธ theme B" both ways that looks the same on and off. After: three cards side by side, each headed by its bubble, drawn from its settings; its switch at its corner; no letter repeated inside.

before (bubble space, theme B on)

Theme A's last rows and theme B's first, stacked in dashed boxes

after

๐Ÿซง bubble themes the same three in ๐Ÿซง bubble space and in ๐ŸŽฎ blowing bubbles
A always
๐Ÿ”Ž size
18
โœจ shine
70
noneโญโ€ข
โญ B
๐Ÿ”Ž size
26
โœจ shine
85
noneโญโ€ข
C
off: switch it on to add bubbles of its own

๐Ÿž๏ธ Background, as a designer

The world designer, made for one place: the same slim bar and โœ• back, the game as the first card on the right, and on the left the place's boxes, each mirroring something in the picture. The place is picked from pictures of the places (the picture archive's), grouped by kind; the place's own settings are one box; what stands in the place is a card each, its picture clipped from the scene (OBJECTS.md's), lit in the game while pointed at (the ๐Ÿ”ฌ overlays already outline each one) and hidden with a tap; the friend here, the place's ways and its music are a box each. The side panel keeps the same boxes, smaller, for quick changes during play.

before (the forest's rows; the lake has 17)

The Background tab's rows in the forest, one under another

after (the lake, full screen)

๐Ÿž๏ธ Background designer ยท ๐Ÿฆ† lakeโœ• back to the game
๐Ÿ—บ๏ธ the place every place, as it looks
๐ŸŒฒ forest
๐ŸŒฒ clearing
๐Ÿฅพ path
๐Ÿ›ค๏ธ crossing
โ›ฐ๏ธ trail
๐Ÿงš fairies
๐Ÿฆ† lake
๐Ÿ–๏ธ beach
๐Ÿ’ฆ waterfall
๐Ÿฐ castle
๐Ÿฆ† the lake itself
๐Ÿฆ† ducks
5
๐Ÿฆ† duck size
100
๐ŸŒพ cattails
14
โ˜๏ธ clouds
4
โ˜๏ธ cloud size
100
๐Ÿง the friend here
size in the scene
100
๐Ÿ”ญ smaller north
40
drag the friend in the view to place them
๐Ÿ‘๏ธ what stands here, back to front each lit in the view while pointed at; tap to hide
far wood
duck 1
duck 5
duck 3
๐Ÿ™ˆ duck 2
duck 4
cattails, left
cattails, right
๐Ÿงญ its ways from ๐Ÿ—บ๏ธ World design
โฌ†๏ธ Nโžก๏ธ Eโ†˜๏ธ SEโฌ‡๏ธ Sโ†™๏ธ SWโฌ…๏ธ Wโ†–๏ธ NW
๐ŸŽต here
๐Ÿฆ† duck-pond dash
ใ€ฐ๏ธ quick: โ˜€๏ธ the sun's rays, ๐Ÿฆ† the ducks bobbing ยท slow: โ˜๏ธ the clouds drifting
๐Ÿ‘๏ธ ๐Ÿ“บ the game live
The lake, as the game draws it
๐Ÿ”ฌ overlays
๐Ÿงฉ made of๐Ÿงฑ collision boxes๐Ÿงญ arrows
๐Ÿ–ผ๏ธ the archive this place, run by run
2026/10/18 ยท 0.0.201 โ–ธ 2026/10/17 ยท 0.0.197 โ–ธ โ€ฆ

The mockups are drawn in this page, in the game's own dark colors; their settings, defaults, objects and tune are the lake's and castle N's as the game has them at 0.0.204. The live game card is the lake's archived picture.

A global shift: the rules

  1. A box for each thing you can see or hear: a place, a thing standing in it, a part of the friend, a channel, a theme. Its name once, at its top, emoji first; nothing inside repeats it (no "๐Ÿ…ฑ๏ธ colour" inside theme B).
  2. Nesting by boxes alone: each level a shade lighter than the one it is in, no dashed lines; kinds told apart by a faint tint, as the music's strips and the world's squares are.
  3. Knolled: boxes in a grid, things of a kind the same size and lined up, everything a box holds in plain view. A ๐Ÿ‘๏ธ fold only for the big ones, remembered in the browser, as the world's view is.
  4. A row on one line: its emoji and two or three words, its control, its value, the music's knob as the model. What a label explains today ("% for each tenth of the picture", "0 = a blur") moves into a hint shown on pointing.
  5. Show the thing: a color as a swatch, a theme as what it draws (a bubble, a flag), a place as its picture, a thing standing in a place as its own picture.
  6. One decision, one place: a theme chosen where its colors are set, or its colors shown where it is chosen; a setting used in two tabs is one box shown in both, and one setting, not two.
  7. Mirror the picture: every big tab a designer that opens with the game as its first card; each box mirrors something in it; pointing at a box lights its thing in the game, and pointing at a thing in the game finds its box.
  8. The same at every scale: tab, designer, box, box inside it, row, chip; the side panel is the designer's boxes, smaller, not a different layout.
  9. Keep it fast: a box is built once and refreshed by what it shows, and show-when rules stay lookups (ticket 167: the Background tab's refresh once held swimming at 2 to 15 frames a second).

In code, three pieces carry all of it: a box (its name, its tint, its fold, its grid of what it holds), the row the music's knobs already are, and the designer's shell the two full screens share (the bar, โœ•, the cleared page, the game card). TABS would say which boxes a tab has, and SHOWN_WHEN would show and hide whole boxes as it shows and hides rows now.

Found on the way

What next

  1. 1. The pieces: a box, the one-line row and the designer's shell, shared by every tab (CSS tokens for the shades and tints; TABS rows grouped into boxes); the two full screens moved onto them, the same as they look now.
  2. 2. ๐Ÿž๏ธ Background as a designer: full screen with the game as its first card; the places as pictures; the place's own box; what stands in it as cards with their pictures, lit in the game while pointed at; the friend, the ways and the music each a box.
  3. 3. The castle's themes in one place: both drawn as flags; each room's theme shown by its colors and swapped with a tap; the rooms that keep their own colors saying so.
  4. 4. The bubble themes as three cards, each with its bubble drawn; their on and off visible (a bug today); one on and off for each theme, or two plainly named.
  5. 5. Fixed: the house's ๐Ÿงธ toys, two rows sharing a key, its slider never shown at the house.
  6. 6. The other tabs, biggest first: ๐Ÿฏ Costume (46 rows), ๐Ÿ˜€ Face (31), ๐ŸŽฎ Controls (22), ๐Ÿ‘ Eyes and ๐Ÿ– Hands (15 each), and the rest; each as its boxes, then, where it has many, a designer of its own.
  7. 7. Tidy what the survey found stale: three comments and two lines of agent-instructions.md about the full screens; "colour" and "color".
  8. 8. Measure the full-screen designer's speed (ticket 289, not measured for this report): many place pictures at once were slow on the black laptop, so before step 2 is built, its place pictures drawn live, as still pictures and as bitmaps, and the friend's walk and drag with the designer open, at normal speed and on the slow tiers. The numbers come back here as a dated note.

What we got wrong on the way

How this was put together

The code. a read-only survey of the panels' code (js/20-controls.js TABS and SHOWN_WHEN, js/22-full-screen.js, style.css), with TABS walked and SHOWN_WHEN run in node on the game's own parts at their defaults, as tools/check_load.mjs runs them; the pictures from the game in the desktop app's browser. The game is 0.0.204 (6e787a8). Rows declared: TABS walked, groups expanded; rows shown: SHOWN_WHEN run with each place set as the background, everything else at its defaults (two kinds of row, things standing in a place and seats, hide themselves when they have nothing to list).

The pictures. the game 0.0.204 at http://localhost:8133/, in the desktop app's browser (Chrome 152): wide ones at 1280 x 800 shown in a narrower pane, so smaller; narrow ones at the pane's own width. mockups drawn in this page (HTML, the game's own dark colors); the lake's objects are OBJECTS.md's pictures, the places the picture archive's thumbnails.

The data is here twice: embedded in this page (<script type="application/json" id="report-data">) and as 005/data/report.json. The page is built from it and from the mockups by 005/drivers/build.py.