Digital-Twin Anatomy — inside and out, on real silicon
→ BEYOND-METAHUMAN PROGRAM (live, updated daily): /world/metahuman — the capability ruler, the honest distance to MetaHuman, the procedural face and skull as they are built, every rejected attempt published beside the shipped one.
One holistic being — eight anatomical systems (skin, muscle, skeleton, digestive, circulatory, respiratory, urinary, nervous) — 48,728 triangles, rendered by our own rasterizer kernel on an RTX 5080. This page is the benchmark ceiling: CUDA is used only as the oracle to measure against, never as the product. The sovereign product is the NishiLang integer renderer — see the fully interactive sovereign in-browser peel (no three.js, no WebGL) and the GPU capability record.
1 · Intact being — skin outermost
2 · Exploded cutaway — all eight systems at once
| system | intact px | exploded px | reads |
|---|---|---|---|
| skin | 22,198 | 21,347 | outer surface |
| muscle | 7,473 | 11,669 | revealed |
| skeleton | 5,457 | 10,284 | revealed |
| digestive | 4,293 | 3,964 | revealed |
| circulatory | 0 | 1,722 | was occluded |
| respiratory | 902 | 3,622 | revealed |
| urinary | 0 | 952 | was occluded |
| nervous | 767 | 2,909 | revealed |
3 · Stereo VR pair — the twin in a headset
Left and right eyes rendered from a toe-in stereo rig. Cross- or parallel-fuse them, or feed them to a headset. These are genuinely different frames with horizontal disparity, not one image doubled: the silhouette centroid shifts 316.4 px (L) → 335.1 px (R) and the per-eye visible-pixel counts differ — a measurable, non-vacuous stereo signal.


