{"n": 1, "what": "MLS solver in numpy (affine 2D->kD, similarity, rigid; point handles; segments by quadrature) and its self-test", "saw": "handles hit targets to 2e-7, identity and a rigid motion reproduced to 1e-12 in all three families (proof/mls_selftest.json)"}
{"n": 2, "what": "decision: one painted hide (a pelt laid flat: back, flanks, legs, head, tail) lifted into 3D by affine MLS (2D -> 3D) rather than an archive frame warped in its own plane", "saw": "a side-view frame cannot turn its back without a mirror or an edge-on collapse (rigid and similarity MLS cannot reflect; affine passes through a degenerate sliver); a lifted hide turns as a real rotation of its handles"}
{"n": 3, "what": "hide v1 lifted on a test floor, three poses", "saw": "reads as a dog from behind and three-quarter; head a thin flat bill in profile, ears edge-on blades"}
{"n": 4, "what": "head repainted with side flaps (cheeks to jaw), ears widened, two ear-base handles so the ear stands across the head", "saw": "head reads as a long canine head; ears visible from the front and three-quarter, still thin from the side"}
{"n": 5, "what": "set ray-cast; camera yaw 18 -> 28 -> 36 deg, elevation 34 deg; door hinge moved to the near jamb; wall made tall so the room shows only through the doorway", "saw": "doorway ~100 px wide, lit room visible through it; light spill on the boards when open"}
{"n": 6, "what": "first scene frames (0, 96, 456, 660)", "saw": "person ghostly (too few splat points); dog small and dark; the lying dog's front hidden by the near jamb"}
{"n": 7, "what": "person point density x6; dog line moved to y = +0.12 m; wall 0.14 m; door 1.0 m wide; moon light added", "saw": "person solid, lying dog visible in the doorway with the back of its head toward us"}
{"n": 8, "what": "turn-away contact sheet (frames 80-112)", "saw": "3.67 s reads (head swung to the camera, low); 3.75-3.92 s the hide folds into a tangle: curl 2.3 rad/m and paws left planted while the body spun"}
{"n": 9, "what": "curl 2.3 -> 1.3 rad/m; when the body turns faster than 1 rad/s all four paws may step (0.15 s swings, 5 cm threshold)", "saw": "turn reads as a dog turning in every frame of the strip; the back shown by 3.9 s"}
{"n": 10, "what": "retreat strip", "saw": "front legs stretched a metre: the gait always gave the step to the first diagonal; fixed by letting the pair that stepped longest ago go first"}
{"n": 11, "what": "spiky back silhouette: line-segment handles along spine, back edges, belly line and legs; weight exponent compared 1.0 / 1.3 / 1.6 / 2.0 (proof/alpha_strip.jpg)", "saw": "below 2.0 the far flank spikes between handles; 2.0 smooth. ALPHA = 2.0"}
{"n": 12, "what": "approach head not below the back; look-in neck too tall", "saw": "head height = withers + (head - 0.75) * 0.85 (floor 0.20 m), more nose-down pitch; lying head capped lower"}
{"n": 13, "what": "turn back at 7.46: head lead 1.6 -> 2.1 rad so the head comes round toward the door (over the shoulder), body turns 7.85-8.85", "saw": "head round toward the door and camera by 7.7 s; at 8.2 s the neck twists across the body (rubber, honest)"}
{"n": 14, "what": "end card: same handles under affine / similarity / rigid in the film camera", "saw": "similarity thins legs to threads, rigid swells and wrinkles them; affine kept for the film"}
{"n": 15, "what": "render speed under a shared machine (load ~20)", "saw": "10 s per frame; lamp visibility on 600k samples dominated. one sample per hide pixel, two lamp samples for bodies: ~2 s per frame"}
{"n": 16, "what": "dog grey and boxy in the dusk scene (render at 161/768 stopped)", "saw": "blue sky light took the hide's colour; flanks dropped vertically like a box. hue-keeping light for the hide; a dog's section (deep chest, belly tucked to the hips, rounded back)"}
{"n": 17, "what": "process note", "saw": "a scratch-file name collision in the shared scratch directory showed me one contact sheet from another swarm's film once (not used, not studied); my scratch files moved to a private subfolder"}
{"n": 18, "what": "two framings: wide until 21.5 s, then a 1.65x closer shot on the sill (x_world_measured added to the trace)", "saw": "lie-down and look-in readable: back of the head against the lit room"}
{"n": 19, "what": "full render 768 frames; measured onsets", "saw": "watch 2.33 (+0.29), refuse (+0.29), watch 7.46 (+0.71) late: the measures (velocity, head-vs-trunk centroid) lagged; the turn-back body pivot read as a retreat"}
{"n": 20, "what": "head lead quicker (refusal 3.42-3.64, turn back 7.46-7.66); facing measured from where the rendered head points; retreat ends when the back rises out of the crouch, needs head not up; frames 80-104 and 176-218 re-rendered", "saw": "onsets dt 0, -0.04, +0.17, +0.17, 0, +0.21; no spurious states; check ALL OK; film 912 frames 38.0 s 9.7 MB"}
