+1 draw / +894 tris with the bird on screen, +0 with it off — measured same page, same frame, by toggling the InstancedMesh count. ?noassets keeps the 182-tri procedural bird (+1 / +182), so this is furniture.js's use-if-ready SECOND path, not a substitution. state.asset reports which bird is bound. THREE THINGS MEASURED BEFORE THIS WAS SAFE, AND ALL THREE WOULD HAVE SHIPPED WRONG: · E's bird faces +Z and this file flies -Z (Matrix4.lookAt's -Z column is the travel direction). Sliced the GLB's 894 tris along Z in ten bins: +Z end mean y 0.31, half-width 0.009 (head + bill); -Z end mean y 0.028 (tail). Without rotateY(PI) the magpie swoops TAIL-FIRST. This is the FIFTH -Z/+Z instance and the first caught BEFORE it shipped — because R39's lineage table said to point a measurement at it. Verified in pictures: perched head-leading, and a swoop frame taken head-on. · Its origin is at the FEET (GLB law minY=0) while PERCH_Y is a body-centre height: dropped 0.20 m so it stands on the lamp arm (4.12) instead of hovering. `folded` is 1 for the GLB — it IS the perch. · THE FETCH IS ARMED BY createMagpie(), NOT BY THE IMPORT. index.html imports this module unconditionally and gates only the CONSTRUCTION, so a module-scope loadGLB (furniture.js's shape) would have put a brand-new GLB request on the ?classic=1 boot — a fetch delta on the one boot that is not allowed one. Asserted on the network log, not on the code: default 1 request (asset 'glb', 894 tris) · ?classic=1 0 · ?magpie=0 0 · ?noassets=1 0 (asset 'primitive', 182). AND ONE MY EDIT INTRODUCED INTO ANOTHER LANE'S TOOL: a module-scope loadGLB also fires GLTFLoader's fetch path under node, so Lane E's pipeline/dump_bird.mjs (which imports this module unmodified) died with "ProgressEvent is not defined". Gated on IN_BROWSER as well as ?noassets; E's tool then ran against my edit and reported 182 triangles / 216 verts — the placement fixes are exactly +0 tris. THE FALLBACK, FIXED AND THEN MEASURED — a half-win, stated as one. E is right that the white bars sat 3 mm ABOVE horizontal wing planes, so from below (the player is always below: perch 4.32 m, EYE 1.62) the black wing occluded its own flash: bar y 0.048 -> 0.042. Same class of fix, my own arithmetic, for the other two marks: the nape was BURIED IN THE HEAD (head-sphere surface at z=-0.10 is y 0.0728, the box topped out at 0.067) so it moved behind the head to z -0.07; nape and rump thickened 0.014->0.030 and 0.02->0.034, because from the flank a 14 mm slab on a 166 mm bird is 1.3 px at 64 px. All +0 tris. Measured in the same crop of the same pose: pale area 180 -> 399 px, dark 3,017 -> 2,755 — but TRUE white 33 -> 28, because a downward-facing surface gets no sun. E's GLB reads 755. The fallback cannot be made pied with primitives at zero cost; the problem is photometric as well as geometric. Stale comments corrected: magpie.js:9 and :123 said 154 triangles; it is 182 (E's ask 1). FILED, NOT FIXED: the arcade's awning posts land +/-0.50 m from the centreline — two rows 1.00 m apart, 34 posts down a 5.00 m lane (my own measurement from the plan, confirming E's). AWNING_DEPTH 2.2 is tuned for a 9 m footpath. One clamp fixes it, but it changes default-boot geometry for a district whose whole treatment is a scheduled item, and the post line should be designed with the roof. Lane E's transmission recall checked, not assumed: longbench, streetlight and magpie as staged in web/assets/models/ carry no KHR_materials_transmission. My lane wires neither of the first two today. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fog-00-head-katoomba_real.png | ||
| fog-00-head.png | ||
| fog-01-before-katoomba_real.png | ||
| fog-01-before.png | ||
| fog-02-after-katoomba_real.png | ||
| fog-02-after.png | ||
| magpie-AFTER-glb-flank.png | ||
| magpie-AFTER-glb-swoop.png | ||
| magpie-AFTER-glb-zoom.png | ||
| magpie-AFTER-primitive-zoom.png | ||
| magpie-BEFORE-primitive-zoom.png | ||
| map-classic.png | ||
| README.md | ||
| sign-katoomba-AFTER.png | ||
| sign-katoomba-BEFORE.png | ||
| sign-synthetic-AFTER.png | ||
| sign-synthetic-BEFORE.png | ||
Lane B — Round 39, THE FOG (item 39.2)
Taken in a fresh context on port-isolated no-store servers (:8591 treatment, :8592 =
git archive HEAD), assets/vendor symlinked so the other lanes' mid-round waves are identical on
both sides. Every number behind these pictures is in docs/LANES/LANE_B_NOTES.md §39.
| file | what it shows |
|---|---|
fog-00-head.png |
HEAD, synthetic — all 493 shops handed over on the first M press, 26,506 shop-colour px |
fog-01-before.png |
R39, fresh boot — 0 shops known, the 240 m frame, a 25 m scale bar |
fog-02-after.png |
R39, after 900 m — 113 shops, 7 segments, A's district labels ("the south end of the main street") |
fog-00-head-katoomba_real.png |
HEAD, katoomba — 993 edges of grey spaghetti; at 1.42×1.89 px the 72 shops rasterise to zero pixels of their own colour |
fog-01-before-katoomba_real.png |
R39, fresh boot — the 240 m frame, a shop lot at 29.4×39.2 px |
fog-02-after-katoomba_real.png |
R39, after 900 m — 34 shops on Katoomba Street, with Edwards Street running off it (Lane A's address layer) |
map-classic.png |
?classic=1 — the pre-R39 map, hash-identical to HEAD's |
sign-*-BEFORE.png |
the default boot's spawn as shipped since R32: synthetic — a footpath facing a plaza with not one shopfront in frame; katoomba — standing in a paddock facing the blank back wall of a building. 3 shops within 25 m, 0 of them in front of you, 0 discovered |
sign-*-AFTER.png |
the same code with the front normal corrected (+sin): on the footpath under the awnings, signage down the strip, 4 shops within 25 m, 4 in front, 4 discovered |
| magpie-AFTER-glb-zoom.png | Lane E's 894-tri GLB in the engine, perched on the lamp arm, asset:'glb' — pied, legged, unmistakable. 755 px of true white in the crop |
| magpie-BEFORE-primitive-zoom.png / magpie-AFTER-primitive-zoom.png | the procedural fallback (?noassets=1) before and after the re-placed white: pale area 213 → 427 px, but true white 33 → 28 — the underside gets no sun, so the fix reads grey. The measured ceiling on a primitives-only fallback, and the reason the GLB is the answer |
| magpie-AFTER-glb-swoop.png | the swoop, head-on — proof the rotateY(π) is right in flight, not just on the perch |
| magpie-AFTER-glb-flank.png | the honest in-situ frame (70° FOV, 14 m): the bird is a speck. E's A/B sheet owns the size question; the -zoom frames are 12° FOV inspection shots |
(All three magpie arms measured +1 draw with the bird on screen and +0 with it off, same page, same
frame: GLB +894 tris, primitive +182, and the placement fix is +0 tris in-engine.)
The sign-* pair is booted code on both sides — two port-isolated no-store servers, :8702
serving the fog commit (old sign) and :8701 the fix. Nothing is monkey-patched.
Katoomba's BEFORE is the R31 playtest's own complaint, verbatim — "faced dirt and building-backs" — which R32 was written to fix and, because of the sign, never did.