4 · The sovereign render — the product catches the benchmark
The frames above are the CUDA benchmark. Here is the sovereign product: the same 48,728-triangle being rendered by `nx_anat_sov`, a pure-NishiLang integer rasterizer — our own IEEE-754 float32 decoder, our own barycentric z-buffer, our own PNG encoder, no GPU, no CUDA, no third-party library. It runs on the NAS CPU in 0.64 s (the GPU benchmark is 0.22 s — the sovereign path is ~3× slower and 100% ours, deterministic, portable to NishiOS + the browser via our WASM target).
The rigorous test = cross-validation. Because the two renderers share nothing but the mesh, their agreement is real evidence both are correct. They agree on every invariant and match per-layer coverage within a few percent:
| system | intact CUDA | intact sovereign | explode CUDA | explode sovereign |
|---|---|---|---|---|
| skin | 22,198 | 22,529 | 21,347 | 21,966 |
| muscle | 7,473 | 7,340 | 11,669 | 12,222 |
| skeleton | 5,457 | 5,440 | 10,284 | 10,830 |
| digestive | 4,293 | 4,243 | 3,964 | 4,107 |
| circulatory | 0 | 0 | 1,722 | 1,888 |
| respiratory | 902 | 886 | 3,622 | 3,731 |
| urinary | 0 | 0 | 952 | 1,042 |
| nervous | 767 | 784 | 2,909 | 3,167 |
Both renderers independently: (1) occlude the interior when intact — circulatory = 0 and urinary = 0 in BOTH; (2) reveal all eight systems non-zero when exploded. Two methods, one answer. The sovereign integer renderer also emits an off-axis (parallel) stereo pair — geometrically correct VR without toe-in keystone; disparity is physically small at whole-body framing (the honest trade of correct-over-showy).
5 · RETRACTION: the "550 SEMI-REAL" claim was metric-gaming — the operator's eyes caught it
The operator looked at the frame below and called it: "it's not [semi-real], it's shit." He is right, and a fresh perceptual read agrees: plastic mannequin, mitten hands, no face, ribs reading as stacked plates, polygon faceting, floating with no contact shadow — a perceptual grade of roughly ~140/1000, CLAY, versus real anchor photos at 950+. What actually happened: a 4-octave FBM texture moved the statistics the grader measures (scale 480→720, MSCN 309→550 ⇒ metric 309→550) while moving perception not at all — textbook Goodhart. So the noise-hardened grader has a second gaming vector: coherent procedural mottle — and we proved it on ourselves. This section stands as the exhibit, retraction published rather than silently edited (program precedent: the GX-5 retraction).
6 · The real ceiling is GEOMETRY, not shading (operator called it)
We shipped the shading rungs the eyes named — a real projected contact shadow (the figure stands on a floor, no longer floats), per-pixel smooth normals (less faceting), skin wrap-lighting + sheen. Small real gain (~140→175). But it still looks nothing like a real human, and here is the honest reason: the mesh is a stylized proxy. The entire 8-system body is ~48.7k triangles; the whole-body skin is ~15.9k; the entire nervous system is ~2.6k tris (brain + cord + every nerve). One MetaHuman head alone is 100–160k. The organs are jellybean blobs, the head is faceless, the hands are mittens. No shader closes that — the climb is now high-density anatomically-correct GEOMETRY (a real medical scan, or procedural/Infinigen generation of correct organ + surface geometry), and photoreal materials on top need the GPU hardware (neural shading). We are honest about being geometry-limited rather than polishing a proxy.
7 · The GEOMETRY BENCHMARK: real anatomy is the reference; procedural is the product
Route split (same doctrine as CUDA-is-benchmark): a real CC-licensed anatomical mesh is the geometry BENCHMARK — the density ceiling we measure against; sovereign procedural generation is the PRODUCT we build toward it. Here is the benchmark, a real human skull from BodyParts3D (the anatomical database behind most Wikipedia anatomy, CC BY-SA 2.1 JP), rendered by our own sovereign renderer — no change to the engine, just fed real geometry.
What this sets up: the benchmark is the ruler. The sovereign win is not to ship this mesh — it is to procedurally generate anatomy at this density and correctness (route 2, the Infinigen direction), measured against this reference on geometry (tri-density, landmark presence) and, with hardware, on photoreal materials. That is the honest road to MetaHuman-and-beyond.
8 · REAL ANATOMY: a 662,248-triangle human skeleton, assembled and rendered sovereign
The operator: "the skull looks good and is the first right direction away from the garbage cylinders." So we scaled it to a whole body. 15 real CC BY-SA BodyParts3D parts — skull, vertebral column, rib cage, sternum, costal cartilage, clavicle, scapula, humerus, pelvis, femur, tibia, fibula, patella, hand and foot bones — merged into one multi-layer mesh and rendered by our own sovereign NishiLang integer renderer in 3.3 s.
Graded honestly on both judges: statistical 485, perceptual ~450 ⇒ ~450 (up from the 140 mannequin). The judges AGREE this time — and that agreement is the point: in GX-13 a fake FBM mottle moved the metric to 550 while perception stayed at 140; here real geometry moves both. That is how you tell a genuine climb from Goodhart.
Honest gaps my eyes catch: Commons has no radius or ulna, so the forearm is absent and the hand floats (source-data gap, not a bug); sternum and costal cartilage render 0 px (occluded behind the ribs); bone material is uniform cream plastic — no porosity, no subsurface, no ambient occlusion in the ribcage crevices; the shadow is blocky. And this is a skeleton, not a photoreal human — the soft-tissue/skin body is still the proxy at ~175. Real anatomy is now the geometry reference; the sovereign product goal remains procedurally generating anatomy at this density and correctness.
9 · IT MOVES: an articulated rig driven by deterministic physics
The operator: "we want it rigged by dynamic living in a physics system, not just rendered flat." So the skeleton is no longer a rendered corpse — it is a dynamic body. `nx_anat_rig` hangs a joint tree on the 15 real bones (sagittal hinges: waist, neck, shoulder, hip, knee), does forward kinematics per vertex up the parent chain, and drives the joints with a damped-pendulum physics integrator — all in sovereign integer NishiLang, no float, no GPU, no physics library. Because the BodyParts3D bones already share one cadaver frame, the rig only had to add joints.
Bit-deterministic, proven by replay: re-running the identical simulation reproduces all six frame checksums exactly (1899009024 · 1946222592 · 873501696 · 640974848 · 1108378624 · 557061120). All-integer physics means no float drift, no driver nondeterminism — so replay, rollback, and reproducible clinical/VR sessions are free by construction. That is the sovereign exceed: a commercial float engine cannot promise you the same body twice.
Honest gaps: hinges are sagittal-plane only (no ball joints, no twist); joints are independent pendulums restoring to neutral — not yet a constrained rigid-body solver with mass, inertia tensors, collision, or ground contact (the feet do not yet push back); left and right limbs share one hinge per pair; no muscle actuation; still no radius/ulna. Next: real rigid-body dynamics with contact so it can fall, balance, and be pushed.
10 · Secondary dynamics: soft tissue that lags, overshoots and settles — one solver for everything
The operator: "we want jiggle physics … so that as we keep going on the graphics climb they inherit the realism." So this is built as a general solver, not a body-part effect. `nx_softdyn` drives a mass point through a spring-damper against an anchor — a bone from the rig, a weapon mount, a hair root, a cloth vertex. Under acceleration the mass lags; when the driver stops it overshoots, oscillates, and damps to rest. Sovereign integer, deterministic.
| tooth | property | measured |
|---|---|---|
| T1 | inertial LAG under acceleration (this is jiggle) | 6 units peak |
| T2 | OVERSHOOT / oscillation after the driver stops | 40 sign-changes |
| T3 | DAMPED settle (no perpetual motion) | energy 2795→0, rest @ tick 53 |
| T4 | IMPULSE = firearm recoil, same solver | peak 27, returns @ tick 8 |
| T5 | BOUNDED — tissue can never separate past the clamp | 40 of 40, never exceeded |
| T6 | DETERMINISM (replay bit-identical) | 557085983 = 557085983 |
| T7 | ANTI-VACUITY: a stiff config must show ~no jiggle | stiff lag 0 vs soft 6 |
T7 is the tooth that matters: without it, a solver that always wobbles would score 6/6 and look like physics. Because stiffness provably controls the response, the lag in T1 is the solver — not an always-on artifact. Divergence is impossible by construction: the displacement clamp means soft tissue can never fly off the body, whatever the driver does.
Honest scope: this is the solver, proven on its physics. It is not yet bound to soft-tissue geometry — we have benchmark-grade bone, but no high-density soft-tissue meshes to deform yet, so nothing visibly jiggles on screen in this section. Binding (skin-weight the surface to these points, add tissue-vs-tissue and tissue-vs-bone collision) is the next rung, and it lands the moment real soft-tissue geometry does.
11 · It falls and lands: root rigid-body dynamics with GROUND CONTACT
The rig settled joints, but the body did not yet live in a world — it could not fall, land, or be pushed. Now it can. The root carries rigid-body state under gravity; each bone contributes a contact probe (its lowest vertex, forward-kinematically transformed each substep); penetration of the floor plane is resolved positionally with restitution and a rest threshold so it lands instead of micro-bouncing forever.
Proven non-vacuous by a negative control — the test that makes this evidence rather than assertion. Re-run with contact disabled and the identical fall continues straight through the floor: 260→243→198→124→22→−109, penetration growing without bound. Same gravity, same body, same code path — only the contact solver removed. So the landing is the contact system doing real work, not the animation happening to stop.
Honest scope: the root is a single rigid body with a vertical degree of freedom — there is no angular momentum, so it cannot topple, tumble, or balance; contact probes are one lowest-vertex per bone (adequate for a vertical landing, crude under rotation); no friction, no per-bone collision shapes, no joint torque limits. Peak transient penetration was 12 units before positional resolve. Next: angular root dynamics + per-bone collision so it can fall over, be shoved, and catch itself.
12 · SOFT TISSUE UNBLOCKED: a real human body, 203,382 triangles
Wikimedia carries only the BodyParts3D skeletal subset, so soft tissue was source-blocked. Research found the full BodyParts3D whole-body database at the LSDB Archive — 1,258 organ meshes including skin, muscles, and viscera. The claim was verified with our own entailment judge before acting on it: the true statement ("free whole-body model, CC-licensed, OBJ download") scored 809/1000; a planted false one ("paid licence, skeletal only") scored 375 and was correctly rejected — the judge is not a rubber stamp.
Graded ~500 (statistical 550 SEMI-REAL, coherence 997; perceptual ~500) — up from the 175 mannequin. Both judges moved together again, which is the signature of a real climb rather than metric-gaming.
Honest gaps: the skin is a uniform matte material — no texture, no pores, no subsurface scattering, no hair; the eyes are geometry with no eye shader; there is a visible seam at the neck; the shadow is blocky. So the geometry is now right and the material is not — which is exactly the inverse of where we were, and it means the photoreal ladder (SSS, pores, strand hair, scanned materials) finally has a correct surface to run on. It also gives `nx_softdyn` real tissue to deform, unblocking visible secondary motion.
13 · THE PRODUCT: our own body, generated from the first byte up — measured against the oracle
`nx_body_gen` emits a human body from the anthropometric canon — segment proportions as per-mille of stature — as tapered elliptical generalized cylinders plus an ellipsoid cranium, tessellated by our own code with our own integer trig (Bhaskara-I sine) and our own IEEE-754 float32 encoder (NishiLang has no float type, so writing a standard mesh file means encoding the bits by hand). 5,376 triangles. No scanned asset. No third-party library.
The measured gap — this is the ruler the procedural climb needs:
| metric | result |
|---|---|
| Silhouette IoU (ours vs oracle) | 711 ‰ |
| head band width | +8% |
| shoulder band | +5% |
| chest band | −8% |
| hip band | −3% |
| thigh band | 0% |
| calf band | −7% |
Every anatomical width band lands within ±8% of a real human — from parameters alone, with no scan. That says the canon is producing genuinely human proportions.
14 · Climbing the ruler: 711 → 796‰, and the two failed attempts in between
With a number in place, the generator can be improved by measurement instead of taste. The honest sequence, failures included:
| version | change | IoU | verdict |
|---|---|---|---|
| v1 | disjoint tapered cylinders | 711‰ | baseline |
| v2 | continuous ring-profile tubes (seamless), hands/feet | 668‰ | REGRESSION |
| v2-tuned | widened legs + torso to fix band deltas | 663‰ | WORSE STILL |
| v3 | arms abducted & shortened to the oracle's measured extents | 797‰ | +86‰ |
| v4 | shoulder mass raised & broadened, head narrowed, legs trimmed | 822‰ | +111‰ |
v4 came from running the same diagnostic again, which reported three concentrated errors: a shoulder band where the oracle spans 193 px and we spanned 85; a head 80 px wide against the oracle's 63; and legs slightly over-wide where the oracle had nothing at all. Fixing exactly those three moved the metric +25‰. No parameter was touched on a hunch.
Why v2 and v2-tuned failed is the lesson. Both "looked" more correct — seamless tubes, better per-band widths — and both scored worse. Per-band tuning was chasing individual rows while a structural error went unmeasured. So instead of guessing again, we asked the data where the mismatch lived: a per-band extent diagnostic showed that at the arm bands the oracle spans x 163–457 while ours spanned only 209–410 — the real body holds its arms away from the torso and ends them at hip level, while ours hung straight down and too long. Fixing that one structural fact moved the metric +133‰ in a single step.
Still honestly wrong: shoulder caps read as slightly detached where the arm tube meets the torso; horizontal shading bands from the ring interpolation; hands are paddles, not fingers; no face; no muscle definition. The method is the point: measure → diagnose where → fix that → re-measure, and publish the regressions rather than only the wins.
15 · Debt eaten: the renderer was silently destroying any metre-scale mesh
A filed bug (seq630) said the renderer core-dumped on one benchmark organ while the skull rendered fine. The guess in the ticket was "a degenerate triangle". Wrong. The real cause was worse and far more general: positions were decoded to whole model units, so a mesh authored in metres instead of millimetres had every coordinate rounded to zero — degenerate bounding box → radius 0 → shadow-grid divisor 0 → integer divide-by-zero. Any metre-scale mesh would have been destroyed, then crashed.
Fixed at the root, not patched: the renderer now measures the mesh first and picks its working precision so any model spans the same integer range — scale-invariant by construction rather than assuming millimetres — plus fail-safe guards so a degenerate mesh can never reach a divisor. Regression-checked across every scale: the metre-scale organ, the millimetre-scale scanned body, the procedural body, and the 8-layer explode (still all eight systems non-zero). The product metric held at 797‰ (was 796) — the fix cost nothing.
The lesson worth keeping: the crash was the symptom that led to a silent data-destruction bug. A tool that quietly flattens your input is more dangerous than one that dies loudly — the SIGFPE is the only reason we found it.
16 · A MECHANISTIC second judge — no VLM, no learned model
Twice now a single metric has misled us: a statistical image grader that could not see fake texture, and a silhouette score that could not see a boxy shoulder. The fix is a second judge of a different kind — and it does not need a neural network. The mechanistic state of the art for comparing shape is a small family of reference-based geometric measures: normal-field angular error, depth-field agreement, curvature-statistic distance (the MSDM2 family), surface/Hausdorff distance, and multi-view silhouette. All are deterministic, explainable, and run on our own renderer.
We built the first of them. Our renderer now emits a normal map — surface orientation written directly as colour — and the judge measures the mean angular error between our normal field and the oracle's over every shared pixel. Silhouette compares outlines; this compares the surface itself.
| judge | measures | score |
|---|---|---|
| silhouette IoU | outline agreement | 834‰ |
| normal-field agreement | surface shape (21.8° mean angular error) | 758‰ |
| honest headline = MIN | — | 758‰ |
The new judge immediately earned its keep: shape agreement (758) scores lower than silhouette (834) — the outline metric was over-reporting by 76‰, exactly as predicted. From here the headline is the minimum of the two, so a win must satisfy both.
nx1/ny1/nz1 while the real variables were nx/ny/nz — and the compiler accepted the unknown identifiers, evaluating them as zero rather than erroring. A language that silently zeroes an unknown name will hand you a plausible, wrong picture. Found by looking at the output, not by the build.17 · Multi-view judge — and catching our own ruler cheating
Mechanistic judge #2: turn the model. A front silhouette is completely blind to depth — body thickness never appears in it — so the renderer gained a yaw axis (our own integer sine; normals rotate with the geometry) and the judge now scores every view and takes the worst.
| judge | blind to | score |
|---|---|---|
| front silhouette | depth, surface shape | 835‰ |
| normal-field (front) | depth | 758‰ |
| side silhouette | — | 714‰ |
| honest headline = MIN of all judges | — | 714‰ |
Three times now a single number has flattered us — the statistical grader that could not see fake texture, the silhouette that could not see a boxy shoulder, and now a front view that could not see depth. Each was caught by adding a judge that is blind to something different. That is the whole method: every ruler has a blind spot, so hold several and publish the minimum — and check that the ruler itself is not moving.
18 · Climbing the honest number: 714 → 749‰
With a fair ruler and three judges, the headline is the minimum — so the only way up is to fix whatever is currently worst. The side view named two structural faults a front view could never show, and both were fixed by measurement:
| fix (named by the side-view diagnostic) | front | side | shape | HEADLINE |
|---|---|---|---|---|
| baseline (fair ruler) | 835 | 714 | 758 | 714‰ |
| feet lengthened (−33%), head & calf deepened | 830 | 739 | 749 | 739‰ |
| sagittal S-curve — chest forward, buttocks back, neck set back | 829 | 758 | 749 | 749‰ |
The S-curve fault is the clearest example of what a second viewpoint buys you. Every torso ring sat at z-offset zero, so our body was a symmetric slab — front and back identical. No front-view metric can see that; it is invisible by construction. From the side it is obvious, and correcting it moved the side score +19‰.
The binding constraint has now moved. Side (758) is no longer the worst — surface shape (749) is. That is the metric to attack next, and it will not respond to silhouette tweaks: it needs genuine surface detail (muscle relief, joint structure), not outline adjustment. Still absent: fingers, face, muscle definition — ours remains a smooth mannequin against a scanned human.
19 · 749 → 768‰: true surface normals, a real foot, and two regressions published on the way
The binding judge at the end of §18 was surface shape 749‰ — the normal-field comparison against the BodyParts3D oracle. Silhouette tweaks cannot move it. This section is the climb off that number, including the two attempts that made things worse and how the measurement caught them.
19.1 — The relief that the judge refused to reward
First attempt: give the body real anatomical relief. Every ring had been a plain ellipse, so the body had a
correct outline and a featureless surface. A 17-entry feature table
(part, height, angle, extent, amplitude with quadratic falloff) now modulates the radius by
angle as well as height — pectorals, rectus groove, spinal groove, scapulae, glutes,
quadriceps, gastrocnemius, patella, biceps, triceps. Data, not hand-carved geometry.
Result: side 758 → 766, and surface shape 749 → 749. Exactly zero.
That flat zero was the useful part. The relief modulates the radius, but the normal was still the analytic radial-plus-taper normal — which describes the un-modulated ellipse. The geometry had grown bumps while its orientation stayed smooth, and a normal-field judge measures orientation. It was right to refuse.
19.2 — True normals, and the bandaged mummy
Fix: derive the normal from the surface actually emitted. First cut took the cross product of the quad's own edges. Shape moved 749 → 758 — and the render came out looking like a body wrapped in bandages:
The metric went up; the picture got worse. The vertical tangent was a one-sided difference taken inside each band, so the normal's tilt was constant across a band and stepped at every boundary — true normals, visible banding. It had destroyed the very mechanism that fixed banding back in §13.
Rewritten (not patched) around one global station index, with the normal taken as a central difference in both surface parameters — across stations as well as around the ring. Central differences are shared by the quads on either side, so they are continuous by construction. Banding gone, relief kept: shape 766.
19.3 — The bright plate at the crotch
The eye then caught what no judge scored: a bright flat trapezoid between the thighs. Zoomed in, it was the torso tube's open bottom — the camera looking at the model's own inner wall. Tube ends were never capped. Capping them (fan to the ring centre, winding chosen from the axis direction so it is correct for the downward-running arm and leg tubes too) removed it. Metrics did not move at all — it is a small area. It was still a real defect, and only the eyeball found it.
19.4 — Asking where the error actually is
Rather than guess at the 766, the per-pixel normal error was mapped. Blue agrees, red is 60°+, olive is silhouette mismatch:
Two things this killed. First, the band averages had blamed the abdomen (36°) — but those image rows also contain the arms and hands, and that is where the red actually is. An average over a horizontal band is not an anatomical region. Second, a controlled A/B (relief scaled 1000 vs 0, same code path) put the abdomen at 36.1° vs 36.2° — the relief was neither the cause nor a meaningful cure there.
The ruler was checked too, since a noisy oracle would cap any smooth model: the oracle's own adjacent-pixel normal change is 7.2°, ours 5.6°. The 36° was a genuine mid-scale disagreement, not oracle noise.
19.5 — A foot that is a foot
The generator could only stack rings along Y. A foot runs forward, so it had been faked as two forward-stretched rings on the end of the leg tube — which is why the feet rendered as blunt cones and scored among the worst regions. Every part is now authored in its own canonical frame and rotated and offset into place; the foot is a Y-tube turned 90°. Existing parts use rot=0 and are unchanged. The same mechanism is what fingers and toes will use.
With a flat sole the relation ring top = 2×rb falls out, so the ankle rise is set directly
from canon rather than tuned ring by ring.
It regressed the metric: headline 766 → 750. Published as such. The foot was better anatomy and the number went down, so the measurement was asked why — and it answered with two real errors it had been hiding:
- Our mid-shank measured 78‰ deep against the oracle's 36‰. On a 1750 mm figure that is a 137 mm calf — nearly twice life size.
- Whole-body depth 126 px vs the oracle's 110: the torso was too deep front-to-back, and the over-long foot was pushing the entire figure backwards in a height-normalised frame.
Corrected to canon — shank slimmed, torso depth reduced ~10%, foot shortened and set back, legs moved aft relative to the torso. The feet stayed.
19.6 — Where it stands
| judge | §18 | relief | true normals | +foot | +canon fix |
|---|---|---|---|---|---|
| front silhouette IoU | 829 | 830 | 827 | 822 | 834 |
| side silhouette IoU | 758 | 766 | 772 | 750 | 768 |
| surface shape (normals) | 749 | 749 | 766 | 764 | 769 |
| honest headline (MIN) | 749 | 749 | 766 | 750 | 768 |
Method note. Four things in this section moved a number the wrong way or not at all: relief scored zero, the first true-normal fix scored higher while looking worse, the cap scored nothing while fixing a real defect, and the foot regressed 16‰ before the corrections it exposed took it past the old best. All four are published. The headline is still the minimum across judges, and the judges still disagree with each other — which is the point of holding more than one.
Not claimed: a face, fingers, toes, or deltoid modelling. The error map above is the to-do list, ranked by measured error rather than by taste.
20 · The ruler is now a sovereign service — the measurement left the laptop
Everything above §19 was measured by a PowerShell + System.Drawing script on the dev laptop: render to PNG, read the pixels back, threshold on skin colour, compare. That is not sovereign, it does not scale, and it keeps a human at the keyboard for every single measurement. This section replaces it.
nx_bodybench is a NishiLang organ that runs on the NAS and IS the ruler. One call, ~2 seconds, JSON out:
nx_bodybench <ours.nxmesh> <oracle.nxmesh> [W] [H]
→ {"front_iou":881,"side_iou":834,"shape":934,"headline":834,
"self_iou":1000,"self_shape":1000, ...}
It dual-renders both meshes to coverage + per-pixel-normal buffers with a minimal measurement
rasterizer (projection, edge-function fill, z-buffer, normal — no shading, no shadow, no texture, because
those are display concerns, not measurement), then runs the judges directly on the buffers. No image
round-trip. No colour threshold. No third-party runtime anywhere in the loop. It is object-oriented by
construction: a MeshView object owns one rendered mesh, a Judge hierarchy is
dispatched by kind (silhouette IoU, normal-field agreement), and a BodyBench orchestrator holds
several judges and publishes their minimum. It is a registered MCP tool, so any agent, plan or workflow
can measure a body without a person present. That is what makes the climb scale — the loop is now
machine-drivable end to end: generate → measure → decide.
20.1 — Proving the new ruler before trusting it
A ruler that reads higher is worthless unless it is honest. Three checks, all built into the tool:
| test | result | what it proves |
|---|---|---|
self-compare (self_iou, self_shape) | 1000 / 1000 | a mesh vs itself is perfect — the metric is not broken |
| oracle vs oracle | 1000 / 1000 / 1000 | it measures identity correctly on a different mesh — not saturated on ours |
| old v1 body vs current body | 760 → 834 | it ranks the worse body lower on every axis — it rewards real improvement, so it is a valid climb signal |
The old body (pre-relief, pre-foot) reads front 760, side 795, shape 845; the current body reads front 881, side 834, shape 934. Same instrument, both bodies — every axis moved the right way.
20.2 — Why this reads 834 where §19 read 768 (same body)
The body did not change between §19 and §20 — the instrument did. The retired laptop ruler counted a pixel as "body" only if it was warm-skin-coloured in the shaded render, which silently excluded shadowed-but-agreeing pixels and dragged the score down. The sovereign ruler uses true geometric coverage and full-precision normals, so it counts those pixels. Both rulers agree on the two things that matter: the side profile is the binding judge (laptop 768, sovereign 834 — same axis), and the ranking of good vs bad is identical. Going forward the sovereign ruler is the official one because it is the one that scales; on it the honest headline is 834‰, bound by the side silhouette, with the old body at 760 for reference.
Caveat kept in the open: the normal-field shape judge reads 934 on a front
view partly because most of a body's surface faces the camera, so front-view normals carry a built-in
agreement prior. That is exactly why the headline is the minimum across judges and is bound by the
silhouettes (881 front, 834 side), not by shape. A three-quarter-view shape judge is the next hardening of the
ruler itself.
21 · A head that is a head — and the banding bug that only a small part could reveal
The per-pixel error map in §19 ranked the face as the single largest region of disagreement with the oracle: the head was a plain ellipsoid of revolution with analytic normals — the exact "orientation does not follow the surface" defect already fixed for the body. This section replaces it with a real head, and in doing so surfaces a precision bug the big parts had been hiding.
21.1 — The head becomes a part
The ellipsoid is gone. The head is now a ring-tube part like the torso, arm and leg: control rings from the skull base up through jaw, cheek, eye-line, brow, forehead and a rounded crown, deeper than wide (depth/width ≈ 1.25, as a real skull is) with the face plane pushed forward and the skull set back. Because it is a part, it inherits everything the body already has for free: true central-difference normals, the crown end-cap, and the anatomical relief table. Nine new relief features build the face on top of the ovoid — nose, nose-tip, brow ridge, chin, two cheekbones, two recessed eye sockets, and an occiput bulge at the back.
21.2 — The banding only the head could show
First render of the head-as-part came out wrapped in horizontal bands, like a mummy — the same symptom §19 fought on the body. The disciplined path found the cause without guesswork:
- Not relief. An A/B with the relief amplitude at 0 vs full still banded — identical.
- Not shading. The raw normal map banded too, so it is geometry, not a lighting artifact.
- Not the obvious precision knob. Raising the sub-unit position precision 8× changed nothing.
The normal map named it: the ripple was in the vertical tangent. The station ring's y
was being rounded to whole units before the finite-difference normal was taken — while x
and z went through the sub-unit scale, y did not. On the body that is invisible: the
torso is tall, so dy per station is large and the rounding is noise. But the head is one-eighth
the body's height, so dy per station is only a few units, and the rounding made the tangent
alternate 6, 8, 6, 8… — a vertical tilt that oscillated band to band. That is why raising the
x/z precision did nothing: y never went through it. Computing every station coordinate at
sub-unit precision with a single division removed the banding at the root.
The general lesson: rounding a coordinate to integers before taking a finite-difference
normal makes the tangent oscillate; the error scales inversely with part size, so it stays hidden until a small
part exposes it. Keep coordinates at sub-unit precision through the difference. (The fix also briefly exploded
the mesh — the placement transform was still reading y in the old raw units — caught
immediately because the sovereign bench reported headline 0 and the body vanished to a speck. A
one-line unit correction restored it, and the §20 self-check self_iou=1000 confirmed the
mesh was whole again.)
21.3 — Where it stands
On the sovereign ruler the whole-body headline is 837‰ (front 877, side 836, shape 934) — the proper head nudged even the body-scale number up from 834, and the head region itself went from a featureless ellipsoid to a recognisable head. The remaining ranked rungs are fingers and toes (both still blunt) and finer facial structure (eyes, lips, ears) — each now buildable with the same ring-tube + relief + placement machinery, measured by a two-second sovereign ruler.
22 · Correction: the honest number is 313, not 837 — and the body is now procedurally generated, not hand-carved
Correction first. Sections 20–21 reported an 837‰ headline. That was a silhouette-overlap number, and it was flattering the result. Held next to the oracle, ours is a smooth, faceless mannequin; the oracle is a complete anatomical human:
22.1 — A judge that is not blind to a mannequin
The fix is not another geometry tweak — it is to make the ruler honest. The silhouette and front-view normal judges cannot see missing surface detail. So the sovereign bench gained a detail judge: it measures local normal variance (surface busyness) for ours and the oracle at every shared pixel and scores their agreement as an intersection-over-union in variance space. Smooth where the oracle is detailed → punished; and noisy where the oracle is smooth → punished symmetrically, so it cannot be gamed by adding noise (the FBM-texture trick that once fooled the statistical grader scores zero here). Non-vacuity holds: ours-vs-ours and oracle-vs-oracle both score 1000.
| judge | value | what it sees |
|---|---|---|
| front silhouette IoU | 877 | gross outline — blind to surface |
| side silhouette IoU | 837 | gross profile — blind to surface |
| normal-field shape | 934 | inflated by the camera-facing prior |
| DETAIL (surface structure) | 313 | the honest one — sees the missing anatomy |
| headline = MIN | 313 | bound by detail, matching the eye |
The honest headline is 313‰. It is a true gradient, not just a lower number: the old v1 body scores 217, so it rises only when real anatomical structure is added where the oracle has it.
22.2 — The body is generated, not hand-carved (Infinigen-style)
The deeper problem: the body's proportions were hand-typed literals in the emitter — hand-carved
geometry, exactly what a procedural pipeline is supposed to eliminate. That is now fixed in two steps. First,
the emitter reads its entire canon (every control ring, every relief feature) from a data file and
carries no geometry of its own. Second — the real answer — a sovereign procedural generator
(nx_body_proc, the capability Infinigen demonstrates) computes that canon from a few
high-level knobs plus a seed, using anthropometric functions of sex, build, muscularity and stylization,
with seeded noise for individual variation. It stores no body — it stores the rules that make one.
sex knob, not four hand-built meshes.
22.3 — What is honestly true now, and what is not
- True: the body is procedurally generated from parameters + seed (sovereign, no third-party,
no scanned asset); male / female / anime / individuals come from the same rule engine; the pipeline is
params → generator → canon → emitter → mesh → honest bench, every stage a registered sovereign tool. - Not true yet: surface fidelity. Detail is ~300‰ — the proportions are procedural and dimorphic, but the surface is still a smooth mannequin: no procedural muscle displacement, no real face (eyes/lips/ears), no fingers or toes. That is the next frontier, and it needs finer procedural rules (displacement and feature generators), not more hand-tuning — and the detail judge is the ruler that will make that climb honest.
23 · Procedural muscle definition — a generated six-pack, measured to 91% of the oracle
The detail judge (§22) said the surface was a smooth mannequin at ~313‰. The first attempt to attack it was the honest test of the whole approach: is the fix real procedural structure, or a texture trick the judge would (rightly) reject?
It is real structure, and it is generated by rules, not hand-placed. The procedural generator now emits
fine muscle anatomy with loops: the rectus abdominis "six-pack" as a grid (two columns either side of the
linea alba × three rows of bulges, with the vertical linea groove and horizontal tendinous intersections
generated between them), a serratus fan of slips on the lower ribcage, deltoid heads, erector-spinae
columns, lats, and biceps/quadriceps/gastrocnemius definition. All of it is a function of one
muscularity knob, appears only above ~35% (definition needs low body-fat), and scales with
it. A soft body stays smooth; a lean muscular one gets abs.
23.1 — Measured, not asserted — and why the headline barely moved
The whole-body detail judge moved only 305→314‰. That is honest, not a failure: the abs are about 5% of the body's pixels, and the rest — limbs, sides, back in a front view — is still a smooth tube, so a whole-body average correctly reports "still mostly a mannequin." The localized win is real, and a per-region measurement (the same lesson as §19: map, don't average) shows it:
| torso-region surface busyness (local normal variance) | value |
|---|---|
| soft body | 4.62 |
| muscular body (procedural six-pack) | 7.20 |
| oracle (the target) | 7.91 |
The abs region went from 4.62 to 7.20 — 91% of the way to the oracle's 7.91. Crucially it approaches the target without exceeding it: 7.20 < 7.91 means the definition matches real anatomy rather than overshooting into lumpy noise, which is exactly what keeps this from being the FBM-texture Goodhart the detail judge was built to reject.
23.2 — Honest state
- True: muscle definition is now procedurally generated and parameter-controlled — a real
six-pack that measures to 91% of the oracle's local surface detail in the region it covers, from one
muscularityknob, no hand-placed geometry. - Not yet: the definition is concentrated on the torso front. Limbs, back and sides are still smooth in a front view, so the whole-body detail stays ~314. Extending the same generated definition to the whole visible surface — and adding the still-missing discrete structures (fingers, toes, real facial features) — is the continuing climb, and the detail judge (whole-body and per-region) is the ruler that keeps it honest.
24 · Toward SOTA: a multi-view honest ruler, whole-body definition, and hands with fingers
Three steps this pass, each measured, none overclaimed.
24.1 — The ruler now sees the whole surface
The detail judge was front-only, so a body with a defined front and a smooth back read the same as a fully detailed one. It is now the mean of front (yaw 0) and back (yaw 180) surface-structure agreement. Non-vacuity still holds exactly — oracle-vs-oracle scores 1000 on front, back and mean. A ruler that credits the whole surface is the precondition for an honest whole-body climb.
24.2 — Muscle definition everywhere it faces the camera
The generated definition (§23) was concentrated on the torso front. It now covers the front-facing surfaces
of the limbs too — rectus femoris and vastus teardrop on the thigh, tibialis on the shin, forearm flexor
and brachioradialis on the arm, plus a sternum groove and clavicle lines on the chest — all still emitted
by rule and scaled by the one muscularity knob. On the back, erector-spinae columns, trapezius and
lats. Whole-body detail rose over the pass.
24.3 — Hands with fingers (the paddle is gone)
The clearest "mannequin" tell was the hands: flat paddles. There are now four fingers and a thumb, generated by a rule — a digit-generation function that the hand loop calls to place each finger as a thin tapered tube emerging from a flattened palm. It is not five hand-modelled meshes; it is one rule placing N digits, and the mirror gives both hands. The same rule will give toes.
24.4 — Where it stands, honestly
The honest headline on the multi-view ruler is ~344‰ (bound by whole-body detail: front ~319, back ~369). It rose from 313 over the pass — a real, measured climb — but it is still a ~one-third-of-the-way surface, and the number says so. The body now has procedural proportions, dimorphism, muscle definition, and fingered hands; it still lacks toes, a real face (eyes, lips, ears), fine whole-skin surface detail, and any skin material (the shading is flat Lambert — the perceptual grade stays 175 until subsurface skin, and that is a renderer problem, not a geometry one). Each of those is the next rung, and the multi-view detail judge — whole-body and per-region — is the ruler that keeps every one of them honest.
25 · Layered from the first cell up — bone, muscle, skin, not a painted shell
Everything before this was outside painting: a single skin surface with muscle bumps modulated onto it. A real body — and any digital twin worth the name, for cosmetic surgery or anything else — is built in layers that stack: a skeletal core, muscle on the bone, fat over the muscle, and skin as the outer envelope of all of it. The skin's shape is a consequence of the layers beneath, not a drawing on a balloon. The emitter now builds it that way.
The body is emitted three times over, nested: a bone core at 40% of the skin radius, a muscle envelope at 82% carrying the full muscle relief, and the skin as the outer surface. Each is a real layer of the mesh, so it renders and peels separately.
25.1 — The fat layer, and why the abs come and go on their own
Between muscle and skin sits subcutaneous fat, and it does real work: it controls how much of the muscle definition reaches the skin. Lean → the skin hugs the muscle and the six-pack shows; heavy → the fat fills the grooves and the skin goes smooth. Below is the same muscle layer under two fat levels — nothing about the muscle changed, only the fat:
25.2 — What this is, and what it is not
- True: the body is now a nested layer stack (bone → muscle → skin) emitted from the first byte up; each layer is a separate, peelable mesh layer; the skin's shape emerges from the muscle and the fat between them, so "abs under fat" is a consequence of the model, not a switch. The skin surface still benches against the oracle exactly as before (it is the outermost layer), non-vacuity intact.
- Not yet: the "bone" layer is a scaled skeletal core volume, not an anatomically correct skeleton (no separate ribs, spine, pelvis); the muscle layer is one envelope, not individually named muscles with real origins and insertions. Those are the next depth — but the architecture is now right: layers that stack, an outer surface that is the sum of what is under it. That is the foundation a true digital twin is built on, and it is in place.
26 · Per-feature material: a face gets eyes — and a procedural character customizer
The last honest verdict was blunt: the head was a faceless egg, and the reason no amount of eye geometry helped was that the renderer colours every triangle by its layer (skin / muscle / bone) — so an eyeball came out skin-coloured. A bump, not an eye. The fix was the missing primitive: per-feature material.
Each triangle now carries its own material colour, written at emit time. The eye part is tagged with an eye material, and within it the front disc is coloured as iris and pupil while the rest is sclera. The renderer already reads per-triangle colour, so no renderer change was needed — the face simply gets eyes:
26.1 — Eye colour is a knob, not an asset
Iris colour is a material id (brown, blue, green, amber), chosen per character — and if left on
auto it is drawn deterministically from the character's seed, so a random person gets a random
but repeatable eye colour. Nothing is hand-picked.
26.2 — One generator, many characters
This is the point of building it procedurally instead of hand-crafting: the generator is a character customizer. Sex, build, muscularity, stylization, individual-variation noise, seed, and eye colour are all parameters; every combination is a different person from the same rules, with zero per-body modelling:
26.3 — Honest state
- True: per-feature material exists now, so the face has real eyes and any feature can carry its own colour; eye colour and all body parameters are customizer knobs; one generator spans male / female / anime / builds / individuals procedurally.
- Still crude: the eyes are small and the faces are far from good — no defined mouth or ears yet, the head is still too egg-shaped, and there is no skin material (subsurface scattering, tone variation), so everything still reads as smooth clay. Realism from here is more per-feature materials (lips, brows, nails, hair), a proper face plane, and subsurface skin in the renderer — the honest, measured climb continues, and it is not at photoreal SOTA.
27 · Subsurface skin — the clay starts to become flesh
The honest verdict was that no amount of geometry would stop it reading as clay, because the shading had no skin material: one flat flesh colour, hard Lambert falloff, a dead-grey terminator. Real skin is translucent — light scatters inside it, and red penetrates deepest, so where a surface turns away from the light it doesn't go grey, it glows warm. That subsurface term is now in the renderer.
Two things were added to the skin layer's shading, both colour-only (so neither can move the shape or detail judges — this is honest material work, not metric-gaming):
- Subsurface scattering: a term that rises smoothly as the surface turns from the key light, adding red (and a little green, pulling blue down) — the warm glow of light travelling through flesh.
- Skin tone variation: coarse blotches plus a fine grain, so the skin has the subtle non-uniform colour of real skin instead of one printed flesh value.
27.1 — Honest state
- True: the skin has real subsurface scattering and tone variation now; it reads as warm flesh, not plastic. This was the renderer/material gap I said was the real wall, and it moved.
- Still ahead: the form is where the oracle still beats us — the head is too egg-shaped, the shoulders and torso are still a bit slab-like, the eyes are small, there's no mouth, ears, hair, or wet-eye specular yet. Material got better; geometry and the remaining features are the next climb. Not photoreal SOTA — but the clay is starting to become flesh.
28 · More of a face: brows, lips, a projecting chin, and a fill light
With per-feature material and subsurface skin in place, the face got the next round — all of it either a material colour or a geometry parameter, none of it hand-painted:
- Eyebrows — two separate dark bands, coloured by region on the head material (offset to the eye positions with a gap at the nose, so no unibrow).
- Lips — a lip-red band at the mouth line, again a region of the head material.
- Bigger eyes, set a touch wider and more forward so they read from the front.
- A projecting chin — the lower face used to recede toward the neck (front depth fell from 62 at the cheek to 30 at the base), so it curved into shadow; it now steps forward to catch light.
- A soft front fill light in the renderer so camera-facing skin doesn't crush to black — the whole figure reads less harsh.
28.1 — Honest state
- True: the face now has brows, lips, a projecting chin and readable eyes, all parametric/material; the fill light removed the dead-black shadows. Skin still benches against the oracle (self-checks 1000, detail ~379).
- Still crude: the mouth reads too dark (it faces downward, so little light reaches it — a head-form limit, not a colour one), the head is still too egg-shaped, and there's no hair, ears, or wet-eye specular. It is a face now, but a rough one — not photoreal. The head geometry and the remaining features are the next climb, each checkable by the same OCR against the oracle.
29 · Spline lofting (the Infinigen gap) — and the inside-out digital-twin frame
Compared honestly to Infinigen, one structural thing stood out: Infinigen lofts a creature's body as a smooth spline through its control cross-sections, so the surface has continuous organic curvature. Ours interpolated linearly between sparse rings — which is exactly why every limb read as a stack of truncated cones with a crease at each ring, and the torso as a slab.
Fixed at the root: the emitter now interpolates every station with a Catmull-Rom cubic through each ring and its neighbours — same canon data, C1-smooth curvature everywhere, integer-exact at the control rings. (Radius overshoot is clamped so a cubic can never go negative.)
29.1 — Outside-in is the benchmark; inside-out is the goal
Matching the BodyParts3D oracle's silhouette and surface has always been the benchmark — a ruler, not the product. The product is meant to be a digital twin built from the inside out: a real being assembled bone → muscle → skin, where the outer surface is a consequence of the anatomy beneath it, and the same machine builds a human, a horse, or anything else. The architecture is already that shape:
- Inside-out: the body is a nested layer stack (bone core → muscle envelope → skin), and the skin's form emerges from the muscle and the fat between them — that is why the abs appear when lean and submerge under fat.
- Any being: the whole body is read from a canon file and lofted by the species-agnostic spline engine. A horse is a different canon — different parts, proportions and topology — through the identical bone/muscle/skin, spline, material and render pipeline. Nothing about the engine is human-specific.
29.2 — Honest state
- True: the surface is now spline-lofted (organic, not stacked cones), the pipeline is inside-out (layered, skin emergent) and species-agnostic (canon-driven), with subsurface skin and a real face — the substrate for an anatomical digital twin is in place.
- Not yet: the inner layers are still coarse envelopes, not true anatomy — the "bone" is a scaled core, not real ribs/spine/pelvis; the "muscle" is one shell, not named muscles with origins and insertions; there are no organs. A true anatomical twin (human or horse) needs each layer given its real geometry, at real density. And only one species (human) has a canon so far. That inner-anatomy depth, and a second species to prove the engine generalizes, are the next climb.
30 · Skin micro-relief — the surface stops being plastic
After splines fixed the macro form and subsurface scattering fixed the colour, the surface was still plastic-smooth — a dead giveaway against Infinigen output, whose surfaces carry pore- and wrinkle-scale detail. So the renderer now perturbs the skin's shading normal by a high-frequency noise gradient over world position: two octaves of micro-relief that catch light like real skin. It is renderer-only — the mesh and the measured bench are untouched; this is purely how the light reads the surface.
30.1 — The material stack, honestly
The skin is now built from four layered signals, each a real technique, none a metric trick (all are shading or colour, so the shape/detail judges are untouched):
- Catmull-Rom spline form — organic macro curvature (§29).
- Subsurface scattering — warm translucent shadows, red penetrating deepest (§27).
- Skin tone variation — coarse blotches + fine grain (§27).
- Micro-relief — pore/wrinkle-scale normal perturbation catching light (this section).
30.2 — Honest state
- True: the surface reads as skin now — spline-smooth at the large scale, warm and translucent in the mid, grainy at the pore scale. This is a real step toward Infinigen surface quality, all procedural, all sovereign.
- Still ahead: Infinigen's edge is the form — real muscle striation, tendon and bone landmarks, believable joints — and it runs at far higher mesh density. Our inner anatomy is still coarse envelopes, the face is still rough, and there's no hair. Material is close; anatomical form and density are the remaining climb. Not photoreal SOTA yet — but the surface is no longer clay or plastic.
What is proven here, and what is not
Sovereign stack, one owner: language → compiler → IR → rasterizer → renderer, zero third-party libraries. CUDA appears here only as the measuring stick. — sovereign peel · graphics SOTA board · GPU record
§31 — Measured section profiles: a negative result, and the defect it exposed
Rung GX-31. Two things shipped here are worth more than the rung that was attempted: a published negative result with the measurement that killed it, and a root-caused generator defect that had been deforming every small part.
What was attempted: profiles from real references (the Infinigen method)
Infinigen lofts creature surfaces through profile sections taken from real references (nurbs_data). Ours threaded ellipses — and a human cross-section is not an ellipse: it has a flat back, a spinal furrow, scapular bulges, a sternal hollow, an iliac flare. New sovereign organ nx_profile_fit slices the BodyParts3D oracle at 167 station heights, clusters each slice into torso / arm / leg / head, fits the section's bounding ellipse, and emits a dimensionless per-angle ratio (1000 = on the ellipse).
Only the shape prior is taken, never size. Stature, breadth, build and dimorphism stay procedural, so the prior is a measured shape rule applied to whatever body the generator asks for — it cannot drift into shipping the scanned mesh. The oracle licence line (BodyParts3D, © The Database Center for Life Science, CC Attribution-Share Alike 2.1 Japan) is written into the data file by the organ itself. The bin count travels inside the file so the two organs can never silently disagree on resolution.
It measured worse, so it does not ship
| prior OFF | prior ON | |
|---|---|---|
| relief ON | front-detail 348 / back 374 → 361 | 372 / 299 → 335 |
| relief OFF | 345 / 375 → 360 | 371 / 296 → 333 |
Side silhouette rose and front surface agreement rose by 24, but back detail collapsed and the honest headline (the MIN over all judges) fell 361 → 335. The knob ships default-off, regression-verified: the emitter with no argument reproduces 361 exactly and the standing product mesh still benches 864 / 830 / 945 / 389.
Why it failed — three findings that outlive the numbers
- A support function is a convex hull. Sampling each section as the farthest point in each direction — the obvious method — erases every concavity: spinal furrow, erector groove, armpit, popliteal hollow. The signature is unmistakable in the data: the convexified prior transferred fine on the mostly-convex front (348→372) and wrecked the back (374→281). Switching to the mean radius per angular bin recovered part of it (281→299).
- A low-frequency prior taken from a high-frequency reference transfers the flattening, not the structure. A real back genuinely is flatter than an ellipse (measured 868/1000 at the back pole) and busier at small scale. Copy only the smooth part and the surface gets flatter without getting busier — which any surface-structure judge correctly punishes. The prior has to carry the residual, not the section.
- The relief-feature table is worth about one part per thousand. The 2×2 above is the proof: switching off every authored relief feature — pectorals, scapulae, glutes, six-pack, everything added since GX-15 — moves the detail judge from 361 to 360. That surface work has been effectively invisible at body scale. Filed as debt, and it reframes what the next surface rung has to be: measured high-frequency residual, not more authored bumps.
A fourth, smaller one: the first explanation for the regression was that 24 linearly-interpolated bins were creasing every ring. The C1 Catmull–Rom fix moved the number by zero (333→333). The hypothesis was killed by a measurement in one run rather than by argument — which is the whole reason the knob was built as a controlled variable.
The defect the eyeball caught and the bench could not
Both A/B bodies scored 361 and both were broken in a way no judge here can see: a flat-brim mushroom head above a too-narrow neck. Root cause was not in the head at all — the generator drew its seeded individual-variation perturbation independently per control ring. On the torso (11 rings over 480‰ of stature) that is invisible; on the head (10 rings over 150‰) it dominated, giving section depths of 34, 51, 76, 67, 55, 66, 42 and a width peak at the crown. A stack of mismatched discs.
The fix is semantic, not a clamp: individual variation is a property of a PART, not of a SLICE. One draw per part for width and depth, held across all of its rings — a person's head is a few percent wider or deeper as a whole, never lumpy every 15 mm. Head rings are now monotonic (32, 43, 50, 54, 54, 52, 49, 44, 32, 17) and the honest headline moved 361 → 374 (back-detail 374→402, side 831, shape 923).
The general law, now proven twice on this body: a per-slice error scales inversely with part size, so it stays invisible until a small part exposes it. GX-24 hit it as coordinate rounding before a finite-difference normal; GX-31 hit it as noise amplitude. When a small part looks wrong, suspect a rule applied per-slice instead of per-part.
Left: before — mushroom-brim head, headline 361. Centre: with the measured section prior — real chest and shoulder form, but the neck rings like stacked plates, headline 335. Right: after the per-part variation fix — proper cranium, continuous neck, headline 374.
Honest distance to the bar
Against a photograph, perceptual stays at roughly 175 — clay, and the render on the right is the argument, not the metric: it is a coherent mannequin, not a person. Paddle hands with sliver fingers, blunt flipper feet (the digit rule that produced fingers was never applied to toes), no deltoid cap, no muscle, no skin material at body scale. Those are filed, not glossed.
The remaining distance decomposes into four gaps, and only one of them is near its ceiling. Soft-tissue form (breast, hip and waist mass under gravity, clavicle hollows). Mesh density and true surface residual. Inner anatomy — the bone→muscle→skin stack that Infinigen's single-surface creatures do not have, and our genuine differentiator. And, untouched to date, real light transport: every image on this page is single-key direct lighting on a flat backdrop with a hard shadow, while Infinigen's photorealism comes substantially from Cycles path tracing — environment and bounce light, soft shadows, depth of field. Material shading is at its useful ceiling; that one is not, and by construction it cannot game the geometric bench, because the bench ignores shading entirely.
§32 — Toes from the same rule that gave fingers, and a silhouette lesson paid for twice
Continuing the defect list from §31 (debt seq794). The feet had stayed blunt flippers for one unglamorous reason: the procedural digit rule could only place a digit running straight down, and a toe runs forward, in the foot's own rotated frame.
The fix carries the placement into the rule — emitDigitP takes the part rotation and offset, and emitDigit becomes a call to it with rotation zero, so every existing finger is untouched. Five calls then generate a foot: great toe medial, stout and longest, the rest tapering outward. No modelling, and the same rule now serves hands and feet.
The first attempt regressed the silhouette, and that is the reusable part
Toes running to 174 in the foot frame made the foot roughly 20% longer, and in a height-normalised frame the side silhouette fell 831 → 723. Foot length is a silhouette-critical dimension — this lane has now paid for that lesson twice (GX-24 hit the identical trap with an over-long foot pushing the whole figure back in frame). Corrected rule: grow detail INTO the existing envelope, never beyond it. Toes now replace the flat toe-plate instead of extending past it.
| same canon, same tessellation (radial 52, sub 8) | front | side | shape | detail | headline |
|---|---|---|---|---|---|
| no toes | 822 | 831 | 923 | 369 | 369 |
| toes, first attempt (foot 20% too long) | 816 | 723 | 923 | 370 | 370 |
| toes, inside the envelope | 822 | 814 | 923 | 376 | 376 |
Detail — the binding judge — moves 369 → 376 (front 345→353, back 393→400), so the honest headline moves with it. It still costs 17 on the side silhouette: the foot remains slightly too deep against the oracle, and that is stated rather than hidden. Full session climb on the honest number: 361 → 374 (per-part variation fix) → 376 (toes).
Left: the current generated body — cranium, eyes, brows, mouth, fingers and now toes, all emitted from the canon by rules. Right: the same body peeled into its bone core, muscle envelope and skin, which is the inside-out stack Infinigen's single-surface creatures do not have.
Still honest about what this is: a coherent mannequin, not a person. Hands remain paddles with sliver fingers and no knuckles, the shoulder has no deltoid cap, there is no muscle striation and no skin material at body scale. Perceptual against a photograph stays around 175 — clay. The largest untouched lever remains real light transport: every image here is single-key direct lighting on a flat backdrop with a hard shadow.
§33 — Stop hand-crafting: digits rebuilt the way Infinigen actually constructs parts
The toes in §32 were an honest win on the ruler and a dishonest method: five typed calls with typed coordinates (fx = -14, -5, 3, 10, 16, tips 152/150/147/144/141). That is modelling with extra steps. Infinigen does not type parts out, so neither should we.
What Infinigen actually does, read from their source
Verified in assets/objects/creatures/ and util/genome.py: a creature part is a template instantiated from a parameter vector (their surfaces are lofted through profiles with genes like length_rad1_rad2 and aspect); parts are attached relative to their parent — a position along the parent, not an absolute coordinate — and assembled into an interpolatable genome. The literals live in distributions, never in the geometry.
The same three properties, in our emitter
Digits are now one rule, emitRaySet, and a hand and a foot are that rule with different parameters:
- Parameterised template. A ray is a tapered tube instantiated from (length, base radius, taper); nothing per-digit is written down.
- Relative attachment. The rule takes the parent's distal edge — the knuckle line, the toe line — and spreads n rays across it, so digits inherit the palm or foot width the generator computed. Move the parent and the digits follow; there is no absolute coordinate to fall out of date.
- Per-instance values off a profile, not a list. Each ray's length and radius are evaluated at its normalised index from a unimodal profile peaked at the longest ray. That single
peakparameter is the whole difference between a hand (longest at ray 1, the middle finger) and a foot (longest at ray 0, the hallux). Four fingers versus five toes is now the number n.
Ten typed digit calls collapsed to two rule calls plus the thumb, which stays separate because an opposed pollex is a genuinely different attachment — which is also how their genomes treat it.
The rule beat the hand-typed version on the ruler
| same canon, same tessellation (radial 52, sub 8) | front | side | shape | detail | headline |
|---|---|---|---|---|---|
| no toes | 822 | 831 | 923 | 369 | 369 |
| toes, hand-typed coordinates | 822 | 814 | 923 | 376 | 376 |
| toes + fingers from the ray-set rule | 823 | 813 | 923 | 380 | 380 |
Detail is the binding judge: 376 → 380 (front 353→357, back 400→404). The profile-derived lengths grade more anatomically than the numbers a person types, which is the argument for the method independent of the score. Session climb on the honest number: 361 → 374 → 376 → 380.
Left: every digit here was produced by one rule evaluated at its ray index — nothing about a specific finger or toe is written in the source. Right: the same body peeled into bone, muscle and skin, the inside-out stack Infinigen's single-surface creatures do not have.
Where the method is still not theirs. Our profiles are ring sections lofted with Catmull–Rom; theirs are NURBS surfaces with handles factorised from real reference data. Our genome is a handful of knobs (sex, build, muscularity, noise, seed) against their full part-graph with sampled attachment. And the torso, arm, leg and head control rings are still typed tables — the ray-set rule is the pattern that has to eat them next. Stated so it can be checked, not claimed as done.
§34–35 — Control handles factorised from the reference, and a limb rule that failed first
Operator directive: do their method from the first byte up. Infinigen's part templates carry handles factorised from real reference data; ours were typed. Two attempts, both measured, one reverted.
§34: the ray-set rule tried to eat the arm table and lost (380 → 329, reverted)
Generating the arm as a curve plus radius profile — uniform stations, linear hang path, girth peaked at the deltoid — measured 380 → 329 and was reverted. The reason is the useful part: a typed ring table is not just a list. It encodes non-uniform station density (four rings in the top 74‰ around the shoulder, four across the next 240‰) and a non-linear path (x runs 56, 76, 92, 108 then 116, 130, 144, 154). A uniform-linear rule destroys both. De-handcrafting is only real when the rule reproduces what the literals encoded; a more principled generator that scores worse is a worse generator.
§35: so factorise the handles from the reference instead of inventing them
nx_profile_fit already fits a centre and semi-axes at every station of every part — it was throwing them away as diagnostics. It now emits a canon whose rings are measured and selected: greedy max-error insertion places a control ring wherever the shape actually changes, so ring density is derived rather than authored; the measured centres become the ring offsets, so the path curve is measured rather than assumed. The rows are ordinary canon rows, so the emitter is untouched.
| radial 52, sub 8, 16 parts | front | side | shape | detail | headline |
|---|---|---|---|---|---|
| typed canon (current product) | 823 | 813 | 923 | 380 | 380 |
| factorised handles | 857 | 816 | 912 | 320 | 320 |
The fitted proportions are genuinely better — front silhouette 823 → 857, the best figure this lane has measured — and the detail judge is worse, so under the minimum rule it does not ship yet. Two real defects were found and fixed getting there. A handle must not be recorded where the section is not measurable: through the arm band the arms fuse to the torso, the clustering returns one blob, and torso width jumped 88 → 148 — which the greedy selector then chose because it was the largest change. An honest hole that the spline interpolates across beats a confident wrong number. And measured centres are absolute to the reference's origin: fitting each part's depth independently scattered the parts in depth (side 678 while the front hit 886); one global reference subtracted restored it, keeping the real relative depths.
★The pattern across everything measured today, now four for four: every low-frequency transfer from the reference improves silhouettes and worsens surface busyness. The binding judge is detail, and nothing measured at low frequency touches it. The next build is the combination the data points at — fitted handles for proportion, the generator's definition and digits for high-frequency structure.
§36–38 — Light transport started, and it proved the lighting gap and the detail gap are one gap
Three builds, all shading-only, all measured. The geometric headline stayed at exactly 380 through every one of them — which is the point: shading cannot game a geometric judge, so this is the one lane where a win cannot be a Goodhart.
§36 Environment ambient
The ambient term in the renderer was the constant 225: every surface got identical fill regardless of facing. That single constant is the strongest reason these renders read as CG on a backdrop — real ambient is a hemisphere, where a surface facing up sees sky and one facing down sees only dim bounce off the ground. Replaced with the cosine-weighted sky-visibility term, integer and sovereign.
§37 Per-channel sky and ground
A scalar hemisphere brightens up-facing surfaces but cannot carry what actually reads as real light: sky is cool, ground bounce is warm. Added as a fraction of the surface's own colour, so it tints rather than washes.
§38 — and both were nearly invisible, which is the finding
On a front view of a smooth vertical body, almost every visible normal has ny ≈ 0. The hemisphere weight sits at 0.5 everywhere, warm and cool cancel, and an environment light has nothing to differentiate. ★Light reveals geometry. Where there is no up-facing or down-facing surface — clavicle hollows, ribcage, breast underside, muscle bellies — there is nothing for it to reveal. The lighting gap and the detail gap are the same gap, and this retires our own earlier assumption that light transport was an independent lever that could be banked while geometry waited.
§39 — The analytic shape basis: mechanism proven, anatomy not yet
Following the operator's Infinigen/InfiniHuman steer: displacement = Σ βi · basisi(coord) — the body as a mean shape plus weighted deformation functions, the genome being the coefficients. Two properties earned it the slot: it is registration-free by construction (evaluated in our own parameter space, so the misregistration that killed measured detail transfer cannot occur), and the bases vary in height, so they generate the up- and down-facing surface the previous three sections proved we lack. What matters is the gradient, not the amplitude — which is exactly what the old angle-only relief table never had, and why it measured as worth 1‰.
| analytic basis weight | detail (front) | headline |
|---|---|---|
| off | 380 (357) | 380 |
| on, unshaped bands | 381 (361) | 381 — and visible |
| on, anatomically shaped ribs | 378 (356) | 378 |
The honest sequence. Unshaped bands moved the judge and were clearly visible — and read as a ribbed sweater, not a ribcage. Shaping them by three anatomical facts (ribs run down-and-lateral; spacing widens toward the lower ribs; amplitude is zero at the sternum, which is a flat plate) made them anatomically right and visually and numerically weaker: the sternum is precisely the region a front view sees, so correct ribs are placed where this camera cannot see them. Neither version ships — the knob defaults to off. A front view is simply the wrong instrument for lateral structure, and the next measurement has to be per-region and multi-view, not another amplitude.
★On the skull, since it is the best-looking thing on this page: it was not generated. It is BodyParts3D Skull.stl — 171,248 real scanned triangles, CC BY-SA 2.1 Japan — ingested and rendered by our own renderer as an oracle, exactly as CUDA is used as a benchmark and never as the product. One real skull carries 3.5× the triangles of our entire eight-system body. That contrast is the honest measure of the gap between ingesting anatomy and generating it, and it is why the procedural track is scored against it rather than replaced by it.

