CRAFT_AI_3D_GENERATION.md

pipelines/CRAFT_AI_3D_GENERATION.md

CRAFT — AI 3D CHARACTER GENERATION AND ALTERATION

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
Authority order: docs/DOC_MAP.md §0. If this document disagrees with canon, CANON WINS and this
document is the defect. Nothing here is applied until the director ratifies it. Under the
pipe-dossiers-bind law it becomes lane law for the CHARACTER-GEOMETRY class if ratified.

Research date 2026-08-08. This document is the craft companion to

docs/pipeline_review/tech_research/PIPE_CHARACTER_MODELS_2026-08-06.md, which surveyed **which

model to run. This one asks the different question: what the practitioners who ship characters

actually do with a generated mesh once they have it** — and it lands on a root cause for the

deformed body that the model survey could not reach, because the defect is not in the generator.

Evidence register, honoured per source. Claims marked VERIFIED were fetched live and the

sentence is quoted from the fetched text. Claims marked SEARCH-SUMMARY come from a search

engine's synthesis of a page not independently fetched — corroborated where noted, but not quotable

as the source's own words. Claims marked UNVERIFIED-QUOTE name a source that exists and is

correctly attributed, but whose exact wording could not be retrieved. Nothing here is MEASURED; this

pass ran no GPU hour.

CITATION AUDIT — 2026-08-08 (second pass). Every source below was re-sampled against the live
web. **Twenty-two sources verified as existing and saying what is claimed. Five claims were
fabricated or misattributed and are corrected in place:** (1) three quoted strings attributed to
the Meshy retopology tutorial appear nowhere on that page; (2) the SMPL licensing narrative
asserted a February-2026 date and a licensing transfer that no source supports — the Epic
acquisition itself is real and is now cited correctly; (3) Rodin's TAPose flag and quad tiers
were attributed to an 80.lv interview that does not contain them — they are real and now cite the
Hyper3D API specification; (4) the convex-hull "taut tape or band" quote was attributed to a
protocol CALVIS explicitly does not use, alongside a measurement count that matches no
toolkit checked; (5) an ECON quote about IF-Nets+ is not in ECON's abstract. Repair notes are
inline and marked [CORRECTED 2026-08-08]. No ACTIONABLE RULE was invented — every rule still
traces to a verified source, though R-6 and R-10 were re-grounded.

---

DERIVATION

DERIVED FROM:
  - build/3d/best_a14/bounded_fit.py — the docstring's own account of the A3_FIT defect: chest
    "measured 110.85 cm target 81.93 +35.3%" from "1 axis-spanning cluster", and the verdict
    "Driving that loop to 81.93 cm does not slim a chest; it squeezes a torso and two arms
    together by a quarter, and the silhouette pays."
  - build/3d/hi3dgen/fit_a14.py §1-2 — the site picker, the axis-spanning rule, and the
    per-mesh confound test that REFUSES TO SCORE rather than recovering the true loop
  - build/3d/hi3dgen/section_probe.py :: cluster_reading / read_section — the envelope-vs-
    perimeter measurement and its positive control
  - docs/pipeline_review/tech_research/PIPE_CHARACTER_MODELS_2026-08-06.md §7 (the parametric
    licence landscape), §10 (the three-layer recommendation), §11 (what it left owed)
  - build/3d/cage/body_stage/solve_metahuman_body_age.py L5-6 — the OTHER doctrine already
    live in this repo: "solve the body parametrically ... instead of conforming a template
    afterwards"
  - build/3d/characters/body_specs/BODY_AGE_14_RESEARCH.json — the girth spec the fit drives to

NOT DERIVED (authored judgment, and why it had no canon home):
  - The three-doctrine taxonomy in §3 and the ruling that our arm runs the one doctrine the
    literature does not use. Canon specifies the character, never the fitting operator. It is an
    engineering finding, grounded in the cited papers rather than asserted.
  - The measurement-protocol finding in §4. Our own file already names the trap in prose; the
    finding here is that the published protocol SOLVES it and ours only DECLINES it.

---

0. THE HEADLINE — the field named our defect in 2021 and published the fix

Four findings. The first is the whole document.

**1. The literature describes our deformed body in its own words, and prescribes a parametric body

prior as the cure. ICON's abstract, VERIFIED** verbatim:

"Current methods, however, are not robust to varied human poses and often produce 3D surfaces
with broken or disembodied limbs, missing details, or non-human shapes. The problem is that
these methods use global feature encoders that are sensitive to global pose."

ICON's answer is not a better generator. It is that both of its modules "exploit the SMPL(-X) body

model" — normals conditioned on SMPL-X normals, and an inference-time feedback loop that "alternates

between refining the SMPL(-X) mesh using the inferred clothed normals and then refining the normals"

