Dress Up reports · ^du_report(15) · 2026-10-21 · about Messed Up Dress Up, a game made with M and N · after ^du_report(14)
Seen before it was built
On 2026-10-20 Matthew asked for a dragon costume, fire to breathe and armour for the knight's horse. What did the two mock-ups show him before anything was built, what went out in 0.0.392, 81 minutes after he asked, and where does the game differ from them? From tickets ^ticket(499) and ^ticket(498): Matthew looked at both mock-ups on 2026-10-21, said “looks good” of each, and asked for them to be published as a report. Here they are, to play with, beside what went out in 0.0.392 (commit b1900d5e22, released 2026-10-20 19:14).
Short answers.
- Two mock-ups, ready 10 and 31 minutes after he asked. At 17:53 Matthew asked for a dragon costume (ticket
^ticket(499)) and for horse pieces for the knight (ticket^ticket(498)), from Lego castles and knights. By 18:03 a page showed the friend in a dragon suit breathing six kinds of fire; by 18:24 a page showed the game's horse in six sets of armour. Each starts from the game's own drawing (the friend in the wolf suit; the horse side on), so what he saw was, side on, what the game would draw. - He did not pick: all of it went out, for M and N to choose. At 18:48: “chickens dragon and horse -- just release and let the kids decide please.” 0.0.392, released at 19:14, 81 minutes after the first ask and 26 after his answer, has the costume, all six fires and all six armour sets, each a choice in the game.
- The mock-ups' drawings became the game's. Side on, the game's fires are the mock-up's shapes with the same timings, and their heat is the same six cones, 500 to 660 long (the friend standing is about 460) and 6 to 16 degrees each side, popping the bubbles it reaches, as Matthew asked at 17:58. The game then draws each piece again from the other sides, where each mock-up drew one: each fire toward us and away, the armour from the front and behind, led and ridden.
- Two proposals are not built yet: fire from things in a scene (a torch, a campfire, a cannon, a placed dragon), and armour pieces placed on their own (a chanfron on a stand). Smaller differences: a tap gives no puff of its own, and the plume swings with the horse's stride instead of swaying all the time.
- Checked, not yet timed. The three tickets' checks (
armour498,dragon499,fire499) passed all 102 of their lines (59 + 18 + 25) in 0.0.392's run on GitHub and again in 0.0.397's. No frame-rate case yet breathes fire or rides the armoured horse.
What was asked, and when
^ticket(499) began as a costume and grew into an action: wings and a tail, then breath, then fire that beats bubbles. The mock-up was asked for at 17:54, and the heat and the spikes came while it was being drawn. For ^ticket(498) Matthew asked for horse pieces, “not just saddles”; its first step was to be a list of the pieces, and the mock-up drew them on the game's own horse instead. Each mock-up ended with a question for him (in the tickets' notes): which fires to build first, and is the costume right as drawn; which sets, and should they take the knight's colours. His answer at 18:48 covered both, and the hens of ^ticket(506).
| when | ticket | Matthew's words |
|---|---|---|
| 17:53 | ^ticket(498) | “let's start to think of costumes for the knight as having horse pieces (face helmets, look at images from Lego castles and knights) -- not just saddles.” |
| 17:53 | ^ticket(499) | “new costume to add -- dragon.” |
| 17:53 | ^ticket(498), ^ticket(499) | “look at Lego castles and knights for inspiration.” |
| 17:53 | ^ticket(499) | “wings, tail and optional dragon breath -- need an action for that, like bubbles -- shooting fire out of our mouth.” |
| 17:54 | ^ticket(499) | “let's get serious about animating fire shooting out of things. Mock up the dragon costume and 6 fire styles.” |
| 17:58 | ^ticket(499) | “let's have the dragon fire be the best tool against bubbles -- can you add logic for that -- the heat extend further than the fire.” |
| 17:59 | ^ticket(499) | “dragon tail spikes should be facing upward, not downward :)” |
| 18:48 | ^ticket(498), ^ticket(499), ^ticket(506) | “chickens dragon and horse -- just release and let the kids decide please.” |
| 13:46 on 10-21 | ^ticket(499) | “looks good.” |
| 13:47 on 10-21 | ^ticket(498) | “looks good” |
Each quote is the ticket's own record of Matthew's words in chat. Times are the tickets' log of his messages, matched by length (the 18:48 message is 73 characters, as the quote is; the ticket's text says '18:5x'). 'chickens' is ticket ^ticket(506), hens in the castle's stable, also in 0.0.392.
The dragon and its fires: the mock-up
For ^ticket(499), ready at 18:03. The page draws the friend as the game draws them in the wolf suit, standing and facing right, recoloured, with the dragon's pieces added: horns, spines down the hood, teeth along the hood's opening, a slit eye on the hood, scales, a plated belly, claws, bat wings that flap, and a long tail with its spines standing up and a spade at its end. Pick a fire beside the picture or a card under it; hold “🔥 hold to breathe fire” (or F, once the frame has been clicked); untick “keep breathing” to see it stop. Bubbles drift in from the right, and the heat pops them. At the bottom, the page's own proposal: how it could go into the game.
Open the dragon mock-up on a page of its own: mockups/dragon-fire.html, 39,835 bytes, the file Matthew looked at, unchanged. Everything on it runs in the browser; nothing is sent anywhere.
Heat that reaches past the flames
Matthew at 17:58: “let's have the dragon fire be the best tool against bubbles -- can you add logic for that -- the heat extend further than the fire.” In the mock-up each fire has a heat: a cone from the mouth, longer than its flames, shown as a dashed, shimmering edge (Figure 3). While the fire is on, any bubble whose edge is inside the cone pops, and the page counts them. The blue-hot jet reaches farthest and narrowest, the fire bubbles least far and widest; every one reaches past the friend's own height.
The horse's armour: the mock-up
For ^ticket(498), ready at 18:24. The page draws the game's own horse as 0.0.390 drew it, side on and ridden with its saddle on, and dresses it in six sets in the knight's arms (two colours, a layout and an emblem, as 🐯 Costume's knight has them), so a knight and their horse match. Pick a set; change the arms and the horse's coat beside it.
Open the horse armour mock-up on a page of its own: mockups/horse-armour.html, 24,924 bytes, the file Matthew looked at, unchanged. Everything on it runs in the browser; nothing is sent anywhere.
What went out in 0.0.392
After Matthew's answer at 18:48, the four things he released (the armour, the dragon, the fire and the stable's hens of ^ticket(506)) were built in parallel, each reviewed and fixed, then merged and released together as 0.0.392 at 19:14 (b1900d5e22) [3]. Its entry in the game's list of versions [4]: “Everything in 0.0.391, plus a dragon, fire, armour for the horse and a stable full of hens: every choice in the game, for the kids to pick.” Nothing of the dragon, the fire or the armour has changed since, to 0.0.397.
The dragon costume
🐯 Costume has a 🐉 dragon after the deer, with the mock-up's pieces and its four colours to start with, each with 6 to 8 swatches and “any color”. It is drawn facing us, from behind and from the side; standing, sitting, lying, crawling and swimming. Its wings flap with their own slow beat or with an LFO from the mixing board, stay open, or fold.
the mock-up, side on
the game, wings flapping
🦇 open and still
🌂 folded
run-2026-10-20), the game's own pictures of the costume [10]. The flapping wings move in a browser.Breathing fire
🔥 Breathing fire is held, as 🫧 blowing bubbles is: 🔥 on the game controller (the right trigger), on the screen's controller, or F. Anyone can, whatever they wear. 🎮 Controls has a group, “🔥 breathing fire”: its fire (the six), from where (the 👄 mouth, the 🫲 left hand or the 🫱 right hand), how big (50 to 200) and whether its heat shows. The fire is drawn in a picture of its own laid over the scene, built once and then only moved; every shape in it is moved by a CSS animation, so the page does no work a frame for the flames. While it is held, the game works out each frame which bubbles are in its heat, and pops them: bubble space's and the smaller ones they throw, the bubble room's (at most 10 a frame), the bubble makers', the friend's blown ones and a diving suit's leaks. Let go, it fades in 0.2 s and nothing runs for it.
Side on, the six fires are the mock-up's: the same shapes, moved by the same keyframes. Toward us and away, each is a drawing of its own, not the side-on fire turned (Matthew's rule for a new angle): toward us it comes out of an open “O” mouth at us, its heat a disc; away it rises past the head.
| fire | the mock-up | the game: side on | toward us | away |
|---|---|---|---|---|
| 🔥 roaring flame | ||||
| ☄️ fireballs | ||||
| 🌀 twisting fire | ||||
| 🔵 blue-hot jet | ||||
| 🧱 brick fire | ||||
| 🫧 fire bubbles |
| fire | its heat (reach · half-angle; toward us, a disc's radius) | shapes in the fire | ||||
|---|---|---|---|---|---|---|
| side on | toward us | away | side on | toward us | away | |
| 🔥 roaring flame | 600 · ±15° | 230 | 380 · ±22° | 45 | 43 | 39 |
| ☄️ fireballs | 640 · ±9° | 210 | 400 · ±14° | 49 | 67 | 49 |
| 🌀 twisting fire | 570 · ±12° | 225 | 360 · ±22° | 41 | 41 | 37 |
| 🔵 blue-hot jet | 660 · ±6° | 200 | 330 · ±12° | 23 | 27 | 23 |
| 🧱 brick fire | 560 · ±12° | 235 | 350 · ±18° | 22 | 28 | 22 |
| 🫧 fire bubbles | 500 · ±16° | 200 | 360 · ±22° | 97 | 97 | 97 |
The heat in the friend's units, from the game's FIRE_HEAT at 0.0.392 [5] (side on, the mock-up's HEAT, number for number). Shapes: the paths, circles, ellipses and other shapes each fire is drawn with, its heat and the mouth left out, counted in the pictures above (data/pictures.json).
The horse's armour
🧍 Body's 🐴 the horse has “🛡️ its armour”: none (to start with) or one of the six, under the mock-up's names. Each set is drawn side on, from the front and from behind, each a drawing of its own, led and ridden. The cloth and the plume take the knight's arms while the friend is a knight (the middle column below, in the mock-up's arms); otherwise the halter's colour and a lighter shade of it, quartered, with no emblem (the right column, where the friend is not a knight). The plumes and the parade's ribbons swing with the stride, as the tail does, and hang still while the horse stands.
| set | the mock-up | the game: side on, ridden | facing us, led |
|---|---|---|---|
| 🛡️ full plate | |||
| 🦁 half caparison | |||
| 🎪 tournament | |||
| 🐉 dragon helm | |||
| 🧱 toy helmet | |||
| 🎀 parade |
Checked
Each ticket has a check that drives the released game in Chrome on GitHub's computers and prints a line, ok or FAIL, for each thing it checks. Counted in the logs of 0.0.392's run [7] and 0.0.397's [8]:
| check | what it checks | 0.0.392 | 0.0.397 |
|---|---|---|---|
armour498 | seven choices; every set different in every view, led and ridden; the arms' and the halter's colours; the frame holds plume and horns; the near hind leg in front of the tail; nothing over the rider's face | 59 ok, 0 FAIL | 59 ok, 0 FAIL |
dragon499 | among the costumes; its colours start as the mock-up's; two wings, a tail with a spade in every facing; every tail spike up, crawling and swimming too; no wing through the floor; flapping, open and folded; every pose drawn | 18 ok, 0 FAIL | 18 ok, 0 FAIL |
fire499 | F held draws a moving fire, let go removes it; all six fires in every view; from a hand; the heat reaches past the flames and pops bubbles in reach, not out of reach; in the bubble room facing away and toward us; at most 10 a frame at size 200; the controller's button and the screen's | 25 ok, 0 FAIL | 25 ok, 0 FAIL |
The game's record of its runs [9] marks 0.0.392 broken, by three other tickets' checks, each mended in the check alone; from 0.0.394 every version is ok:
farm502(1 FAIL line): a fence piece dragged with the pointer: the check read the piece where it was put after the drag; mended in the check alone (19a1f1f, 0e4487a, in 0.0.394).horse438(2 FAIL lines): the led horse before the friend, and a count of the horse box's rows that more choosers had outgrown; mended in the check alone (2c5a744, in 0.0.393).pasture503(1 FAIL line): the led horse's size against the grazing ones: the check measured a wrapper, not the horse; mended in the check alone (b74e6cf, in 0.0.394).
In the same run the frame-rate gate passed: all 14 of its cases at 55 frames a second or more, its slow scenes all 10, the slow-laptop tier (the Ubuntu laptop, Intel i7) both, and all 56 places with the on-screen controller at 58 or more. No frame-rate case breathes fire, wears the dragon costume or rides the armoured horse: tools/fpsgate.mjs names none of them, and the three ticket checks record no frames a second.
Where the game differs from the mock-ups
Each thing the mock-ups offered, on the page or in their proposals, against the game at 0.0.392: 6 as mocked up, 6 with more in the game, 3 changed, 2 not yet built, and 3 that were the page's own, for looking.
| the mock-up | the game, 0.0.392 | ||
|---|---|---|---|
| 🔥 fire | Six fires: roaring flame, fireballs, twisting fire, blue-hot jet, brick fire, fire bubbles | All six, by the same names, in 🎮 Controls, “🔥 its fire” (the roaring flame to start with). Side on, the same shapes, moved by the same timings | as mocked up |
| 🔥 fire | Drawn side on | Drawn three ways, each a drawing of its own: side on; toward us, out of an open “O” mouth; away, rising past the head | more in the game |
| 🔥 fire | Hold a button or F to breathe; “tap it for a puff” | Held: 🔥 on the game controller (the right trigger), on the screen's controller, or F. Let go, it fades in 0.2 s; no puff of its own | changed |
| 🔥 fire | From the 👄 mouth, the 🫲 left hand or the 🫱 right hand | The same three, “🧭 from where”; and a size, “📏 how big”, 50 to 200 | more in the game |
| 🔥 fire | The heat, a cone past the flames; bubbles drifting in pop | The same six cones side on; toward us a disc, away a cone. It pops the bubbles of bubble space, the bubble room, the bubble makers, the friend's blown ones and a diving suit's leaks | more in the game |
| 🔥 fire | “🌡️ show the heat” | “🌡️ show its heat”, on to start with | as mocked up |
| 🔥 fire | A count, “🫧 popped by the heat” | No count | the page's own |
| 🔥 fire | Fire makers anything can use: a torch, a campfire, a cannon, a dragon placed in a scene | Only the friend breathes fire | not yet |
| 🔥 fire | “🔁 keep breathing (for looking)”, the sky, “🏷️ name the pieces” | For looking at the mock-up; not in the game | the page's own |
| 🐉 dragon | The friend in a dragon suit, side on, standing | The same pieces, in 🐯 Costume after the deer; facing us, from behind and from the side; standing, sitting, lying, crawling and swimming | more in the game |
| 🐉 dragon | Four colours, any colour each | The same four, starting at the mock-up's; 6 to 8 swatches each and “any color” | as mocked up |
| 🐉 dragon | Wings flapping, 1.7 s each way | “🪽 its wings”: flapping (with their own slow beat, or an LFO from the mixing board), open and still, or folded | more in the game |
| 🛡️ armour | Six sets: full plate, half caparison, tournament, dragon helm, toy helmet, parade | All six, by the same names, in 🧍 Body's 🐴 the horse, “🛡️ its armour” (none to start with) | as mocked up |
| 🛡️ armour | The horse side on, ridden | Side on, from the front and from behind, each a drawing of its own; led and ridden | more in the game |
| 🛡️ armour | Cloth and plume in the knight's arms from 🐯 Costume, else the halter's colour | As proposed: a knight's horse in the knight's colours, layout, emblem and plume colour; otherwise the halter's colour and a lighter shade, quartered, no emblem | as mocked up |
| 🛡️ armour | The arms and four coats, chosen on the page | Chosen where they already were: the knight's arms in 🐯 Costume, the coat in “🐴 its coat” (7 colours) | the page's own |
| 🛡️ armour | The plume sways all the time | Plumes and the parade's ribbons swing with the stride, as the tail does, and hang still while the horse stands | changed |
| 🛡️ armour | The 🎪 tournament's cloth over the whole head, with no bridle drawn over it | The bridle drawn over the head cloth, so the rein has its ring: its strap crosses the eye, and the noseband and the ring show | changed |
| 🛡️ armour | The dragon helm in a fixed green | The same fixed green; it does not follow the dragon costume's colours | as mocked up |
| 🛡️ armour | Pieces placed on their own: a 🐴 chanfron on a stand in the armoury | On the friend's horse only | not yet |
The kids' choice
Matthew did not choose between the fires or the sets. At 18:48: “chickens dragon and horse -- just release and let the kids decide please.” So 0.0.392 offers every one, each a choice where a player finds it:
| the choice | where | how many | to start with |
|---|---|---|---|
| 🔥 its fire | 🎮 Controls, 🔥 breathing fire | six | 🔥 roaring flame |
| 🛡️ its armour | 🧍 Body, 🐴 the horse | none or six | none |
| 🐉 dragon | 🐯 Costume, after the deer | one of the costumes | not worn |
Not recorded as of 2026-10-21: no ticket notes which fire or armour M and N chose. Step 4 below.
What next
- 1. Time breathing fire: Add cases to the frame-rate gate (tools/fpsgate.mjs) for breathing fire held while walking: the roaring flame (45 moving shapes side on) and the fire bubbles (97 shapes), in bubble space and the bubble room, where its heat pops bubbles every frame; and for riding the armoured horse at a run. The three tickets' checks test what is drawn, not how fast.
- 2. Fire from things in a scene: Let things placed in a scene breathe the six fires, as the dragon mock-up proposed: a torch, a campfire, a cannon or a placed dragon, each fire with its heat, drawn by the same fireSvg.
- 3. Armour on a stand: Let the horse armour's pieces be placed on their own, as the horse mock-up proposed: a chanfron on a stand in the armoury, like the helmet in the trap room.
- 4. What M and N pick: When M and N have played with them, add a dated note here saying which fires and which armour they chose (Matthew: “let the kids decide”).
How this was put together
Written on 2026-10-21 by Claude, for Matthew, from ticket ^ticket(519). Matthew, that day, on the dragon mock-up at 13:46: “looks good.” then “please publish as a du_report.”; at 13:47, on the horse's: “include this too -- looks good”. The two mock-ups were made by Claude on 2026-10-20 for tickets ^ticket(499) and ^ticket(498) (the dragon's file saved at 17:59, the horse's at 18:24), and are published here as they were: their SHA-256 begin 9cc5983af66de680 and aadcfc08261040c4 [2]. This page only sizes each frame to its page, passes the theme switch on to it, and opens the mock-ups' links to other sites in a new tab.
Every picture was drawn by code, none by hand, by drivers/pictures.mjs. The mock-ups' pictures by each page's own script, run under node with a stand-in page, its scene() called with the page's own starting values, and its animations put inside the picture. The game's by the game at its release tag dress-up-0.0.392: its 26 script parts loaded under node, as the game's load check loads them, then horseSvg() and fireSvg(), with the fire's animations from its style sheet. The archive's are the picture archive's run of 0.0.392, made on GitHub at 19:35 that evening, copied as they are [10]. Each was looked at as a still on the laptop (librsvg, through ffmpeg, which draws no animation: in such a still the mock-ups' flames, which take their colours from their animations, are black blobs at the mouth); in a browser they move. Pictures shown with <img> keep the light colours they were drawn in, on either theme.
The times are from the tickets' logs and the release's commits [3]; the check counts are the ok and FAIL lines in the two runs' logs; what shipped, and how, is read from the code at the tag [5] and the list of versions [4]. The data is in data/report.json and data/pictures.json (every picture: what it shows, where it came from, its bytes and shapes), and embedded in this page; on GitHub, the folders data, drivers, pictures and mockups. The page is built by drivers/build.py.
- Tickets 498 and 499 on the Hazel Work Dashboard: Matthew's words, the mock-ups' progress notes, the outcomes
- The two mock-ups, as Matthew looked at them: mockups/dragon-fire.html and mockups/horse-armour.html
- Dress Up 0.0.392: its commits, from dress-up-0.0.391
- VERSIONS.md: 0.0.392 (2026-10-20)
- The game's drawing of the fires, the heat and the armour at 0.0.392: dress-up/js/08-body.js
- The checks: tools/checks/armour498.mjs, dragon499.mjs, fire499.mjs
- 0.0.392's speed run (GitHub Actions run 39526121922)
- 0.0.397's speed run (GitHub Actions run 39579220956)
- speed.json: each version's speed run, ok or broken
- The picture archive's run of 0.0.392 (tag run-2026-10-20)