The analytic shape basis at full weight: the chest finally carries structure the environment light can reveal — and it reads as corrugation rather than ribs, which is why it ships switched off.
§40 — Registration exists, and an honest perceptual audit of the distance left
Two things: the measurement primitive that five failed builds were missing, and a direct visual assessment of how far this is from a photograph — not a statistic, an actual look.
Landmarks: the registration primitive
Every measured-transfer attempt on this page failed for one reason — the reference's anatomy at a coordinate is not our anatomy at that coordinate, so a residual sampled at (y,θ) lands in the wrong place. Landmarks are that correspondence, and the raw material was already present: each one is an extremum of the per-station series the profile organ already measured and was discarding. Maximum radius in a band gives acromion, iliac crest, trochanter, calf; minimum gives waist, wrist, elbow, knee, ankle. Measured in per-mille of each mesh's own stature, so two bodies are directly comparable.
| landmark | reference | ours | error |
|---|---|---|---|
| acromion (shoulder) | 816 | 840 | +24 |
| waist | 618 | 582 | −36 |
| iliac crest | 438 | 432 | −6 |
| wrist | 522 | 486 | −36 |
| elbow | 582 | 582 | 0 |
| trochanter | 408 | 444 | +36 |
| knee | 258 | 282 | +24 |
The error is now quantified: 36‰ of stature is about 63 mm on a 1750 mm body. A residual sampled without this warp lands most of a hand-width away from the anatomy it was meant to describe — which is precisely why the high-frequency sweep fell monotonically (380, 345, 302, 260) the harder it was pushed. The next build maps reference height to ours piecewise between corresponding landmarks and re-runs that sweep, which is a falsifiable test: non-monotonic with a maximum above 380 means registration was the missing piece; still monotonic means measured detail transfer should be abandoned in favour of generated structure.
Honest defects in this first cut: the neck, calf and our own ankle return zero because the search bands miss them, and the emitted field labels do not print, so the values are positionally correct but unlabelled. Both are small and both are stated rather than tidied away.
Perceptual audit — looking at it, not measuring it
The rulers say 255 against a cadaver. Against a photograph the honest number is roughly 175 — clay, and that comes from looking at the render rather than scoring it. What a direct visual reading sees, stated plainly:
- It reads as a mannequin, not a person. Proportion is broadly right; nothing else is. This is the correct summary and no metric on this page should be quoted against it.
- The face is the worst part — and the region judge now agrees, scoring it 227, our lowest number anywhere. Eyes sit nearly flush, there is no true orbit, brow ridge or nasal structure, and the mouth is a dark band. A face is feature geometry; ours is a smooth ovoid with colour applied.
- The surface is uniformly smooth. Real bodies carry clavicle hollows, a ribcage, muscle bellies, tendon lines — surfaces that face up and down. Ours are almost all vertical, which is why environment lighting had nothing to reveal.
- Hands and feet remain crude — digits exist and are rule-generated, but they are tapered tubes without knuckles, nails or an arch.
- The material is closer than the form. Subsurface warmth and even skin tone are in place; what is missing beneath them is geometry, not shading.
The distance to the goal, honestly: a photograph is roughly 950 on the same perceptual scale. We are at about 175. That gap is not one rung — it is form, density, facial structure, and light transport, in that order, and the ordering is now established by measurement rather than taste. Publishing the gap at its true size is the point; every number on this page is the minimum across all judges, and it falls whenever a new judge can see something the old ones could not.
Roadmap for the whole program: /world/human_roadmap
§41 — A faster process, a corrected headline, and a defect chased to its third cause
The goal is to pass MetaHuman on independent comparison against real humans. That needs a process that iterates in one command instead of four, and numbers that cannot go stale. Both moved this round.
The measure loop is now one call
gx_measure generates a body at any knob setting, runs every judge, extracts anatomical landmarks, computes the honest headline as the minimum across all judges, and prints a self-check warning if the ruler fails its own non-vacuity test — in a single command. An experiment went from roughly four round-trips to one.
It immediately corrected a number we had been publishing
With the head-region judge included, the honest headline is 227, not 255. The head is the minimum, so the head is the headline. The earlier figure came from a minimum computed by hand before that judge existed and never re-derived. The tool now computes it from every judge on every run, so a stale headline cannot recur. That is the whole argument for process tooling: it paid for itself in two runs by catching our own error.
| judge | front | side | shape | detail | quarter | head | HEADLINE |
|---|---|---|---|---|---|---|---|
| current | 823 | 813 | 923 | 380 | 255 | 227 | 227 |
A defect chased to its third cause — and both earlier guesses were wrong
Landmarks for calf and ankle read zero. The filed ticket offered two hypotheses; a coverage probe refuted both and named a third: the leg station run stops at 282‰, so there were no stations in those bands to search. The search code was correct all along. The real cause was our own guard working exactly as designed — below mid-thigh the legs converge, the clustering cannot separate them, and the rule that refuses to record an unmeasurable section refused. Two fused legs, unlike an arm fused to a torso, are a known geometry: the seam is the midline. Splitting there changed the result (the trochanter landmark moved) but did not extend coverage, which narrows the remaining cause to the minimum-point threshold a half-section cannot meet. Reported at that precision rather than closed early.
The standing rule this reinforced: when a measurement reads zero, print the coverage before theorising about the search. And a guard that is correct in general can be wrong in a specific case — only a probe distinguishes.
What independent judgement will mean here
The bar is a photograph, not a cadaver. Our rulers score 227 against scanned anatomy; a direct visual reading against a real photograph puts us near 175 — clay. Passing MetaHuman means beating it on comparisons that a third party can run and check, so the instrument has to be built the same way everything else here was: several judges of different kinds, the minimum published, the reference stated, and every regression shown next to every win. A single number from a single judge is exactly the thing this page has spent forty sections learning not to trust.
§42 — First direct comparison against a real human, and what it costs us
The goal is to pass MetaHuman on independent comparison against real people. That requires actually placing our output beside a photograph at matched scale and reading both together. Done, and the result is worse than every number we have published.
The reference image stays private and is not reproduced here — it is a photograph of a real person, held locally as a quality bar only. What is published is the scoring, which is the part that has to be checkable.
Comparative judging is harsher than solo judging — and that is the honest instrument
Looking at our render alone, the perceptual reading has been about 175. Placed beside a real photograph at matched height, the same render reads closer to 130. Nothing changed but the presence of the reference. A render judged alone always flatters itself; the eye grades against memory, and memory is generous. That makes side-by-side comparison the correct instrument for this goal, and it means our published perceptual number was itself slightly inflated. Corrected here rather than defended.
What the comparison names, in order of how badly it reads
- Soft-tissue form is absent entirely. The reference has breast mass, hip flare, a defined waist, gluteal and thigh volume — shapes with weight, responding to gravity. Ours has none of it: a tubular torso, straight limbs, no mass anywhere. This is the single largest gap and it dwarfs everything the last several rungs worked on.
- The face is a placeholder. Beside a real face, an ovoid with eye and mouth marks does not read as a head at all. Our own head judge independently scores this our worst region at 227.
- The skin is uniform plastic. The reference carries tonal variation, tan lines, specular highlight, occlusion in every crease. Ours is one pink value with a warm terminator.
- The lighting is a studio of one lamp. Real environment light, real shadow softness, and depth of field are doing enormous work in the photograph, and none of it exists on our side.
A flaw in our own comparison, stated
The reference is female and the generated body was male. Some of the form gap above is therefore a category mismatch rather than a quality gap, and the comparison must be sex-matched before its numbers are quoted as a measurement. The generator supports both, so this is a setup error on our side, not a limitation — recorded because an instrument with a known flaw that is published is worth more than a clean number that is wrong.
What this changes about the plan
It re-orders the work by evidence rather than by preference. Soft-tissue form outranks everything — ahead of surface relief, ahead of the remaining light transport, ahead of the facial bases. A body with correct mass reads as a person under bad lighting; a body without it does not read as a person under any lighting. The fat layer already exists in our anatomical stack and currently does almost nothing; making it carry real volume is the next build.
Standing method note: comparisons against real people are run locally and privately, and only the scoring is published. We build look classes parametrically and do not replicate any identifiable person.
§43 — The ruler ranked a broken body above a good one
Testing the newly-ranked-first gap produced two defects in one run, and the second is more serious than the first.
To test soft-tissue form we generated a female body, since the previous comparison had the flaw of scoring a male body against a female photograph. The generated result is grossly broken: the torso renders as a barrel that flares wider than the shoulders and hangs to mid-thigh, with a tiny elongated head and short arms. It does not read as a female body. It reads as a bell. The dimorphism functions have evidently never been eyeballed at full sex weighting since the muscle and layer work landed.
And the ruler preferred it
| body | front | side | shape | detail | quarter | head | HEADLINE |
|---|---|---|---|---|---|---|---|
| male — reasonable | 823 | 813 | 923 | 380 | 255 | 227 | 227 |
| female — visibly broken | 831 | 783 | 900 | 327 | 308 | 270 | 270 |
Every judge in the detail family scored the bell higher. The mechanism is visible once stated: a bulkier, more irregular silhouette produces more local normal variance, and the detail judges reward variance without asking whether the variance is anatomy. This is the same failure that let procedural noise move a statistical grader from 309 to 550 with zero perceptual change — except this time it is expressed in geometry rather than in texture, which is why the existing hardening did not catch it.
What this invalidates, said plainly
The detail family can track one body across small changes — which is what every measurement on this page has used it for, and those remain valid. It cannot rank two bodies of different bulk against each other. So the male-versus-female headline comparison above is not a result; it is an artifact, and it is published as one. Any future claim that one body is better than another needs a judge that is not satisfied by variance alone.
The recurring lesson, now on its third instance: a metric that can be satisfied by something other than the thing you want will eventually be satisfied that way — by noise, by a boxy shoulder, and now by a bell-shaped torso. The defence is not a better single metric. It is holding several judges of different kinds, publishing the minimum, and looking at the render every single time.

