{"n": 1, "what": "fit.py v1: soft-softmax layers (tau 1, smoothness 0.05), 18 k-means patches merged greedily by least-squares motion agreement", "saw": "merge hierarchy is real structure: K=3 splits off the fore leg, K=4 the head, K=6 head/neck/chest/fore leg/rump/hind leg; residual curve smooth, no elbow"}
{"n": 2, "what": "sweep K in 3..12, held-out IoU", "saw": "IoU 0.705 (K3) .. 0.803 (K8) .. 0.811 (K12); plateau from K=8 -> K=8. Splat left holes on enlarged frames; fixed with 2x2 sub-points"}
{"n": 3, "what": "smoothness 0.25, re-fit K=8", "saw": "held-out IoU 0.83 vs hand-cut rig 0.77 vs one rigid cut 0.71 - but mean max layer weight 0.20: every point blends all 8 motions, per-layer affines rotate 40 deg and scale 0.5, hinge disagreement 40-75 px. Not a puppet. Rejected."}
{"n": 4, "what": "pass 4 rewritten as EM over crisp layers (E-step per-point cost, M-step motions) + hinge-consistency loss", "saw": "without a spatial prior the labels scattered into confetti (every layer touched every other); IoU 0.78"}
{"n": 5, "what": "E-step as ICM with a Potts prior (BETA 4, labels may only spread from neighbours)", "saw": "clean puppet: head, neck, shoulder, fore leg, trunk, back, rump, hind legs; hinges at elbow, shoulder, hip, neck with 2.4-4.8 px rms disagreement. Held-out IoU 0.758: no better than the hand-cut rig (0.767), better than rigid (0.715). Adopted, with the number shown on the title card."}
{"n": 6, "what": "variants BETA 2/4, lam_h 0.01-0.05, K 8/10", "saw": "0.754-0.772, all within 0.02 of the hand-cut rig. The few-shot data does not make crisp learned parts beat an authored split on silhouettes; it does find the split without a person drawing it."}
{"n": 7, "what": "library: masks frozen, motions re-fitted to frames 0-13 and 40-46 (mirrored)", "saw": "walk_up IoU 0.66-0.995; walk_low (3/4, head in a bowl) poses come out frog-like relative to the trunk - unusable whole; only its head/neck local motion is borrowed, and it lowers the head only a little"}
{"n": 8, "what": "first scene draft (24 frames sampled)", "saw": "pipeline works; turn views too large; look-back (head mirrored with soft weights) smeared into stripes; lying dog washed out by the door light; head-low not below the back; door leaf swung over the lying dog's head"}
{"n": 9, "what": "fixes: hard layer weights for the mirrored head, view scale by area/height, tint, door swings on to the inside wall, head-low override -34/-14 deg, look-in = head and neck carried forward into the room", "saw": "look-back readable but crude; look-in reads as reaching in; head still only ~4 px under the back line"}
{"n": 10, "what": "full render 1 + trace + sound + assemble", "saw": "checker ALL OK; onsets within 0.11 s; but feet slid (15% planted, foot speed 0.96 x body) and head only 1-4 px below the back"}
{"n": 11, "what": "leg swing keyed to walk phase on the learned shoulder/hip hinges (stance sweep = 0.55 m stride at film scale), head-low override -48/-18 deg", "saw": "sampled approach frames: fore foot holds within ~7 px while the body travels 22 px; head 10-14 px under the back line. Full re-render."}
{"n": 12, "what": "critic round 1: DOES NOT PASS (learned structure decides the division but not the acting; look back, look in, lying, one material, artefacts)", "saw": "five ranked repair conditions"}
{"n": 13, "what": "turn_fit.py: learned layers and the hand-cut rig fitted to 16 archive turning frames (14-21, 26-33)", "saw": "tie on the split: IoU 0.752 vs 0.752. Rendered with the profile texture the fits look like a squashed profile dog, so they cannot replace the archive views on their own"}
{"n": 14, "what": "re-trained the layers with turning frames added to the few-shot set (PUPPET_VIEWS=1)", "saw": "K fell to 7; held-out profile 0.760 vs hand-cut 0.767, held-out turning frames 0.759 vs 0.767. No gain; reverted (data/fit_report_views_experiment.json)"}
{"n": 15, "what": "hinge_control.py: learned per-layer motion vs the best hand-set hinge pose (similarity + one rotation per learned hinge, Powell-optimised per frame) on the 16 turning frames", "saw": "IoU 0.752 vs 0.697, learned better on 13/16, photometric 0.92 vs 1.02. The learned motion beats hand-setting; the learned split does not beat a hand-cut split"}
{"n": 16, "what": "turns rebuilt: puppet morphs into its learned fit of archive 15 / 41m, dissolves into the real frame at the same silhouette, archive frames blurred and tinted like the puppet; turn back goes through front views after the head swing", "saw": "no shape or texture pop at the joins; one ghosted dissolve frame at 7.92"}
{"n": 17, "what": "head swing 7.458-7.71: head and neck layers rotate up and over the learned neck hinge with hard weights (mirrored at vertical), body stays down; held through the rise", "saw": "head left of the neck hinge (toward the door) from 7.625; reads as a dark head over the shoulders, crude but continuous"}
{"n": 18, "what": "lying redone: fore leg forward on the boards, hind leg folded behind the trunk and cut free of its neighbours, trunk on the boards, tail cut from archive frame 6 and pinned to the learned rump", "saw": "no splay, tail out on the porch (x 530-608 px, door outer face 490); hole closing removed the speckle that a folded layer left in the rump"}
{"n": 19, "what": "look in: head takes the learned anisotropic stretch of archive frame 20 (head turned across the line of sight), darkened to a backlit silhouette against the lit room, lifted off the paws; door leaf now folds back flat", "saw": "reads as the head turning into the room only moderately; no true back-of-head view exists in the source"}
{"n": 20, "what": "head carried low: head and neck translated down and forward, drawn in front of the chest", "saw": "muzzle and eye/ear patch visible, head 23-29 px under the back line for the whole approach"}
{"n": 21, "what": "critic round 2: DOES NOT PASS narrowly (look back mass off the back, dissolves/double exposure in turns, height jump 3.71-3.75, look in a dark blob, head snaps)", "saw": "route: turns rendered with the puppet at its learned turn fits"}
{"n": 22, "what": "both turns rendered with the puppet only, posed at learned fits 15,16,17,30,(30 mirrored),40m,41m; each fit placed by its own silhouette at the puppet's height", "saw": "one material, seams and pins throughout; height steps < 10% inside the turn windows"}
{"n": 23, "what": "look back: only the head proper pivots on its learned hinge with the neck, arc held at shoulder height; rise slowed to 7.56-8.0", "saw": "muzzle tip left of the hinge from 7.625; no head mass above the back; no overlapping dogs"}
{"n": 24, "what": "look in: no darkening, muzzle brought level (head -38 deg) into the lit room", "saw": "muzzle tip against the lit plaster, head centre 31 px past the jamb"}
{"n": 25, "what": "head-low eased over 3 frames; end card side-by-side of learned vs hand-set poses (hinge_control.py now saves the hand-set poses); world rescaled to 190 px/m so the tail stays in frame at x=4", "saw": "checker ALL OK, film 9.25 MB, 912 frames, verified on frames extracted from film.mp4"}
{"n": 26, "what": "critic round 3: DOES NOT PASS (head direction not legible at film size; look in reads as looking at the person; camel at 3.72 / 8.10; head legibility; honesty on what the model does)", "saw": "five conditions"}
{"n": 27, "what": "turns through fits 15,16,17 only, change of side at 17; split render ended with the head piece", "saw": "single back line at 3.68-3.80 and 8.05-8.20 on film frames"}
{"n": 28, "what": "look back: a swung or mirrored template head stayed an unreadable dark hook at film size (three attempts); replaced after mid-swing by a head turned round cut from archive frame 39, mirrored, pinned at the learned hinge", "saw": "film frame 7.71: muzzle, eye and collar visible, nose left of the ears"}
{"n": 29, "what": "lit inner doorway moved beside the jamb, person beyond it; look in carries the level muzzle into it and holds to the end", "saw": "film frames 26.9 and 31: muzzle tip inside the lit rectangle"}
{"n": 30, "what": "head layer contrast lifted with a pale rim; seams 0.30, pins 1.7 px; end card states the acting is rig-driven", "saw": "checker ALL OK, 912 frames, 9.18 MB"}
{"n": 31, "what": "critic round 4: DOES NOT PASS (look in not in depth, frame-39 face breaks identity, head faces away at 8.125-8.208, translucent second head 7.458-7.542, ghosted edges 3.667-3.708 and 8.25, assets.json out of date)", "saw": "extracted every film frame of 3.4-4.0, 7.4-8.4, 26.3-27.5 and looked in sequence: confirmed the box body at 3.667 (fit 17) and the away-facing head in the turn back"}
{"n": 32, "what": "turns as drawing-to-drawing holds at fits 15, 16 and mirrors; turn back starts straight in fit 16 facing the door; look back = own head layer (head proper) narrowed then mirrored at the hinge; frame-39 piece removed; look in foreshortened into a framed lit doorway; refusal stands to 5.5 s", "saw": "all 73 frames of the three windows re-extracted from film.mp4: single body, head visible every frame, head toward the door from 7.625 to the end of the turn, muzzle inside the lit doorway 26.5-27.5; checker ALL OK, 9.22 MB"}
