RC2_HEAD_ASSEMBLY_VS_PLATES.md

assets/RC2_HEAD_ASSEMBLY_VS_PLATES.md

RC2 — THE HEAD ASSEMBLY vs THE PLATES (post-mortem lane detail)

Read-only lane. Nothing under C:/dev/humanity-forgotten or C:/dev/Humanity/Humanity was created,

modified or deleted. Working crops live beside this file under crops/.

---

0. DERIVATION

python harness/route.py has no work-kind covering a 3D-pipeline post-mortem, so no read-set was

resolved. What I read instead, in full:

in full, others sampled), FINAL_A14_V3B_az090.png (untextured control),

A14_BASECOLOR.1001/1002.png (atlases), CHAR_0001_EXEMPLAR_BODY_14_V3_BALD_W1344.png (bake

source), CHAR_0001_FLOOR14_head_clean_1344.png (head plate).

Authored judgment, no canon home: the qualitative visual reads in §3. Every one is paired with a

measurement or a citation; where a read is unsupported it is marked OPINION.

---

1. THE GRADED ARTIFACT

build/3d/finish_a14/renders/textured_tt/A14_TEX_V3_az{000,045,090,135,180,225,270,315}.png

— 868×1400, EEVEE, written 2026-08-07 21:12:55-56. Record:

renders/textured_tt/TURNTABLE_TEX_A14_TEX_V3.json.

Mesh uv/A14_PARTITIONED.obj + garment uv/TROUSERS_A14_MID_UV.obj; figure height 166.804 cm.