The body the ruler scored 270, above a reasonable body at 227. Published because a judge that prefers this to that is the finding.
§44 — The bell was ours, the cause was correlation, and the fix lifted every judge
The previous section published a body the ruler preferred and the eye rejected. Root-caused, fixed, and verified across the parameter grid.
Not an arity bug — a correlation bug
The filed suspicion was silent argument misbinding, since the language performs no call-arity checking and three signatures had been widened. Wrong again. Comparing a freshly generated canon against a known-good one row by row showed the torso uniformly 60% too wide and 30% too shallow — systematic, not garbage, which rules out misbinding.
The cause was a fix from earlier in this same session. Individual variation had been moved from per-slice to per-part, which cured a lumpy head. But one draw then shifts an entire part, and width and depth were drawn independently — so a torso could come out 30% wider and, separately, 30% shallower. A wide flat slab. The bell.
The correction is the same rule the population work already needed, appearing at the scale of a single part: real people are bigger or smaller overall, not wider and flatter at once. Breadth and depth must covary. Correlating them, and damping a part-wide shift relative to a per-slice one, removes the failure by construction.
Verified across the grid, by eye and by number
All four bodies across the sex range now read as bodies, and the dimorphism is visible: shoulders narrow and hips widen from male to female, waist definition appears, the silhouette taper reverses. Every judge improved at once — headline 227 → 240, front silhouette 866 (the best measured on this page), shape 945, detail 388, quarter 310. A correction that lifts every judge rather than trading one against another is what distinguishes a real fix from a tuning.
Two coefficients that are still hand-crafted, said plainly
The fix contains an invented amplitude ratio and an invented width-to-depth correlation of 0.75. The structure is principled; the numbers are not measured. That correlation is an anthropometric statistic — the real covariance of chest breadth against chest depth across a population — and it belongs in a data file beside the canon, sourced from published anthropometry, never typed into the emitter. Until it is sourced, both are placeholders and are labelled as such wherever a number derived from them appears.
The process rule this earned
Six numeric judges scored the bell as normal, and one ranked it above a good body. Only a contact sheet caught it. An eyeball gate across the parameter grid now runs before every publish, not after a suspicion — and it is a tool, gx_grid, so it costs one command. Fast numbers alone will confidently report a bell as an improvement; fast numbers plus fast eyes is the actual process.