[<https://arxiv.org/abs/2112.09127>, fetched]. ECON extends the same idea, treating the parametric

model as "a 'canvas' for stitching together detailed surface patches", registering its front/back

2.5D surfaces "with the help of a SMPL-X body mesh recovered from the image" and then

"'inpaint[ing]' the missing geometry" between them VERIFIED from the fetched ECON abstract

[<https://ar5iv.labs.arxiv.org/html/2212.07422>]. **The prior is the load-bearing component, not an

accessory.**

[CORRECTED 2026-08-08] This sentence previously quoted ECON as retraining IF-Nets "to be
conditioned on the SMPL-X body for robust shape infilling". That string is not in ECON's abstract;
the abstract wording now quoted is. IF-Nets+ is genuinely ECON's infilling network, but it is named
in the paper body, not the abstract, and was not verified this pass.

Our bounded_fit.py / fit_a14.py arm has no body prior at any stage — not at generation, not

at cleanup, not at fit, not at measurement. It is the exact configuration the field abandoned.

**2. Our fitting direction is the inverse of the industry's, and the inversion is the mechanism of

the damage. The production route is wrap a clean template ONTO the generated surface** —

non-rigid ICP with stiffness annealing (Amberg et al., CVPR 2007), productised as R3DS/Faceform

Wrap and, as of 2026, as Reallusion's CC Wrap, which exists specifically because "As AI-generated

3D models become increasingly prevalent in the industry, integrating these static assets into

professional animation pipelines has become a vital need", and which lets you "wrap any

models—alongside traditional 3D models and cloth meshes—into standard Character Creator (CC)

topology" (VERIFIED by fetch, Reallusion 2026 Vision, 2026-04-08). Our route **deforms the generated surface

to hit scalar girth targets**. The template route cannot produce a deformed body, because the

template is anatomically correct by construction and only its *pose and proportion* move. Our route

can produce nothing else once a measurement is wrong, because the mesh is the only thing that gives.

3. Anthropometry belongs in a shape-parameter space, never in vertex displacement. A2B

(CVSports@CVPR'25) converts tailor measurements into body shape parameters and replaces the

estimator's shape parameters with them, "guarantee[ing] consistent body shapes" and cutting MPJPE by

"over 30mm" [<https://arxiv.org/abs/2409.17671>, fetched]. A parametric shape space cannot represent

a 35%-oversized chest on a 14-year-old, so driving a measurement through it is *safe by

construction*. Driving the same measurement through free vertices is safe only if the measurement

is right — which brings us to the fourth finding.

**4. Our girth measurement itself deviates from the published protocol, and the deviation is

precisely the confound our own file documents. CALVIS locates the chest by segmenting the mesh

with skeleton joints and finding the axilla by ray-casting from the shoulder joint** to establish an

upper bound, then takes the extremum *within the chest region only*

[<https://ar5iv.labs.arxiv.org/html/2003.00834>, fetched]. Our fit_a14.py takes a whole-figure

horizontal section and asks a *topological* question of it (does a loop span the body axis), then —

when the spanning loop turns out to enclose the arms — declines to score the site. Declining is

honest and it is not a fix: the site stays unmeasured, and the shipped A3_FIT run, which had no such

guard, drove the 110.85 cm arms-plus-torso loop to an 81.93 cm chest target and cost the ladder its

single worst transition.

The one-line answer. The deformed body is not a generator failure and not a fitting-strength

failure. It is what happens when an unconstrained free-vertex fitter is driven by a measurement

taken without body-part segmentation, on a mesh with no anatomical prior anywhere in the chain.

Every one of those three has a published, cheap, licence-clean fix.

---

1. THE PARAMETRIC PRIOR — the industry route to an anatomically correct body

1.1 The prior as a regulariser: the ICON / ECON lineage

The problem statement is old and settled. Single-image human reconstruction with a global implicit

encoder is not pose-robust; it hallucinates non-human topology. The fix, repeated across a decade of

papers, is to make a parametric human the *conditioning signal* and the *completion prior*:

normals; a visibility-aware implicit surface regressor; an inference-time loop that refines the

SMPL-X fit and the normals against each other. VERIFIED from the fetched abstract.

surfaces, called d-BiNI, that are equally detailed, yet incomplete", registers them against "a

SMPL-X body mesh recovered from the image", and "'inpaints' the missing geometry between d-BiNI

surfaces". VERIFIED from the fetched abstract. Its stated diagnosis of the prior-free

alternative matches ICON's: implicit-function methods "produce disembodied limbs or degenerate

shapes for novel poses or clothes". *(The infilling network is IF-Nets+ and the stitching is

Poisson, per the paper body — not verified this pass; the abstract names neither.)*

The transferable rule is not "use ICON." It is: **wherever a generative process is free to invent

surface, a fitted parametric body must be present to say what a body is.** That is as true of a

2026 rectified-flow SLAT generator as it was of a 2021 occupancy net — the generators changed, the

failure mode did not, which is why TRELLIS still has a documented Janus problem on characters

(SEARCH-SUMMARY, datameister / practitioner reports).

1.2 The prior as a fitting target: SMPLify-X → OmniFit

The second use of the prior is the one that matters most for alteration. Rather than measuring a

generated mesh directly, you fit a parametric model to it and then work in the model's space.

fit of SMPL-X to 2D/3D observations. SEARCH-SUMMARY.

in this document. VERIFIED** from the fetched abstract:

which is **frequently impractical, especially for AI-generated assets where scale distortion is

common**." That is our generator's output described by name.

landmarks", a scale predictor that "rescales subjects to canonical proportions", and an

optional plug-and-play image adapter that fuses RGB "to compensate for missing geometry".

to 80.9 percent across daily and loose clothing scenarios."

and "the first to achieve millimeter-level accuracy on CAPE and 4D-DRESS benchmarks" — are

VERIFIED on the project page <https://zcai0612.github.io/OmniFit/>, not in the arXiv

abstract. *[CORRECTED 2026-08-08: both were previously credited to the arXiv abstract.]*

which is what makes §1.4's child-band problem bite, and what ties this paper to R-10's licence

question.

OmniFit's *shape* is the piece to steal even if the weights are never run: **dense landmark

prediction on the surface → scale normalisation → parameter solve.** Landmarks are what make a

measurement site anatomical rather than geometric. Our site picker resolves a chest by asking which

loop spans the symmetry axis; a landmark-based picker resolves it by asking where the axilla is.

One of those is a fact about a body and the other is a fact about a bounding box.

1.3 The models, their coverage, and their licences

The model survey in PIPE_CHARACTER_MODELS_2026-08-06.md §7 owns this table; this pass adds three

corrections and one new candidate rather than restating it.

ModelWhat it adds for FITTINGLicence read (2026-08-08)
SMPL / SMPL-X / SUPRthe field's reference shape spaces; every fitter above targets them; SUPR adds a sparse part decomposition with expressive head, articulated hand and a novel foot (Osman et al., ECCV 2022)NOT "licence-dead" — licence-PAID. The free model licence is non-commercial: "Any other use, in particular any use for commercial purposes, is prohibited." A commercial route is named on that same page, VERIFIED verbatim: "The software/data is also available for commercial licensing through Meshcapade.com. For commercial use please email smpl@max-planck-innovation.de" [<https://smpl.is.tue.mpg.de/modellicense.html>, fetched]. Live caveat: Meshcapade is now part of Epic Games and "the Meshcapade online platforms have been shut down" [<https://meshcapade.com/>, fetched], so the Meshcapade leg of that sentence may be stale — the Max Planck Innovation address is the contact to use. See GAP NOTE G-7
FLAME 2023 Openhead shape + expression space; the fitting target for every face-registration pipelineCC-BY-4.0, commercial permitted — and the carve-out is *only* the 2023 Open model; every earlier FLAME stays non-commercial. VERIFIED by fetch of the model-licence page: Max Planck "grants you the right to share and adapt the model for any purpose, including commercial use", while FLAME 2017/2019/2020 are limited to "non-commercial scientific research, non-commercial education, or non-commercial artistic projects"
Anny (NAVER Labs Europe)a parameter space covering "the full human lifespan – from infants to the elderly", built from MakeHuman community anthropometry plus WHO data rather than from 3D scansApache-2.0, VERIFIED: "Released under Apache 2.0 for unrestricted use", with "no registration or gated downloads" [<https://europe.naverlabs.com/blog/anny-a-free-to-use-3d-human-parametric-model-for-all-ages/>, fetched]. Do not select the smplx topology variant (sibling doc §7.1)
UMTRI Child Body Shape *(new to this survey)*a statistical child body model: 137 children ages 3-11, VITUS XXL scans at ~2 mm, driven by stature (100-160 cm), BMI (11-27), and sitting-height-to-stature ratio, emitting a mesh plus "3D coordinates of 138 surface landmarks and estimated joint center locations". Mean torso prediction error 10.4 mm, 95th percentile 24.0 mmUNSTATED. The research page carries no licence, no download terms and no distribution grant. VERIFIED by fetch — the absence is the finding. Treat as a *landmark-definition and validation reference*, not as shippable geometry

The UMTRI entry is worth its row for one reason: it publishes **138 surface landmarks and joint

centres on a child body**. That is exactly the missing input for §4's measurement fix, and using a

published landmark *definition* to inform our own site picker is a citation, not a redistribution.

1.4 The child problem, restated as a fitting problem

The sibling doc established that MHR excludes minors by construction and MetaHuman is still

childless at 5.8. This pass adds the fitting-side consequence: **every off-the-shelf fitter in §1.2

targets an adult-trained shape space.** OmniFit fits SMPL-X; SMPL-X's shape PCA is adult. Fitting a

14-year-old through an adult basis will find the nearest adult, and the residual — short limbs,

narrow shoulders, a large cranial fraction — will be pushed into whatever free-form layer sits on

top. This is not a reason to skip the prior. It is a reason to make the prior Anny (whose space

spans infants to elders) and to validate the age band against UMTRI's published child anthropometry

rather than against an adult standard.

---

2. GENERATION — what the image-to-3D models give, and what they structurally cannot

The sibling doc benched these. This section records only the craft-relevant properties: what

the output *shape* is, and what that costs downstream.

2.1 TRELLIS / TRELLIS.2 (Microsoft, MIT)

Structured LATent (SLAT) — a sparsely populated 3D grid carrying dense multiview features from a

vision foundation model, decodable to mesh, radiance field or 3D Gaussians, driven by rectified-flow

transformers [<https://microsoft.github.io/TRELLIS/>, arXiv 2412.01506, CVPR 2025 Highlight;

TRELLIS.2 at <https://github.com/microsoft/TRELLIS.2>]. The project page describes SLAT verbatim as

integrating "a sparsely-populated 3D grid with dense multiview visual features extracted from a

powerful vision foundation model", decodable to "Radiance Fields, 3D Gaussians, and meshes", with

"rectified flow transformers tailored for SLAT" as the backbone. VERIFIED by fetch.

*[CORRECTED 2026-08-08: previously said "CVPR'25 Spotlight"; the project page says Highlight.]*

Craft consequences, SEARCH-SUMMARY:

hair or a hood should be, "because the model's training data heavily biases human faces, and the

lack of rear-view information causes the diffusion process to fall back on its strongest priors."

conditioning.

"difficult to finetune due to high diversity in general shape" while ~1000 homogeneous screws

converged; ~20 GB VRAM at batch 1; overfitting from ~3,000 iterations, with the warning that

"decreasing training loss alone is a poor indicator of generalization quality"

[<https://datameister.ai/blog/three-challenges-in-finetuning-trellis/>, fetched].

2.2 Hunyuan3D-2.1 and Hunyuan3D-Omni (Tencent)

2.1 is shape (DiT) plus PBR paint [<https://github.com/tencent-hunyuan/hunyuan3d-2.1>, arXiv

2506.15442]. It remains disqualified for us on licence per the sibling doc §9, and that finding

is not reopened here.

Hunyuan3D-Omni (arXiv 2509.21245) is the craft-relevant one regardless of whether we may ship

it, because it demonstrates the mechanism: beyond images it accepts **point clouds, voxels, bounding

boxes and skeletal pose priors** as conditioning, unified by "represent[ing] them as a type of point

cloud", trained with difficulty-aware sampling that biases toward the hard signal (skeletal pose).

SEARCH-SUMMARY. **The lesson is transferable and licence-free: an image alone is an underdetermined

control signal for a body, and the field's answer is to add a skeletal/volumetric control channel.**

A fitted parametric body is precisely such a channel.

2.3 TripoSG (VAST)

1.5 B-parameter rectified-flow transformer over 2048 latent tokens, with an SDF VAE trained under

hybrid SDF + normal + eikonal supervision, on a 2 M-sample curated corpus [arXiv 2502.06608,

<https://github.com/VAST-AI-Research/TripoSG>]. This is our incumbent and the sibling doc's bench

held it. Craft note: an SDF/iso-surface output is a single fused watertight shell. It has no

parts, no seams, no edge flow and no aperture. Everything in §3 and §5 exists to convert that.

2.4 The commercial services, read for their production controls

These matter less as models than as evidence of what a production pipeline demands, because

each one has converged on the same feature list:

[<https://developer.hyper3d.ai/api-specification/rodin-generation-gen2_reset_v.md>]: a **TAPose

flag explicitly for humanoids** — "When generating the human-like model, this parameter control the

generation result to T/A Pose. When true, your model will be either T pose or A pose" — and

tiered mesh budgets, quad mode at 50k / 18k / 8k / 4k faces and raw (triangle) mode at

500k / 150k / 20k / 2k, with custom ranges of 500–1,000,000 raw faces and 1,000–200,000 quad

faces. From the 80.lv interview, VERIFIED by fetch: "BANG-based part decomposition for

flexible part-level refinement"; 3D-native texturing, "where colors and materials are generated

directly on the surface of the 3D model itself"; a "Smart Low-Poly" remesher that "uses a GPT-like

autoregressive approach to reconstruct meshes face by face"; and the candid admission that "AI

outputs can still be inconsistent, and they often need human refinement to meet production

standards", with caution about "final production quality, especially in complex cases requiring

strict topology, animation-ready edge flow, or highly specific art direction"

[<https://80.lv/articles/how-hyper3d-rodin-gen-2-5-is-bringing-production-level-control-to-ai-3d-generation>].

> [CORRECTED 2026-08-08] The TAPose flag and the quad/triangle tiers were previously

> attributed to the 80.lv interview, which contains neither. Both are real; both live in the API

> specification, which is now cited and added to SOURCES. The claims are unchanged in substance —

> only the citation was wrong.

"A million unoptimized triangles will slow down any real-time scene"; on why quads deform better,

"Quads flow in loops, which is exactly what animation needs. When an elbow bends, well-placed quad

loops compress and stretch predictably"; on rigging, "Uneven polygon density gives you lumpy

deformations at joints when a character bends"; on UVs, "Irregular topology makes seams

unpredictable and texture stretching hard to avoid"; and on where hand authoring still wins,

manual retopology lets an artist steer "edge loops around the eyes and mouth"

[<https://www.meshy.ai/tutorials/ai-retopology-guide>, VERIFIED by fetch].

Read the caveat honestly: the same page also says "Triangles are what game engines render

anyway" — the quad argument there is about *deformation and authoring*, not about runtime.

> [CORRECTED 2026-08-08 — FABRICATION] Three strings previously quoted from this page appear

> nowhere on it: "export a bloated, two-million-polygon asset into a secondary program";

> "quad-based meshes bend smoothly, while messy triangulated topology pinches and tears at elbows,

> knees, and shoulders"; and an "auto-rigging in ~30 s" figure. All three were checked as exact

> strings and returned no match. The page's real wording is quoted above and supports the same

> conclusion, so nothing downstream collapses — but the invented sentences are removed, including

> the two places §5 and R-6 re-quoted them.

Read together, the commercial consensus is a four-item checklist that no open generator emits and

every shipped character needs: **canonical pose, quad edge flow with joint loops, part separation,

UVs.**

2.5 Pose canonicalisation is a first-class stage, not a preprocessing detail

CharacterGen (Peng, Zhang, Guo, Cao, Hu — ACM TOG 2024 / SIGGRAPH'24, arXiv 2402.17214,

<https://zjp-shadow.github.io/publications/charactergen>) exists entirely to solve this: an

image-conditioned multi-view diffusion model "effectively calibrates input poses to a canonical

form while retaining key attributes of the input image", feeding "a transformer-based, generalizable

sparse-view reconstruction model", producing "3D pose-unified character meshes with high-quality and

consistent appearance, which can be directly utilized in downstream rigging and animation workflows".

VERIFIED — the first two quotes from the fetched arXiv abstract, the third from the fetched

project page (SIGGRAPH 2024 / ACM TOG 43(4), DOI 10.1145/3658217).

The craft rule: canonicalise the pose BEFORE any measurement or fit. A girth taken at a fixed

world-space height on a mesh whose arms hang against the flanks is a different quantity from the

same girth on an A-posed mesh — which is the entire content of our chest confound.

---

3. ALTERATION — three fitting doctrines, and the one nobody in the literature uses

This is the section the domain brief asked for, and it is where our stack diverges.

3.1 Doctrine A — deform the generated surface to hit scalar targets

Free vertices, driven by a displacement field, toward numeric girth targets. **This is

build/3d/hi3dgen/fit_a14.py and build/3d/best_a14/bounded_fit.py.**

Properties: preserves the generator's surface detail exactly where it is not driven; requires no

template, no correspondence and no licence; and is completely unconstrained — nothing in the

operator knows what a body is, so a wrong target or a wrong measurement translates one-for-one into

deformed anatomy. bounded_fit.py is a genuinely good mitigation of this (per-site attribution, a

greedy accumulation gated on a mutation-proven sensitivity floor, a published alpha ladder, and a

confound control on every rejection) — but mitigation is what it is. It buys the right to *stop*;

it does not buy anatomical correctness, and its own record shows the stop point is "accept almost

nothing", which is the correct answer to the wrong question.

**Where the literature uses this doctrine: as a final detail-transfer layer, on top of a fitted

template, never as the primary shape operator.**

3.2 Doctrine B — wrap a clean template onto the generated surface

Non-rigid ICP: take a base mesh with the topology you want and deform it to the target surface.

The canonical algorithm is **Amberg, Romdhani & Vetter, "Optimal Step Nonrigid ICP Algorithms for

Surface Registration", CVPR 2007** (DOI 10.1109/CVPR.2007.383165) — the algorithm loops over a

series of decreasing stiffness weights, incrementally deforming the template toward the target so

that global and then local deformation is recovered, under a locally-affine regulariser that

penalises the difference in transformation between neighbouring vertices. Landmark-guided

initialisation precedes the non-rigid stage; staged coarse-to-fine registration with increasing

correspondence sets is standard.

[CORRECTED 2026-08-08] The paper, authors, venue and DOI are VERIFIED via Semantic Scholar.
The previously cited PDF mirror (vigir.missouri.edu) is unreachable — connection refused —
and no mirror served the abstract text this pass, so the sentence above is UNVERIFIED-QUOTE:
quotation marks removed and the wording paraphrased, because the exact phrasing could not be
confirmed. The method description is corroborated by the reference implementation, which states it
is "based on Amberg et al" and implements "local affine transformations, stiffness constraints,
and Laplacian smoothing terms" [<https://github.com/golkir/optimal-step-nonrigid-icp>, fetched].
Re-verify the abstract wording against IEEE Xplore before quoting it anywhere.

Productised, this is the actual character pipeline:

scan's surface; the product page's own framing, VERIFIED verbatim, is that "Wrap is used to

convert huge sets of facial/body scans into a consistent topology, which provides a great source

of training data for facial generation, statistical, medical, machine learning and other

applications." Wrap4D does the same for sequences. Framestore, The Mill, EA Canada and

Rocksteady Studios are VERIFIED as named users (client logos on the product page)

[<https://faceform.com/wraporiginal/>, fetched].

*[CORRECTED 2026-08-08: the first clause was previously in quotation marks as the vendor's own

words; that exact sentence is not on the cited page, so it is now an unquoted paraphrase and the

one sentence that IS verbatim carries the citation.]*

because "AI-generated 3D models become increasingly prevalent" and lets you "wrap any

models — alongside traditional 3D models and cloth meshes — into standard Character Creator (CC)

topology". SEARCH-SUMMARY.

a 2026 research instance of the same doctrine: "a coarse-to-fine optimization pipeline that

refines a rigged template across three stages -- rig, joint, and vertex", producing "meshes with

semantically meaningful edge flow and industry-grade topology", validated by a user study of

22 professional technical artists. VERIFIED by fetch. Note the stage order: **rig first,

joints second, vertices last** — free-vertex motion is the *smallest and last* operator, after

the skeletal and articulated degrees of freedom have absorbed everything they can.

That stage order is the single most actionable sentence in this document.

3.3 Doctrine C — solve in the parameter space, then transfer detail

Fit a parametric model to the generated surface (§1.2), enforce the anthropometry **as shape

parameters** (§0 finding 3, A2B), pose it canonically, and then transfer the generator's

high-frequency surface as displacement/normal detail onto the parametric result.

This is what build/3d/cage/body_stage/solve_metahuman_body_age.py already argues for, in this

repo, in its own docstring: *"solve the body parametrically in the editor at the rung's own

measurements and export that, instead of conforming a template afterwards."* **We have both

doctrines live in this repository and they have never been adjudicated against each other.**

3.4 The verdict

Doctrine A (ours)Doctrine B (wrap)Doctrine C (parametric solve)
Can it emit a deformed body?yes, triviallyno — template is correct by constructionno — outside the shape space
Preserves generator detailbestvia detail transfervia detail transfer
Emits quads / edge flow / UVsnoyes, inherited from templateyes, inherited from model
Emits a rignoinherited if the template is riggedyes
Needs correspondencenoyes (landmarks)yes (landmarks)
Licence costnonetemplate-dependentmodel-dependent
Used in the literature as primarynoyesyes

Doctrine A is not wrong as a *layer*. It is wrong as the *only* layer. The published pipelines run

C or B as the shape operator, then A as a bounded detail pass — which is exactly what

bounded_fit.py's alpha ladder is already built to control, just applied at the wrong point in the

chain.

---

4. MEASUREMENT — how a girth is actually taken off a mesh

Our fitter is driven by girth targets, so the measurement operator is load-bearing and deserves its

own section. The published protocol has three components. We implement one and a half.

Component 1 — the plane and the section. Slice with a plane parallel to the floor, extract the

intersection curve. CALVIS: "a plane π_j parallel (with normal n→||) to the floor to intersect the

mesh at point q_j", slicing "every m-meters along the y-axis"; the boundary is "a polygonal curve

consisting in segments with length s_i" [<https://ar5iv.labs.arxiv.org/html/2003.00834>, fetched].

We do thissection_probe.read_section.

Component 2 — the taut band. A tape measure does not follow concavities, so a raw section

perimeter under-reads a real tape over a concave region. One family of methods answers this with the

2D convex hull of the contour. CALVIS itself does not: it surveys, in §2.3, "methods that

calculate waist and chest circumference by slicing the mesh on a fixed plane and compute the convex

hull of the contour" and then explicitly departs from them, computing instead the boundary length of

the intersection curve directly. VERIFIED by fetch — the strings "taut" and "taut tape or band"

appear nowhere in CALVIS.

[CORRECTED 2026-08-08 — FABRICATION] This component previously asserted that the published
protocol takes the convex hull "to better simulate the taut tape or band", and attributed a
"36 measurements: 23 lengths, 13 circumferences" figure to SMPL-X measurement toolkits. Neither
survives: the quoted phrase is in no fetched source, CALVIS is the *counter*-example rather than
the exemplar, and the one SMPL-X anthropometry toolkit checked
(<https://github.com/DavidBoja/SMPL-Anthropometry>) defines 16 measurements — 7 lengths and 9
circumferences — and does not use a convex hull either. The convex-hull family is real (CALVIS
cites it as prior work); the claim that it is *the* standard, and the numbers, are withdrawn.

Where that leaves us. section_probe.cluster_reading computes an angular-bin radial envelope

around the cluster centre and reports girth_cm from it, with a positive control asserting envelope

and exact perimeter agree on simple non-annular sections. That is a taut-band approximation and it is

defensible. It now sits between two published alternatives — hull-of-contour and raw-perimeter — and

has been compared against neither. See GAP NOTE G-4.

**Component 3 — restrict the section to the body part. This is the one we do not do, and it is the

one that caused the damage. CALVIS segments the mesh into regions using skeleton joints** as

boundaries, and for the chest specifically: "The chest circumference c_c is measured below the

armpits ... using the shoulder joint as a hint to locate the axilla and establish a upper bound",

with the axilla found by ray-casting from the shoulder joint and the chest region then defined

as the vertices between the waist and that axilla reference. VERIFIED by fetch.

Our fit_a14.py replaces part-restriction with a topological rule (take the loop that spans the

symmetry axis) plus a width bound (reject if the spanning loop is wider than the spec's widest

soft-tissue breadth). The file's own docstring is explicit that this is a deliberate substitution

for the hand-declared confounds in proportion_review.py. On a mesh with arms clear of the flanks

it works. On our A14 mesh it does not: bounded_fit.py records that the loop's **width stayed under

the 45.07 cm bound while its perimeter enclosed both arms** — a case the width test cannot see, and

which part-restriction would never have produced, because the arm vertices would not have been in

the section at all.

The fix is small and it needs no new model. A joint/landmark set on the mesh (from a fitted

parametric body per §1.2, or from a landmark predictor, or in the interim from the existing

harness/asset_factory/multiview_registration.py landmark machinery) gives an axilla height and a

part label per vertex. Restrict the section to torso vertices; the 110.85 cm loop stops existing;

the site becomes scorable instead of rejected; and the greedy accumulation in bounded_fit.py gets

a real chest to accept instead of a confound to decline.

A caution from the same literature. "Investigating Anthropometric Fidelity in SAM 3D Body"

(Aiersilan, Cheng, Hahn — arXiv 2601.06035) exists because anthropometric error in AI body

reconstruction is a live problem even in strong 2026 models. VERIFIED by fetch: the paper

"reveals a specific and consistent limitation: the model struggles to reconstruct detailed

anthropometric deviations" in populations with distinctive morphology — muscle atrophy, scoliosis,

pregnancy. That is directly on point for us, because **a 14-year-old is exactly such a deviation from

an adult-trained prior** (§1.4). It is cited here for the *shape* of the concern; no magnitude was

extracted. See GAP NOTE G-9.

---

5. RETOPOLOGY, REPAIR, AND THE ROUTE TO A GAME-READY SURFACE

An SDF iso-surface is not an asset. The published conversion path is stable and old:

Automatic quad remeshing.

ACM TOG (SIGGRAPH Asia 2015), <https://igl.ethz.ch/projects/instant-meshes/>,

<https://github.com/wjakob/instant-meshes>. VERIFIED verbatim from the ETH project page:

"a unified local smoothing operator that optimizes both the edge orientations and vertex positions

in the output mesh", which "produces meshes with high isotropy while naturally aligning and

snapping edges to sharp features", "executes instantly (less than a second) on meshes with hundreds

of thousands of faces", and can "process a variety of input surface representations, such as point

clouds, range scans and triangle meshes". (The page also records an SGP Outstanding Software Award

2020 and a SIGGRAPH Asia Test of Time Award 2025 — this is settled, load-bearing technique, not a

novelty.)

even quad field, with Adaptive Size trading quad density against curvature, plus Density,

Angle, Hard Edges and Symmetry controls, and hosts in Blender, Maya, 3ds Max, ZBrush and Houdini

(SideFX Labs). User doc: <https://www.exoside.com/quadremesherdata/QuadRemesher_1.0_UserDoc.pdf>.

SEARCH-SUMMARY.

GPT-like autoregressive approach to reconstruct meshes face by face, producing artist-style

triangle and quad geometry", still in beta by the vendor's own admission (VERIFIED, 80.lv).

The critical limitation of all of them, and it is the reason Doctrine B exists. Automatic

remeshers produce *even, curvature-adaptive* quads. They do not produce anatomical edge flow

loops around the eyes and mouth, loops at the elbow, knee and shoulder that let the mesh bend

without pinching. Meshy names both halves of this: quad loops matter because "when an elbow bends,

well-placed quad loops compress and stretch predictably", and "uneven polygon density gives you

lumpy deformations at joints when a character bends" — while the placement that a face needs, "edge

loops around the eyes and mouth", is what the page attributes to *manual* retopology, not to the

automatic pass. A wrapped template carries that edge flow for free because a human authored it once.

**Auto-retopo is the right tool for props and creatures; it is the wrong tool for a hero character's

deforming regions.**

*[CORRECTED 2026-08-08: the sentence previously quoted here — unstructured topology "pinches and

tears at elbows, knees, and shoulders" — is not on the cited page. Replaced with the page's verified

wording, which carries the same point.]*

Manual retopology with shrinkwrap remains the practitioner fallback: build the new quad cage and

let a Shrinkwrap modifier snap every placed vertex to the high-poly surface. SEARCH-SUMMARY across

current Blender workflow guides.

Repair. Generated meshes carry non-manifold edges, self-intersections and stray internal shells.

Our chain already handles the last of these (build/3d/hi3dgen/clean_shells.py, which

bounded_fit.py's record notes costs zero measurable likeness — A1_GENERATE and A2_CLEAN are

identical to eight decimals on all four channels and all three views). That is a good precedent and

the same "prove the cleanup is free" discipline should extend to any remesh stage.

The photogrammetry lineage is the same pipeline. Scan-to-game-asset practice — dense irregular

mesh → retopologise → rebuild UVs → bake normals → author LODs → wrap shared topology → sculpt

blendshapes as ZBrush layers on the neutral — is decades old and directly transferable, because an

AI mesh has exactly the properties of a scan: dense, irregular, unrigged, unwrapped. The GDC talk

lineage here (DICE, *Star Wars Battlefront* photogrammetry) is on the GDC Vault; practitioner

write-ups at gamedeveloper.com and 80.lv carry the workflow. SEARCH-SUMMARY.

---

6. PUBLISHED AI-MESH-TO-PRODUCTION-ASSET WORKFLOWS

Three published examples of the whole chain, each confirming the same shape.

DreamCharacter-1 (arXiv 2607.07817) — "a lightweight post-adaptation framework that

calibrates pretrained 3D foundation models toward high-fidelity, production-ready 3D character

generation", with three components: "geometry post-training, which enhances fine-grained surface

details through geometric preference optimization; texture post-training, which synthesizes

high-resolution textures and refines the appearance of occluded regions; and inference

acceleration". VERIFIED from the fetched abstract. The instructive part is what the abstract

does not claim: no parametric prior, no canonicalisation, no retopology, no rigging, no UV

policy. It improves the *generation*; it does not close the *production* gap. See GAP NOTE G-6 —

this is the paper closest to "generate rich, fit lightly", and it is silent on exactly the stages

where our arm broke.

The Rodin production checklist (§2.4) is the most complete vendor statement of what production

demands: canonical T/A-pose, quad tiers, part separation, 3D-native texturing, and explicit

acknowledgement that strict topology and animation-ready edge flow still need a human.

Reallusion CC Wrap (§3.2) is the clearest single signal in the 2026 landscape: a major character

toolchain vendor shipped a wrap tool because AI meshes arrive without usable topology, and the

answer they chose was to conform them to an authored standard rather than to clean them in place.

---

SOURCES

Every item below was consulted. Fetch state is marked: [F] fetched and quoted, [S]

search-result synthesis only, [X] cited URL unreachable or wrong — see the inline correction.

Audit stamp 2026-08-08: every source carrying a load-bearing claim was re-fetched and checked

against what this document says of it. Existence and attribution are confirmed for all of them.

Where the wording claimed was not in the source, the quote was removed or replaced with the source's

real wording, marked [CORRECTED 2026-08-08] inline.

Papers — parametric priors and human fitting

Papers — measurement protocol

Papers — registration and topology

Papers — generation

Manuals, vendor documentation and practitioner tutorials

Licences

---

ACTIONABLE RULES — mapped to our stack, by file

R-1. No free-vertex fit runs without an anatomical prior in the same chain

Files: build/3d/hi3dgen/fit_a14.py, build/3d/best_a14/bounded_fit.py.

Rule: Doctrine A (§3.1) is permitted only as a bounded detail pass on top of a Doctrine B or

C result — never as the primary shape operator. Grounding: ICON's "broken or disembodied limbs"

finding and its SMPL-X-conditioned fix; the §3.4 table.

Test that this is armed: a run record that names no prior mesh or no fitted parametric model

should refuse to emit, exactly as bounded_fit.py already refuses when its positive control fails.

R-2. Stage order is rig → joint → vertex, and vertices move last and least

Files: build/3d/hi3dgen/fit_a14.py, build/3d/cage/solver_blender/bl_conform_ladder.py.

Rule: absorb proportion error in skeletal scale and joint placement before any vertex

displacement is computed. Grounding: arXiv 2605.04524's three-stage coarse-to-fine template

refinement, user-validated by 22 professional technical artists.

Consequence for us: a 35% chest residual should first be tested as a *skeleton scale* error

(is the ribcage joint span wrong?) and only then as a surface error.

R-3. Restrict every girth section to its body part before measuring it

Files: build/3d/hi3dgen/fit_a14.py :: resolve_sites / measure_all,

build/3d/hi3dgen/section_probe.py :: read_section.

Rule: implement CALVIS component 3 — segment by skeleton joints, locate the axilla by ray-cast

from the shoulder joint, and pass read_section only the vertices of the target part. The

axis-spanning rule and the width bound stay as a second guard, not the first.

Why this is the highest-value single change in this document: it converts the chest site from

*rejected* to *scorable*, and it removes by construction the 110.85 cm loop that

bounded_fit.py's confound control exists to explain.

R-4. Anthropometry is enforced in a shape-parameter space, not by displacement

Files: build/3d/characters/body_specs/BODY_AGE_*_RESEARCH.json,

build/3d/cage/body_stage/solve_metahuman_body_age.py.

Rule: girth targets are inputs to a parameter solve (A2B pattern), and the mesh is

*sampled* from the solved parameters. Free-vertex girth driving is retired as a primary operator.

Grounding: A2B, "guarantees consistent body shapes", >30 mm MPJPE improvement.

R-5. Canonicalise the pose before any measurement or fit

Files: the whole build/3d/finish_a14/ chain; build/3d/hi3dgen/run_a14_arms.py.

Rule: the mesh entering measurement is A-pose or T-pose with arms clear of the flanks.

Grounding: CharacterGen's entire premise; Rodin's TAPose: true shipping as a rigging prerequisite.

Note: this alone would have prevented the A3_FIT defect, independently of R-3.

R-6. Auto-retopology is for props and creatures; hero deforming regions get a wrapped template

Files: any future remesh stage; build/3d/finish_a14/uv/.

Rule: Instant Meshes / QuadRemesher may serve the accessory and creature classes. A hero

character's face, shoulders, elbows and knees take their edge flow from an authored template via

non-rigid ICP. Grounding (re-checked 2026-08-08, all verified): Rodin's admission that "AI

outputs ... often need human refinement to meet production standards", specifically "in complex

cases requiring strict topology, animation-ready edge flow, or highly specific art direction";

Meshy's statement that "uneven polygon density gives you lumpy deformations at joints when a

character bends" and that the eye/mouth loop placement a face needs comes from *manual* retopology;

and the existence of R3DS/Faceform Wrap and Reallusion CC Wrap as shipping products, the latter

built because "AI-generated 3D models become increasingly prevalent in the industry".

*[CORRECTED 2026-08-08: the first grounding clause previously cited a Meshy sentence that does not

exist. The rule stands on verified evidence; only its citation changed.]*

R-7. Every cleanup or remesh stage proves it is free before it is trusted

Files: build/3d/hi3dgen/clean_shells.py (the precedent), any new remesh stage,

build/3d/best_a14/p1_score.py.

Rule: the A2_CLEAN precedent — identical to A1_GENERATE to eight decimals on all four channels

and all three views — is the house standard. Any topology-changing stage publishes the same

comparison through p1_score.py against the C4 sensitivity floor.

R-8. Add a control channel beyond the image before blaming the generator

Files: build/3d/hi3dgen/run_trellis2_a14.py, build/3d/bench/.

Rule: an image is an underdetermined control signal for a body. Before benching another

generator, test whether a skeletal / volumetric conditioning channel closes the gap.

Grounding: Hunyuan3D-Omni's point-cloud/voxel/bbox/skeletal-pose conditioning, trained with the

skeletal signal deliberately upweighted as the hard case.

R-9. Landmarks are the interface between the plates and the mesh

Files: harness/asset_factory/multiview_registration.py,

harness/asset_factory/face_landmark_warp.py, build/3d/best_a14/head_features/.

Rule: we already have landmark machinery on the 2D side. Extend it to emit **3D surface

landmarks and joint centres** on the mesh, and make those — not world-space heights — the anchors

for every measurement site. Grounding: OmniFit's dense-landmark formulation; UMTRI's published 138

child surface landmarks plus joint centres as a definition reference.

R-10. The licence read on SMPL is "paid", not "dead"

Files: docs/pipeline_review/tech_research/PIPE_CHARACTER_MODELS_2026-08-06.md §7.1,

docs/licence_records/.

Rule: under the licence-reads-never-conservative law, record SMPL/SMPL-X/SUPR as

commercially licensable — a price, not a prohibition — with the free model licence being

non-commercial. The verified contact is the one printed on the model licence page itself:

smpl@max-planck-innovation.de. Keep Anny as the preferred route on cost and on the child band,

but stop stating that the SMPL family is unavailable — that is an over-conservative read and it

removes every off-the-shelf fitter in §1.2 from consideration for the wrong reason.

Do not assert terms we have not been quoted. Meshcapade, the historical sublicensor, is now part

of Epic Games and its online platforms are shut down; its licensing page 403s. So the *route* is

verified and the *price and terms are unknown*. The action is: email the Max Planck Innovation

address and record the reply in docs/licence_records/ before any SMPL-targeting fitter is adopted.

[CORRECTED 2026-08-08 — FABRICATION] This rule previously asserted that Epic acquired
Meshcapade "in February 2026" and that SMPL licensing consequently "moved to Max Planck Innovation,
independent of Epic", quoting it as staying "available to researchers and commercial licensees".
The acquisition is real and is now cited. The February date, the transfer narrative, the
independence claim and the quoted sentence are supported by no source fetched: meshcapade.com gives
no acquisition date (only an 18 April platform shutdown), and the Max Planck Innovation address is
a long-standing contact printed on the model licence page, not the product of a transfer. The
rule's conclusion — licence-PAID, not licence-dead — survives on verified evidence, which is why it
is retained rather than withdrawn; the invented corporate history is removed.

---

WHAT WE ADOPT

Adopt now, no GPU hour required:

1. R-3, the part-restricted girth section. A pure-Python change inside

fit_a14.py + section_probe.py. It is the smallest change with the largest measured

consequence, and bounded_fit.py already has the instrumentation to prove it worked (re-run the

solo attribution; the chest row should move from UNRESOLVED/rejected to a scored site with a

plausible residual).

2. R-5, pose canonicalisation as a precondition. Declared as a gate on the measurement stage.

3. R-7, the prove-it-is-free rule, extended from clean_shells.py to every future

topology-changing stage.

4. R-10, the SMPL licence re-read, landed as an in-place supersession in the sibling PIPE

document's §7.1 per the pipe-dossiers-bind law.

Adopt as the route, pending the director's ratification:

5. Doctrine C as the primary shape operator, Doctrine A demoted to a bounded detail pass.

Concretely: Anny (Apache-2.0, no gated download, spanning "the full human lifespan – from

infants to the elderly") as the body

prior, solved to the BODY_AGE_*_RESEARCH.json girths as shape parameters (R-4), posed

canonically, with the TripoSG generation's high-frequency surface transferred on top as

displacement — and bounded_fit.py's alpha ladder repurposed to control that transfer's

strength rather than the girth drive's. This keeps every strength of the current arm (the

generator's detail, the armed lens, the sensitivity-floor stop, the per-site attribution) and

removes the one property that makes a deformed body possible.

6. R-6, wrapped templates for hero deforming regions — non-rigid ICP with stiffness annealing

(Amberg), landmark-initialised from R-9.

Do not adopt:

measured verdict that TripoSG holds, and its own finding is that the generator was never the

defect.

carries its own licence question (R-10). Its method shape (dense landmarks → scale

normalisation → parameter solve) is adopted; its code is not, yet.

the model carries no published licence.

---

GAP NOTES — where our named stack deviates from the practice found

*The audit phase consumes this section. Each note names the file, the practice, the deviation, and

whether it is a defect or a declared trade.*

**G-1 — build/3d/best_a14/bounded_fit.py + build/3d/hi3dgen/fit_a14.py: no anatomical prior

anywhere in the chain.** Practice (§1.1, §3.2, §3.3): every published human-shape pipeline carries a

parametric body as regulariser, fitting target, or template. Ours carries none at generation,

cleanup, fit or measurement. Defect — this is the root cause named in the brief, and it is the

one deviation from which the others follow.

G-2 — fit_a14.py runs Doctrine A as the primary shape operator. Practice (§3.4): the

literature uses free-vertex displacement only as a final detail-transfer layer on top of a fitted

template or a solved parametric body. Defect of ordering, not of implementation

bounded_fit.py is a well-built instance of the wrong stage position.

G-3 — no part-restriction in the girth measurement.

section_probe.read_section sections the whole figure; fit_a14.resolve_sites substitutes an

axis-spanning topological rule plus a width bound for CALVIS's skeleton-joint segmentation and

axilla ray-cast. bounded_fit.py's own confound control records the failure mode: width under the

45.07 cm bound, perimeter enclosing both arms. Defect. Highest-value fix in this document (R-3).

**G-4 — section_probe.cluster_reading's angular-bin radial envelope has never been compared against

either published alternative. Practice (§4 component 2): the literature carries two** treatments

of a section — convex hull of the contour (surveyed by CALVIS as prior work) and raw intersection

boundary length (CALVIS's own choice). Ours is a third thing: a defensible taut-band approximation

with a positive control on simple non-annular sections. The three coincide on a convex section and

diverge on a concave one — which is exactly what a torso section is. **Undeclared trade. Cheap to

test: measure all three on the same sections and publish the delta.**

*[REVISED 2026-08-08: this note previously called the convex hull "the published protocol" on the

strength of a quote that no source contains. CALVIS explicitly declines the hull. The gap is real

and if anything wider than stated — we differ from two published options, not one.]*

G-5 — two doctrines live in this repo and have never been adjudicated.

build/3d/cage/body_stage/solve_metahuman_body_age.py argues Doctrine C explicitly in its docstring

("solve the body parametrically ... instead of conforming a template afterwards"), while

build/3d/hi3dgen/fit_a14.py runs Doctrine A. No document ranks them, and

build/3d/V2_ROUTING_RATIFIED.json leaves the garmented humanoid body on HOLD. **Process gap — an

unmade decision, not a wrong one.**

**G-6 — "generate rich, fit lightly" has one published cousin and it is silent on our failure

stages.** DreamCharacter-1 (§6) is the closest published thing to our arm's philosophy, and its

abstract claims only geometry/texture post-training and inference acceleration. It offers no

parametric prior, no canonicalisation, no retopology, no rigging, no UV policy. **Our arm's

philosophy is not refuted by the literature so much as unaddressed by it** — which means the

evidence for it is ours to produce, and currently the only evidence on record is

LIKENESS_STAGE_LADDER_A14.json's verdict that A3_FIT was the worst transition on the chain.

G-7 — the sibling doc's §7.1 states the SMPL family is "licence-dead for us." Practice

(§1.3): the SMPL model licence page itself names a commercial route — "also available for commercial

licensing through Meshcapade.com. For commercial use please email smpl@max-planck-innovation.de"

(VERIFIED by fetch). **Over-conservative read, contrary to the licence-reads-never-conservative

law.** It is load-bearing: it removes SMPLify-X, OmniFit and every SMPL-X-targeting fitter from

consideration on a reason that is a price, not a prohibition. **Correct in place in the sibling

document — but correct it to what is verified, not more.**

*[REVISED 2026-08-08]* Two cautions the earlier draft did not carry. (a) The correction landing

in the sibling doc must say "commercially licensable, terms unquoted, contact

smpl@max-planck-innovation.de" — not that licensing "moved to Max Planck Innovation" after the

acquisition, which no source states. (b) Meshcapade "is now part of Epic Games" and "the

Meshcapade online platforms have been shut down"; its licensing page 403s. The half of the licence

page's sentence that points at Meshcapade.com may therefore be stale, which makes the terms

genuinely unknown rather than merely unquoted. **Get the reply in writing before this unlocks any

build decision.**

G-8 — CSM (Common Sense Machines) was named in the brief and not reached this pass. No source

fetched, no licence read, no capability claim. Coverage gap.

G-9 — the anthropometric-fidelity number is still missing, but the finding is now grounded.

arXiv 2601.06035's abstract was retrieved on the 2026-08-08 audit pass: the paper "reveals a

specific and consistent limitation: the model struggles to reconstruct detailed anthropometric

deviations" for atypical morphologies (muscle atrophy, scoliosis, pregnancy). **No magnitude was

extracted, so §4 still cites the concern without a number. Evidence gap — pull the tables before

any claim about how large AI anthropometric error is.** Note the direct relevance: an adolescent is

an anthropometric deviation from an adult-trained prior, which is §1.4's problem measured on someone

else's model.

G-10 — no landmark layer exists on the 3D side. harness/asset_factory/multiview_registration.py

and face_landmark_warp.py operate on plates. Every practice in §1.2, §3.2 and §4 assumes 3D

surface landmarks and joint centres on the mesh. **Missing component — it is the shared prerequisite

of R-2, R-3, R-4 and R-6, which makes it the first thing to build.**

G-11 — no retopology stage exists at all. The chain runs generation → clean shells → fit → UV →

bake. There is no quad remesh and no template wrap, so the shipped surface carries the generator's

triangulation into UV and bake. Practice (§5): every production chain retopologises, and hero

deforming regions get authored edge flow. **Structural gap, and it also bounds the LOD budget the

canon sheet names (24 k / 60 k / 120 k).**

G-12 — pose is not canonicalised or asserted anywhere. No stage checks or enforces A-pose/T-pose

before measurement, and the A14 mesh's arms lie against the flanks — the exact condition that makes

a torso section enclose them. Defect, and the cheapest independent fix for G-3's symptom.

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