This is the newest render artifact anywhere in build/3d/** and is the turntable Josh graded.

Delivered scale: figure spans y=74..1324 (1250 px) in a 1400 px frame. Head height =

1250 × 22.055/166.72 = 165 px. Brow-to-chin is roughly 70 px. An eye is ~12 px wide.

---

2. WHAT THE ASSEMBLED HEAD ACTUALLY IS

2.1 Provenance chain

WRAP_A14_V3B_SKIRT.obj (NRICP-wrapped cage) → GRAFT_A14_V3B_SKIRT_BALD.obj → partition/UV →

A14_PARTITIONED.obj. Head = one material slot M_HEAD_FACE, 23,552 faces, UDIM tile 1002.

2.2 The graft record states the scope itself

GRAFT_A14_V3B_SKIRT_BALD.json:295

"NO texture, NO hair, NO ears -- the cage the head is wrapped on is a bare skull by construction,
and hair and ears are their own stages. NOT a photoreal pass."

That line was written for the STRUCTURE stage. A texture was then bound over the same mesh and the

result was presented as a character turntable. Nothing between those two steps re-stated the scope.

2.3 Ears — OUT OF SCOPE BY RULING, and the ruling is the opposite of what the plates show

cage_source/CAGE_SOURCE_RECORD.json, excluded_shells: the authored head assembly has 11 shells /

110,840 verts. The cage took the head shell only (15,969 v). Excluded: ear_l 720 v, ear_r 720 v,

eye_l/eye_r 704 v each, cornea_l/cornea_r 320 v each, scalp 15,697 v, hair 29,760 v /

1,488 cards, lashbrow 816 v.

Reason recorded verbatim:

"EXCLUDED ON CANON GROUNDS, not on geometry grounds. The elven ear pick is RULED -- Josh
2026-08-06, verbatim 'Agreed on ear pick' ... The ears ride the wrap as a rigid follower keyed to
the skull, or they get their own cage instance -- that is a director call, not a solver default.
NAMED OWED for the pick wave."

The NAMED OWED was never taken. **The one head feature Josh personally ruled on is the one feature

the 3D head does not have.**

Geometric confirmation (my measurement, A14_PARTITIONED.obj, 0.5 cm z-slices, |x|max per slice):

z 146.0  5.33   z 150.0  6.22   z 154.0  7.89   z 158.0  7.77
z 148.0  5.94   z 152.0  6.96   z 155.0  8.11   z 160.0  7.67

Monotone rise to a single maximum at z=155.0 (x=8.105, y=-1.816) then monotone fall. That is a bare

parietal eminence. A protruding ear produces a local maximum at z≈150-153 and a bimodal x

distribution; there is neither.

Nuance — there IS crumpled geometry at the ear site. The untextured control render

(renders/final_V3B/FINAL_A14_V3B_az090.png, material-blind clay, so anything visible is geometry)

shows a small puckered ear-shaped scar flush with the dome. Mechanism: the NRICP wrap conformed an

earless cage onto a target that HAD ears, so the skull surface was dragged locally toward the ear

without ever leaving the dome. bench_cage.py:1546 documents exactly this and then **removes it

from scoring**:

"The cage carries NO ears by ruled canon ... and both targets carry protruding ears, so this
landmark pair is inflated under ANY correct alignment"

→ companion metric landmark_max_frac_excluding_ears. The ear region is measured, declared

unscoreable, and dropped. So the ear-scar is invisible to every gate.

In the textured frame the projection then paints a **photographic ear from the plate onto the

smooth dome** (crops/HEAD_az090.png). What reads as a pointed ear in profile is a flat picture of

an ear on a skull that has none.

2.4 Hair — out of scope by design

Same record: hair 29,760 v / 1,488 cards excluded — "A card field has no surface for a cage to

conform to, and a cage vertex must never snap to a strand." Correct as a solver decision. But the

character's canonical silhouette read is tousled hair (see §3.1), and no stage re-adds it.

2.5 Eyes — out of scope, and this is why the eyes read as hollows

eye_l/eye_r/cornea_l/cornea_r/lashbrow all excluded. The head has no eyeball geometry. The

eyes in the render are painted sockets. anatomy.face_bearing_components shows the only extra

shells are two 136-vert eyelid-margin annuli.

2.6 The graft onto the fitted body

GRAFT_A14_V3B_SKIRT_BALD.json: head cut at z=143.815 (0.85 cm below the chin), body cut at

z=141.915, joined by a 14-ring cubic-Hermite neck bridge (2,786 tris) spanning 1.9 cm. Perimeters

matched to 0.12 cm (30.4061 vs 30.5285). Head tapered ×0.87993.

Geometrically this is clean — nonmanifold_edges: 0, winding_defects: 0. **The seam is not a

geometry failure; it is a texture failure.** M_BODY_R14_NECK_SEAM is its own region on tile 1001

while the head is on tile 1002, baked from different plate views with different solved azimuths

(front 5.0°, side 84.0°). The two atlases do not agree in tone across that boundary, which renders

as the hard dark ring visible at az000/045/090/180.

Residual: neck_min_after_graft.residual_frac = -0.07002 — the joined neck is 7% thinner than the

spec's own neck_base_cm. Reads as the over-long, over-thin neck in the front view.

---

3. THE HONEST VISUAL READ — 3D vs PLATES

A/B images built for this lane:

3.1 The plates

CHAR_0001_FLOOR14_head_clean_1344.png (1344×1344) and the bake's own front plate both show the

same character: an adolescent boy — broad flat cheek planes, wide-set steady eyes with real

irises and catchlights, a firm straight mouth, a defined jaw angle, **large pointed elven ears

protruding well past the skull**, and (in the head plate) tousled blond hair that carries the

silhouette.

Even the bake's own source at 144×170 px reads as a clearly better character than the 3D result at

the same display size. That is the finding in one sentence.

3.2 What diverges, specifically

#DivergenceEvidence
1Ears absent. Plate: large pointed elven ears. 3D: smooth dome + painted ear photo.§2.3; crops/AB_FACE_turntable_vs_plate.png
2Hair absent. Plate silhouette is hair-led. 3D is a bald egg.§2.4
3Identity/sex flips. Plate = adolescent boy. 3D = androgynous-to-feminine: narrow face, dark smoky sockets, small pursed mouth, no jaw angle.crops/AB_FACE_turntable_vs_plate.png (OPINION, corroborated by #4)
4Cranium shape wrong. 3D skull is a tall narrow egg; plate is broader and lower.L03 worst landmarks are ALL face-oval/temple/jaw: 162,127,21,234,93,54 (left) and 454,356,323,361 (right mirror). The divergence is concentrated on the outline, not the interior.
5Face too small and too low on the skull. 3D brow-to-chin ≈45% of head height; plate ≈62%. Enormous forehead.crops/AB_FACE_turntable_vs_plate.png (OPINION — a projection-registration read)
6Eyes are hollows. No eyeball, no cornea, no lashes.§2.5
7UV seams printed into the albedo. Dark wiry crackle over chin/jaw, bright vertical seam down the cranium, stair-stepped island borders across the skull.crops/HEAD_az000.png, crops/HEAD_az090.png, crops/ATLAS_1002_head.png
8Texture mush. Atlas 1002 is blurred low-frequency blobs, concentric ringing on the cranium island, a solid flat orange fill polygon lower-left, black speckle. No pores, no brow strands.crops/ATLAS_1002_head.png; §4
9Hard dark neck ring + a second lighter ring below.§2.6; az000/045/090/180
10Body reads emaciated, not the plate's lean healthy adolescent: over-carved ribs/obliques, no pec mass, stick arms, narrow sloped shoulders.L02 front RED, worst region R07_THORAX, ±5.8-6.0 cm
11Underwear is flat cream; plate is black. Grey mannequin band above it.M_GARMENT_UNDERWEAR_TROUSERS → tile 1021, no atlas existsflat_slots in the turntable record. Doll zone is PROJECTION_REFUSED_BY_DESIGN.
12Blue-grey shards at armpits, flanks, hips, knuckles.§4.3 — measured as plate backdrop
13Hands are mitten claws with fused fingers, dark smears, black notches; ragged stair-stepped rim down the outer forearm.crops/SHARD_right_arm.png; R13_HAND observed_fraction 0.4907

---

4. WHY THE HEAD IS MUSH — THE MEASURED CAUSE

4.1 The texture was projected from full-body plates only

texture/BASECOLOR_BAKE_A14.json, plates[] — exactly three, all kind: body:

viewplatesizefigure_h_pxpx_per_cm
frontCHAR_0001_EXEMPLAR_BODY_14_V3_BALD_W1344.png326×134410896.53
back..._BACK_W1344.png325×134410086.04
side..._SIDE_W1344.png331×134410576.34

A whole figure inside 326 px of width. Head height in the source = 1089/7.5592 = 144 px; head

width ≈ 16.2 cm × 6.53 = 106 px. So the entire head is sourced from roughly **106 × 144 px ≈

15,000 pixels, and is projected onto UDIM 1002 covering 2,871,281 texels. Roughly 190× more

texels than source pixels**. That is the mush, and no shader or lighting change touches it.

4.2 The pipeline had already diagnosed this, in its own comment

build/3d/finish_a14/bake_plates.py:210-217:

"the mouth came back soft -- and the cause is resolution, not fill: at 6.5 plate pixels per
centimetre a full-body plate spends about forty pixels on a mouth. The FACE plate is the same
1344 px spent on a head, roughly six times the sampling, and the BUST plate covers the jaw and
neck at a three-quarter angle the body plates never see."

The roster (harness/asset_factory/thousand_point_eval.py:121-131) carries five views: three body,

plus three_quarter (bust) and face. Both head plates EXIST on disk at the expected names:

The default is head_plates=True (bake_plates.py:184), flag is --no-head-plates.

Timeline (git, ISO):

timeevent
21:12:38BASECOLOR_BAKE_A14.json written — three body plates, no kind/used_for keys
21:12:56textured turntable written — the graded artifact
22:12:45e045b2b2bake_plates.py already contains head_plates (3 hits)
22:39:26bc093158 — "one rasteriser, not two -- and the crop solves stop being the whole run"

The bake record lacks the kind and used_for keys that the head-plate branch emits

(bake_plates.py:261-262), and carries no REFUSED plate entries (the failure path at

bake_plates.py:236-238 would have recorded one). Conclusion: **at bake time the head-plate code

path did not exist yet.** It landed ~1 hour later and the texture was never re-baked.

Josh graded an artifact that was one hour stale relative to its own tooling.

4.3 Invented and contaminated pixels

BASECOLOR_BAKE_A14.json, tiles:

fill. That is the concentric ringing on the cranium island.

Backdrop contamination, my measurement:

skin albedo. 758 of them render visibly on the figure in az000 alone.

bake_plates.py:245-249 describes this exact defect ("sighted on the first correct bake as

blue-grey chips down the outer arms and across the knuckles") and adds the erosion + region-label-

buffer fixes. The graded bake ran with figure_mask_eroded_px: 1 — one pixel — which was not enough.

Colour registration failure, region_palette_check:

regionbakedplateΔ
R11_FOREARM[171,121,86][41,40,43]130.0
R12_WRIST[158,115,88][36,36,38]122.0
R05_PELVIC_GIRDLE[129,109,94][97,76,57]36.7

The plate-side medians for forearm and wrist are near-black — the comparison is sampling off-figure.

worst_max_abs_channel_delta: 130.0 rides in the record and did not stop the turntable.

4.4 The lighting is baked in

BASECOLOR_BAKE_A14.json HONEST_TIER: "The plates are lit, so their lighting is baked into the

albedo -- this is a projected basecolor and not a de-lit one". bake_plates.py:455-456 notes a

standard making de-light MANDATORY for plate-derived basecolor. It was not applied. One map only —

no normal, no roughness, no ORM, no subsurface. Then re-lit by three EEVEE area lamps

(render_textured.py:130-141). Double-shaded by construction.

---

5. WHAT THE GATES DID AND DID NOT SEE

build/3d/eval/thousand_point/EVAL_A14_ASSET_TEXTURE_LEG.json, 16,288 measured points.

The bar it quotes (_bar) is Josh, 2026-08-07: *"identical-identical -- body 1:1 to the exemplar

pick, face 1:1 structural and feel to the exemplar bust, textures and palettes identical by number,

photoreal polish identical; proportion review at EVERY angle."*

Verdict per lens:

lensverdict
L01_proportionGREEN
L02_silhouetteRED
L03_face_structureRED
L04_toneREFUSED — "the mesh carries no texture"
L05_colourREFUSED — "the mesh carries no texture"
L06_seam_continuityAMBER
L07_anatomical_plausibilityGREEN
L08_equip_swap_readinessREADY_STATIC

The harness was right and was overtaken.

Per-point RMS over interocular 0.0396. Worst landmarks are the face outline (§3.2 #4).

z≈126 cm, and the two sides err in opposite directions (right Δ −0.0359, left Δ +0.0350) —

the chest is not merely too narrow, it is asymmetric about the plate's own axis.

texture existed. No lens has ever scored the textured asset. Tone and colour — the two lenses

that would have caught the backdrop contamination, the 130-Δ palette error and the flat cream

underwear — are armed and have never fired.

So two RED lenses and two never-fired lenses stood between the asset and Josh, and the turntable

went out anyway. The gap is not missing instrumentation; it is that **nothing blocks a render on a

RED lens, and nothing requires the eval to be re-run against the artifact actually being shown.**

---

6. ADJUDICATION OF RC2

RC2 as stated: CONFIRMED, with one correction and one amplification.

Stated: *"the head is a bare cage wrap (no ears by scope, no hair by design, mushy at render scale)

grafted onto a fitted body — the 2D exemplar stack is strong; the 3D assembly threw its quality

away."*

Confirmed:

restoration logged as NAMED OWED and never taken (§2.3).

from ~106×144 px of source across 2.87 M texels (§1, §4.1).

UDIM boundary, not a geometry defect (§2.6).

Correction: "the 2D exemplar stack is strong" is only half true and the distinction matters.

The *dedicated head plates* are strong — FACE_14_V3_W1344 at 506×1344, BUST_14..._34_W1344 at

436×1344, FLOOR14_head_clean_1344 at 1344×1344. The *body* plate stack is natively small: the W1344

body plates are upscales of 211×870 originals, and BUST_NATIVE is 153×134. So "the 3D assembly

threw the quality away" is right about the head — a 506×1344 face plate sat on disk unused — and

is wrong about the body, where the source itself is thin. A body-texture fix that only re-runs

the projection will not reach the bar; the body needs a genuinely higher-resolution plate.

Amplification — the sharpest single fact in this lane: the graded turntable was baked

*one hour before* the head-plate code path existed, and was never re-baked (§4.2). The mush Josh

graded is not evidence that the approach cannot work. It is evidence that a stale artifact was

shown. That does not excuse the result — it relocates the defect from "the technique is far off" to

"the loop shipped an artifact its own tooling had already superseded, past two RED lenses and two

lenses that had never fired."

On the framing "why is this still so far off after thousands of iterations": the iterations were

real but they were spent on the *measurable* sub-problems — neck girth to 0.12 cm, zero non-manifold

edges, azimuth-monotone collar rings, a defensible ear-exclusion ruling. Each is correct in

isolation. Not one of them owns the question "does the assembled head read as this character."

L03_face_structure is the closest thing to that lens and it was RED and non-blocking. This is RC1

and RC5 arriving through the head: the chain optimized numbers, and the one number that was about

the LOOK could not stop anything.

---

7. WHAT WOULD ACTUALLY MOVE IT (ordered by measured leverage)

Findings for the director, not edits.

1. Re-bake with the head plates. The path exists and is default-on today. ~3.5× linear sampling

on the face plus a three-quarter view that covers the jaw and neck the body plates never see.

Zero new code. This is the largest single gain available and it is already written.

2. Restore the ears. The NAMED OWED at CAGE_SOURCE_RECORD.json excluded_shells.reasons.ear_l/ear_r

— rigid follower keyed to the skull, or their own cage instance. Director call, per the record.

Until then a Josh-ruled canon feature is missing and no gate reports it.

3. Re-run the eval against the textured asset so L04_tone and L05_colour fire for the first time.

They are armed and refusing, not absent.

4. Make a RED lens block a publish. Two REDs and a worst_max_abs_channel_delta: 130.0 did not

stop the turntable.

5. Bake the garment tile 1021. flat_slots: [M_GARMENT_UNDERWEAR_TROUSERS] — the cream shorts

are a declared hole; the plate's underwear is black.

6. Raise the erosion and keep the region-label buffer. 34,676 backdrop texels at 1 px erosion;

the fix is on disk and unexercised.

7. De-light the projection before it is called albedo, per the standard cited at

bake_plates.py:455-456.

8. Body plates at real resolution. Unlike the head, this one cannot be fixed by re-running —

the native source is 211×870.

9. Hair and eyes are unowned stages. Excluded for good reasons, never scheduled. No character

read is achievable without them.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root