The eyeball gate after the fix: sex 0, 333, 666, 1000. Shoulders narrow and hips widen left to right; all four read as bodies. This sheet is what caught the defect the six numeric judges missed.
§45 — Benchmarked against MetaHuman, axis by axis, including the axes we lose
The goal is to pass MetaHuman. That claim needs a scorecard, not an assertion — and it must be a capability comparison, because their assets are closed and we take none of them. Our column is measured on this page's own rulers. Their column is public capability; entries we have not personally verified are marked [unverified] rather than stated as fact.
| Axis | MetaHuman | Nishi (measured) | Verdict |
|---|---|---|---|
| Photoreal skin material | scanned, measured materials | procedural SSS + tone, one flat value at body scale | MetaHuman, decisively |
| Facial fidelity | scan-derived, ~100–160k tris per head [unverified] | head region judged 227, our worst region | MetaHuman, decisively |
| Hair / grooms | strand-based | none | MetaHuman |
| Facial rig / animation | full facial rig, DNA-bound | joint tree + forward kinematics + physics; no facial rig | MetaHuman |
| Body from parameters | morphs over a curated library | emitted from an anthropometric canon by rules; 16 parts, ~341k tris | Nishi |
| Internal anatomy | none — a shell with a rig | nested bone → muscle → skin layers; outer form emerges from beneath | Nishi, uniquely |
| Determinism | float pipeline | all-integer; identical inputs give bit-identical frames, proven by replay | Nishi |
| Ownership / runtime | closed ecosystem, cloud rigging, engine-bound [unverified] | self-contained; own language, compiler, renderer; no third-party runtime | Nishi |
| Measurement instruments | not applicable — an authoring tool | six independent judges, minimum published, self-check per run | Nishi (different purpose) |
The honest verdict
We do not pass MetaHuman, and nothing on this page should be read as claiming otherwise. On the axes that decide whether a rendered human looks like a person — skin material, facial fidelity, hair — MetaHuman wins decisively, and our own numbers say so: 227 on the face, roughly 130 when placed beside a photograph.
What is true is narrower and worth stating precisely: we exceed MetaHuman on four axes it does not attempt — generation from parameters rather than morphs over a library, nested internal anatomy where the surface emerges from the layers beneath, bit-exact determinism, and full ownership with no third-party runtime. Those are not consolation axes; they are the ones that make a village of people generable, reproducible, and ours. But they are not the same as looking real, and conflating the two would be the exact self-flattery this page has spent forty-five sections refusing.
What would constitute passing
A defensible claim needs three things we do not yet have: (1) the face judged against a real head oracle rather than a cadaver-skin reference; (2) sex-matched, pose-matched side-by-side comparisons against real photographs, scored by judges of different kinds with the minimum published; (3) the material and hair axes attempted at all, since we currently score zero on one of them. Until those exist, the correct statement is the one above: ahead on generation, ownership and anatomy; well behind on appearance.
The path there, from the first byte up
A true one-to-one match with a specific person, without collapsing into a model that only reproduces that person, is not a contradiction — it is a statement about where the fitting happens. Fit free-form vertices to a target and you overfit by construction: the result reproduces one body and generalises to nothing. Fit the coefficients of a general basis and you cannot overfit, because every reachable result is still a valid human in the same parameter space. Specificity comes from the fit; generality is preserved by the basis. That is the same reason a correlated manifold beats independent sliders, and the same reason our layered stack beats a painted shell.
Which makes the road explicit, and it is instruments before appearance every time: more layers (bone and muscle as real structures rather than scaled envelopes, then vessels and organs), more measurements (per-region and multi-view judging, landmark registration, camera solve), and more judges of different kinds (geometric, statistical, perceptual, comparative) with the minimum always published. Every one of those is built here from the first byte — our language, our compiler, our renderer, our rulers — because a measurement borrowed from someone else's runtime cannot be trusted to tell us we have passed them.
§46 — The full benchmark field, not just MetaHuman
Five external systems, one scorecard. Our column is measured on our own rulers; theirs is public capability, with anything we have not personally verified marked [unverified]. No assets, weights or runtimes are taken from any of them — they are measuring sticks, the same posture that has served us with CUDA.
| System | What it is | Beats us at | We beat it at |
|---|---|---|---|
| MetaHuman (Epic) | closed asset ecosystem, DNA-bound morphs [unverified] | skin material, facial fidelity, hair, facial rig | parametric generation, internal anatomy, determinism, ownership |
| Infinigen (Princeton) | procedural environments; verified from source: creatures are NURBS lofted through profiles from real refs, single-surface | NURBS surfaces, profile data from real references, mesh density, mature materials, a full animal genome | humans at all (it generates none), nested internal anatomy, integer determinism |
| SMPL-X (MPI) | statistical parametric body model, research licence | the correlated shape manifold learned from real scans; pose-dependent soft-tissue deformation | internal layers, ownership, no licence restriction on output |
| Anny (NAVER) | open parametric model from WHO demographic data | population-grounded correlation structure across age and weight; clean production topology | internal anatomy, our own renderer and judges |
| InfiniHuman | verified from the paper: diffusion-based, 111k synthetic identities, licence unstated | identity diversity at scale, textured output, clothing | procedural rather than learned; deterministic; identities grounded in anthropometry rather than a generative prior |
| BodyParts3D | real cadaver scan — our standing oracle | everything about appearance — it is a real body; our headline against it is 240 | it is not a generator; it produces exactly one body |
What the field says, read honestly
Two things are true at once and neither should be dropped. Every one of these systems beats us on appearance — that is not close, and our own rulers say so: 240 against a cadaver, roughly 130 beside a photograph, 227 on the face. And no system in this field does what we do structurally: Infinigen's creatures are single-surface, SMPL is a single skin shell, MetaHuman is a shell with a rig, InfiniHuman emits from learned weights. None of them has anything underneath.
So the position is precise rather than flattering: last on appearance, alone on inside-out structure, and the only one whose output, generator, renderer and rulers are all owned outright. Passing this field means keeping the second and third while closing the first — and the first is closed by form, density, materials and light, in that order, each measured on judges that have already proven they will report our own failures.
Standing method: capability comparison only; no competitor assets, weights or runtimes are used. Entries marked [unverified] are public claims we have not independently checked — on this page an unverified claim is labelled, never repeated as fact.
§47 — An independent judge scored our mannequin within 25 points of a real human
The benchmark comparisons so far were capability scorecards. This is an independent measurement instrument — a no-reference statistical image grader, already hardened against the noise exploit that once fooled it, and passing its own red-team gate GREEN 5/5 live — run on our render and on a real photograph at matched size.
| LEVEL | scale | mscn | kurt | coherence | verdict | |
|---|---|---|---|---|---|---|
| our generated body | 550 | 0 | 550 | 763 | 986 | SEMI-REAL |
| real human photograph | 575 | 800 | 575 | 1000 | 966 | SEMI-REAL |
Twenty-five points, and the same verdict
A clay mannequin with no face, no hair, no material and no soft tissue scores 550. A photograph of a person scores 575. The eye puts them at roughly 130 and 950. This grader cannot see the difference between our output and a human being — and it is not a naive instrument: it was hardened after pure noise once scored 475 on its predecessor, and it still passes that hardening test today. The failure is not that it was broken; the failure is that statistical realism and actual realism are different things, and at this range the aggregate is a floor filter that says only both of these are photographs of something.
The same run hands us the instrument we needed
The per-axis breakdown is where the value is. The scale axis — multi-scale detail — reads 0 for us and 800 for the photograph. It separates perfectly. The aggregate buries that signal underneath mscn, kurt, colour and ai_fp, which are near-saturated for both images and therefore carry no information at this end of the range.
So three rules come out of it, and they are already in force: never quote LEVEL for this work — the honest figure remains the minimum across judge kinds, which is the perceptual ~130; adopt scale as the tracked statistical axis, since it sits at exactly zero and any genuine gain in surface detail must move it, and nothing else we hold measures that; and the standing defence is confirmed again — a metric that can be satisfied some other way eventually will be, so hold several judges of different kinds and publish the minimum.
This is the fourth instrument on this page to be caught flattering us — after a statistical grader fooled by procedural noise, a silhouette blind to a boxy shoulder, a front view blind to depth, and six geometric judges that ranked a bell-shaped body above a good one. Every one was caught by adding a judge of a different kind, never by refining the existing one. That is the method, and it is the reason the number on this page keeps going down.
§48 — Correction to §47: the axis we just adopted is confounded by resampling
Published within the hour of the claim it corrects, because the claim is wrong as stated.
§47 reported that the scale axis separates perfectly — 0 for our render, 800 for a photograph — and adopted it as the tracked statistical number. Grading two more of our own renders shows scale at 440 and 480, not 0.
The difference is not content. It is resampling. Those two renders were produced at 480×760 and downscaled to 300×620; the body scoring 0 was rendered natively at 300×620; and the photograph was downscaled from 2550×3300, which is heavy resampling. The axis is reading the interpolation as much as the anatomy.
So the separation in §47 was partly an artifact of how each image reached its final size, and the adoption of scale as our tracked number is withdrawn until it is measured under matched conditions: identical render resolution, identical resampling path, identical JPEG settings, on both sides. Nothing about the underlying conclusion changes — the statistical aggregate still cannot tell a mannequin from a human, and the perceptual reading of ~130 still stands as the honest figure. What changes is that we do not yet have a statistical axis we can trust to track progress.
This is the same failure the camera framing produced earlier on this page, where auto-framing moved the ruler along with the thing it was measuring. The law it earned applies to its own successor: verify that the ruler is not responding to something orthogonal to what you meant to measure. An hour between publishing a claim and refuting it is the process working, not failing — the alternative is a number that stays on the page and quietly becomes a foundation.
§49 — The matched-conditions harness corrected its own specification on first run
§48 withdrew the scale axis until it could be measured under matched conditions. The harness to do that now exists — and its first run showed the specification in §48 was itself incomplete.
The harness normalises target size, the bicubic path, aspect handling and JPEG quality across both images before grading. Under it, our body reads scale 0 and the photograph 680 — which looks like confirmation of the original claim.
It is not, because the harness still does not match the variable that drives the axis. Our render was already 300×620, so its downsample ratio was 1:1. The photograph came from 2550×3300 — a ratio near 8.5:1. Target size matched; downsample ratio did not. And we have direct evidence that ratio is the driver: the same body, same renderer, same target size, scored 440 when rendered at 480×760 and reduced, versus 0 when rendered natively. The axis moved 440 points on resampling alone.
So the correct protocol is one level deeper than §48 stated: match the source-to-target reduction ratio, not merely the target size. In practice that means rendering our body at the reference photograph's native resolution and putting both through the identical reduction. Until that runs, no scale comparison is quotable — including the 0-versus-680 above, which is recorded here as unresolved, not as evidence.
What stands unchanged: the statistical aggregate still cannot separate a mannequin from a human (550 against 600 in this same run), the perceptual reading of ~130 remains the honest figure, and we still hold no trusted statistical axis. What is new is a reusable instrument whose first act was to refute the specification it was built from — which is the entire argument for building instruments before trusting numbers.
§50 — The first trustworthy statistical comparison, and a target we can track
§48 withdrew the scale axis. §49 found the withdrawal specification was itself incomplete: the driver is the source-to-target reduction ratio, not the target size. This runs the corrected protocol.
Our body was rendered at 2550×3300 — the photograph's native resolution — so both images reduce to 300×388 through an identical 8.5:1 bicubic path at identical JPEG quality. Nothing about the comparison now depends on how either image reached its size.
| LEVEL | scale | mscn | kurt | coherence | |
|---|---|---|---|---|---|
| our generated body | 550 | 380 | 550 | 864 | 982 |
| real human photograph | 600 | 660 | 600 | 1000 | 956 |
What is now established
scale survives the matched protocol as a genuine discriminator: 380 against 660. The earlier reading of 0 against 800 was inflated roughly twofold by the resampling confound, exactly as suspected — but the underlying separation is real, not an artifact. kurt separates too (864 against 1000). The aggregate LEVEL remains nearly blind at 550 against 600, and that is now a confirmed property measured under correct conditions rather than an assumption.
So we hold a trusted statistical axis again, and with it a target: our multi-scale surface detail sits at 58% of a real photograph. That is a number a third party can reproduce — the protocol is stated, the reduction is deterministic, and the grader is a separate instrument that passes its own red-team gate. Any future claim of closing the appearance gap has to move it.
Three sections to get one honest number: adopt an axis, withdraw it, refine the withdrawal, then measure properly. That sequence is not overhead — it is the difference between a number that tracks reality and a number that tracks our rendering pipeline. The headline figures are unchanged: geometric 240, perceptual ~130, and the face our worst region at 227.
§51 — The first lever proven to move a photograph-referenced number
§50 earned a trusted statistical axis. This uses it for the thing it was built for: testing whether one of our detail levers actually closes the gap to a real human, rather than to a cadaver.
Same body, same canon, same renderer, same 2550×3300 render reduced by the identical 8.5:1 path. The analytic shape basis is the only variable.
| scale | kurt | LEVEL | |
|---|---|---|---|
| shape basis off | 380 | 864 | 550 |
| shape basis on | 400 | 947 | 550 |
| real human photograph | 660 | 1000 | 600 |
What moved, and by how much
The basis closes 7% of the multi-scale detail gap and 61% of the kurtosis gap. The aggregate LEVEL does not move at all, which is now the expected behaviour rather than a surprise — it has been demonstrated blind at this range twice.
This is the first lever on this page proven to move a photograph-referenced number. Everything measured before it was scored against a cadaver scan, which answers a different question: how close are we to that body, not how close are we to a photograph of a person. The distinction has mattered all along and we could not test it until the matched protocol existed.
Honest bounds on the claim. The test ran the basis at high weight, and at that weight the ribbed banding is visible at body scale — so the measured gain and the visible artifact arrive together, and the correct default is the lower weight whose gain is smaller. A 7% closure on one axis is not a breakthrough; it is the first evidence that this class of work moves the right needle at all. The headline figures are unchanged: geometric 240, perceptual ~130, face worst at 227.
§52 — The caps were the ceiling: demand-honest emit, a dimension-gated 1 mm skull, and the first head-prior A/B
§29 left a warning in this page's margins: keep radial low or the 400k cap truncates the skin head. This section retires that whole class. Every number below re-runs; the compiled version with its evidence ledger is paper GX-001 on /papers (nx_paper_audit CLEAN 79/79, integrity 1000).
The emit cap was proven binding before being touched: radial 96/sub 24 emitted 599,998 of 600,000 with truncated:1 while true demand measured 861,696 — a silent 30% loss in production. The cap is now 223 with a tris_offered demand field, so a capped emit can never again report itself complete. A 1,529,856-triangle body emits and renders clean with 6.8M headroom. The honest headline finding is negative and load-bearing: 2.5× density moved the form bench essentially nothing (389-class to 369), so the bench is subdivision-proof and the whole remaining climb is FORM, not polycount.
| subject | before | after | what changed |
|---|---|---|---|
| emit at radial 96/sub 24 | 599,998 truncated:1 | 861,696 offered=emitted | cap 600k → 2^23 + demand reporting |
| skull vs real-skull oracle | 68 (2mm cells, 88,796 tris) | 142 (1mm cells, 363,184 tris) | rear detail 74 → 229; bbox gate GREEN both runs |
| head-scale face (controlled A/B) | 226 (whole-body prior, 156 rows) | 249 (34 fitted head rows) | back 361 → 439, front 92 → 60 — MIXED, not shipped |
The skull is the Infinigen method run sovereignly: a fused implicit shell with true orbital and nasal openings, consuming 76 cross-section profiles fitted off the real BodyParts3D skull by nx_profile_fit, dimension-gated at 146×198×206 mm against the reference 151×209×215 (tolerance 25). A finer-grid request was REFUSED loudly at max grid 240: cell size is quantized to integer millimetres, so sutures at 0.2–0.5 mm are structurally unreachable until the sampler goes sub-millimetre — the named next limit, filed for the skull lane owner.

(Left: the raw field every caller used to get. Right: what a plain nx_skullsdf call ships NOW — verified by a bare-argv proof run whose manifest reports the full stack. The ringed 1mm render is banked at skull_r2_ringed.png; its old detail figure of 142 is retracted per §53 — the rings were inflating it.)
Same-day addendum, after the operator's eye-verdict ("it looks like a cartoon" — correct): the renderer's entire material stack (subsurface, tone, micro-relief) applied only to the SKIN layer, so bone rendered flat diffuse plus a weak sheen — literal toon shading. A three-signal colour-only bone material shipped in nx_anat_sov (trabecular grain at two scales, shallow subsurface warmth at the terminator, matte mineral desaturation where the sky light dies, plus a wider satin specular lobe). The skull images above now carry it; the flat originals are banked at skull_r1_flat.png / skull_r2_flat.png for the A/B. Render manifests are byte-identical on every geometry statistic — the change is colour-only, so the form bench cannot move by construction.
Honest bounds
Perceptual is unchanged and stated unchanged (~130 beside a photograph); density was proven not to move it. The head-prior A/B is a diagnosis, not a win: the fitted rows carry station-Y in crop space while the emitter queries body space, and on the front the measured prior fights the hand-authored relief table — the +23 headline arrives with a −32 front regression. Exit criteria stand and none is reached yet: skull ≥300, head-scale face ≥300, body headline ≥450. The roadmap, its external anchors and all 79 cited runs are in GX-001.
§53 — The rings were inflating the score: a ruler artifact caught by the eye, and a built-but-unwired fix stack
The operator's verdict on §52's skull ("shapes and the onion rings are junk") turned out to be a MEASUREMENT finding, not just an aesthetic one. Reading the skull organ's argument parser revealed four capabilities behind undocumented positionals, never invoked through the tool surface: a micrometre cell dial, a smooth-union radius knob (zero = true field with visible sutures), a REDISTANCE pass that rebuilds a true SDF at quarter-millimetre fixed point, and an oracle-derived RESIDUAL identity layer (base + residual = oracle) whose data file was already fitted and sitting on disk.
| run | field | detail vs real skull | what it proves |
|---|---|---|---|
| §52 skull (raw field) | gradient mean 760, 47% under 800 — not an SDF | 142 | score partly counts the TERRACES as surface detail |
| redistanced (first invocation ever) | gradient mean 965, zero overshoot, 256 q/mm | 73 | killing the artifact LOWERED the score — the honest parametric skull is 73–104, not 142 |
| + residual at full scale | bbox 150×208×215 vs oracle 151×209×215 — near exact | 148 (silhouettes cratered) | the residual DATA is real but full scale shatters the surface into the organ's own documented bead-cloud failure |

(The full-scale residual failure is kept as linked evidence rather than displayed: skull_r5.png, a skull-shaped bead cloud — the organ's own documented filigree mode.)
Calibration addendum, same session: the residual ladder measures 0 → 73, 250 → 125 (silhouettes HELD at 701/595/667, rear detail 96 → 202), 500 → 148 but shape sheds 667 → 523 (the shatter onset), 1000 → bead cloud — 250 is the measured knee, bracketed from both sides, and it IS NOW THE SHIPPED DEFAULT: a plain nx_skullsdf call gets the redistanced true field, K=3 sutures and the calibrated residual (promoted 326cf47a; a missing residual file fails open to the parametric base, and every explicit argv still overrides). At 250 per-mille the eye-verdict changes category: the onion rings are gone — the surface reads as textured bone, not contour-line plastic. Honest negatives stand: the parametric FORM (egg cranium, bar brow, cone nose) is untouched by any of this, and the residual currently reads as generic surface crinkle rather than the oracle's anatomical features — scale calibration is not feature transfer. 
What is now established
The rings survive redistancing at reduced pitch, which converts the terracing diagnosis from hypothesis to proof: the redistance seeds inherit their positions from the RAW field's integer-millimetre zero crossings, so the quantization is baked in upstream of every downstream fix. The only cure is evaluating the primitive field itself at fixed-point sub-millimetre precision — filed with this evidence. Second: the learning beat reports the parametric fit at a plateau (447 start = 447 final), independently confirming the primitive set is exhausted and the residual layer is the designed escape — it needs its owner's calibration, not abandonment: full scale shatters, and the near-exact bounding box shows the identity data is good. Third: the detail judge needs terracing immunity before the skull exit criterion can be trusted at fine cells — and a SECOND same-day conviction hardens that into a design requirement: a head prior applied in the WRONG coordinate frame (crown sections smeared over the whole head) scored 249 while the SAME data correctly framed scored 115, because wrong-but-busy variance counts as detail wherever the oracle is busy. The judge measures variance PRESENCE; it must measure variance AGREEMENT (orientation-correlated, not merely co-located) before any fine-detail exit can be trusted. Until then the honest head-prior verdict is: no configuration beats the shipped default (226), and the ruler upgrade is the gate on this whole sub-ladder.
Honest bounds: nothing in this section moved a capability number upward — it moved one DOWN (142 to 73–104, the honest reading) and named why. That is the measurement working. The form verdict from §52 stands unchanged; the two named blockers now carry experimental proof instead of suspicion.
§54 — The ruler upgrade shipped, its first version refuted itself, and the numbers all moved DOWN
Same session as §53. The detail judge now carries a STRUCTURE-AGREEMENT term: matched busyness only scores where the per-axis variance composition of the two surfaces agrees (cosine of the variance vectors). Version 1 gated on point-normal angle and its own bite test refuted it within the hour — on the back of a head the base normals agree even where the busyness is wrong (the planted wrong-frame case fell only 249 to 244) — so v2 replaced it and is what shipped. Self-compare stays exactly 1000 by identity: the non-vacuity proof survives by construction.
| subject | old judge | v2 judge | reading |
|---|---|---|---|
| procedural body vs cadaver skin | 369 | 316 | muscle busyness partially composition-mismatched — honest tightening |
| shipped default skull vs real skull | 125 | 91 | the residual is generic crinkle, not anatomical features — the judge now agrees with the eye |
| wrong-frame head prior (planted bad) | 249 | 198 | discounted but NOT flipped — the controlled test below explains why honestly |
| right-frame head prior, full strength | — | 39 | station-row RINGING (the emitter's own recorded defect) convicted hard |
What is now established
The third Goodhart conviction is WITHDRAWN with evidence: the wrong-frame prior outscoring the right-frame one is real mesh behaviour, not judge blindness — the correctly-framed prior cannot yet be applied smoothly (each of its 34 station rows creases the surface; at full strength the v2 judge scores those rings 22–39) and at safe strength it is nearly invisible. The named unlock is therefore in the EMITTER, not the ruler: interpolate the measured profile rows with the same Catmull-Rom machinery that §29 gave the canon rings (bg_cmr already exists), so the head prior can express its data at full strength without creasing. Every number in this section is the new baseline; the older figures above stand as history with their method stamped.
Honest bounds: the v2 ruler is stricter, not proven perfect — its variance-composition cosine has not been tested against an adversarial mesh built to match composition deliberately, and the wrong-frame case at 198 shows residual credit that orientation of the variance FIELD (not just its axis mix) would likely remove. Both are named future teeth. Nothing in this section raised a capability number; two went down and one conviction was retracted. That is the measurement plane doing its job.
§55 — The face-parts canon at uncapped density: the mechanism works, the proportions are the work
The 16-part face canon (the program that hit the old 400k cap) had never been emitted at real density — the cap made it impossible. At radial 96/sub 24 it now emits 2,076,480 triangles with zero truncation. Head-to-head at head scale, the v2 judge reads 40 and the eye agrees: the eyes and lips are REAL GEOMETRY now (the whole part-placement machinery works), but the shapes are toy-proportioned — bulbous protruding eyeballs, oversized duck-bill lips, no nasal bridge geometry, and a stray part below the chin. The judge and the eye giving the same verdict is the day's instrument work paying off.

Named next work, face-parts program: anatomical part proportions (eye diameter ~24mm mostly INSIDE the orbit; lip vermilion border, not a bill; a nasal bridge part; jaw/chin line), with the factorised-from-oracle canon (nx_profile_fit argv[4], measured control handles) as the sizing source rather than hand numbers. The measurement plane is ready for it: demand-honest emit, structure-gated judge, head-scale crop, and every claim on this page re-runs.
§56 — The first visible face-form fix: eyes into their sockets, by one data edit
§55 diagnosed the eye part to the digit: a 38.5 mm sphere standing ~17 mm proud of the face, against real anatomy's 24 mm sitting near-flush (the 66 mm interpupillary spacing was already correct). The fix is one edited part block in a COPY of the canon (canon_merge2.dat; the original untouched): eye rings resized to 24 mm, forward offset 55 → 50. Emitted at 2,076,480 triangles, zero truncation.

Eye-verdict: the golf-ball protrusion is gone; the eyes sit IN sockets with a genuine lid shadow, and with them recessed the nasal relief reads for the first time. Still honestly cartoon — the duck-bill lip mass (an oscillating face-band part; this canon carries NO separate lip/brow/nose parts, so those are additions, not fixes), the egg cranium, and the forehead patch are the named remainder. The v2 bench run is pending on a recovering daemon and will be appended; the estate suffered a full outage mid-session and this section was produced through its recovery windows. One measured data edit, one visible category change — the part machinery rewards anatomy directly now.
§57 — Texture sampling exists: the shipped character carries UVs, bakes its own atlas, and the renderer samples it per-fragment
Until this rung the shipped game character (ref9d.nxa, 14,164 verts / 28,092 tris / 104 joints) had no UV coordinates at all — sampling any texture map was impossible by format, and "we shade procedurally from genome" was a constraint wearing the costume of a choice. The whole ladder landed in one arc, every rung gate-proven, and the asset now measured by the same instrument that filed the defect.
| rung | what shipped | evidence |
|---|---|---|
| format | TEXC section in the NXA: per-vertex [u q16][v q16][owning joint], bone-anchored cylindrical unwrap, each of the 104 joints owning a DISJOINT tile of an 11×11 atlas grid — charts cannot bleed across body parts by construction | nx_nxa_texc_gate 11/11 GREEN; nx_asset_floor_gate re-measured: TEXC:42496 now among the declared tags, 13 sections, still GREEN |
| regions | every joint classified Face|Torso|Limbs|Gens from its own bind anatomy (permil of the vertex span + laterality — the dyna normalization basis) | exact on a controlled fixture; ref9d census face 13 / torso 14 / limbs 74 / gens 3 = 104, the partition sums |
| albedo bake | per-region skin albedo + a whisper of fine grain (±3 — the coarse-blotch regression is banked history), deterministic by seed, unowned tiles deliberately non-skin gray so a sampling leak is SEEN | nx_nxa_texbake_gate 11/11 GREEN: byte-identical re-bake, seed grain live, regions discriminate, within-tile spread ≤8 |
| sampler | the renderer's existing per-fragment image path (tm_set_image + interpolated Q16 UVs) bound to TEXC — no new rasterizer was built; the path was already there, unwired | seed-A vs seed-B textured renders DIFFER (sampling is load-bearing end-to-end); 3-view turntable fills 56,482 px |
Left: the baked atlas — 104 owned tiles toned by anatomical region (face warmest, limbs darkest), fine grain only, and the unowned remainder deliberately gray. Right: the shipped character rendered by sampling that atlas per-fragment through its new TEXC coordinates — the first texture-mapped render of this asset in the estate's history.
Honest bounds
This is plumbing proven, not appearance won: the map is albedo-only (no specular/gloss/normal maps yet), the palette is region-flat rather than genome-driven, seams sit at bone-ownership boundaries, the published atlas is 1024px against the measured 4096 floor (resolution is a knob, higher untested), and the craft-world NPC wasm shader does not sample it yet — only the core renderer does. The perceptual number of this page does not move. What moved is a capability class: every rung above texture generation was dead code while the format lacked UVs; none of it is dead code now. Organs nx_nxa_texc + nx_nxa_texbake are promoted and registered; asset banked at ref9d.nxa.prev-pretexc.
§58 — The onion-ring root is dead: the skull field now evaluates at fixed point, and every instrument agrees
§53 proved the rings were not a cell-size problem — "redistance seeds inherit the RAW field's integer-mm zero crossings; the only cure is fixed-point evaluation of the primitive field itself" — and that cure is now shipped (debt 1786406737 part 1). The raw field grid carried integer-millimetre distances, so every iso-crossing snapped to coarse fractions of a cell. The fix follows the file's own precedent (the k1-at-SS_Q² lesson, applied to the output lane): additive _q variants of every primitive carry the result at SS_FQ = 256 units/mm — the same fixed point as the redistanced grid — so the seed crossing (a ratio), the sign restore and surface_nets at iso 0 are scale-invariant by construction and needed zero downstream changes. The millimetre lane survives untouched for the tuner and benches.
Same argv (sex 500, robust 500, grid 200, shipped defaults) before and after. The residual texture layer survives (intended, scale 250); the concentric ring/crater pattern riding under it is gone. The form defects (egg cranium, protruding arch) are §53's part-2 debt, deliberately untouched here.
| instrument | before (mm field) | after (SS_FQ field) | reading |
|---|---|---|---|
| raw-field |grad| under-800 (per-mille, near-surface) | 565 | 128 | the quantization noise that corrupted the seeds is gone |
| redistanced |grad| mean (1000 = true SDF) | 959 (min 0) | 1000 (min 23) | the redistanced field now averages exactly a true SDF; no flat near-surface cells |
| nx_meshprofile jumps ≥ 26mm | 4 (a 28/27/26mm oscillation cluster at stations 328–343) | 1 (the §-anatomical brow transition only) | the mid-face terrace bands vanished; genuine features survive |
| radius_min | 2000μm exactly (integer-mm artifact) | 2549μm | vertex placement is genuinely sub-mm now |
| triangles | 94,084 | 87,864 (−6.6%) | fewer spurious surface-nets cells from micro-steps |
| CPU cost | ~230s | ~240s | parity — the finer lane is not slower |
Honest bounds
Verified at 2mm cells (grid 200); the 1mm-cell eye-verify rides the next bench window. The bbox lost 3mm on x (144→141 vs reference 151): the truncated field biased the surface outward, and removing that bias exposed that the fit vector was tuned against the biased lane. Re-tuned the same day against the sub-mm field (the tuner’s forward/reverse chamfer metric now evaluates the _q lane; nx_skullfit_beat GREEN 469→467 centi, fit proven loaded): bbox x 141→145, all dims within tolerance, raw under-800 held at 125‰, redistanced mean 1001. The residual 6mm on x and the many-part form gap carry in the successor debt. The detail-judge headline is deliberately not claimed here: §53 convicted it of counting terracing as detail, so killing terraces may lower it — the honest instruments for this change are the four above plus the eye. The form gap (§53 part 2: richer primitive skeleton) is the remaining and larger half of the skull's climb.