The ED four-actor station is over its authored Quest triangle budget after #683 traded helper
eyelashes for fitted ones.
Measured on main, 2026-08-27
ED four-actor station: 192,406 triangles of ACTORS ALONE
authored budget: 180,000 (asset-generation-pipeline.md:87)
over by: 12,406 (6.9%)
the-station-fits-its-budget-and-still-looks-like-people.test.ts is RED. Two further contracts are
red from the same change:
mpfb2-actor-is-stripped-of-helpers clauses (1) and (5): aisha BODY triangles now measure 36,972
where the documented stripped body is 26,756, and the destructive probe reads 79,362 against the
same 26,756 expectation. The lash geometry is being counted as body.
every-actor-has-brows-lashes-and-teeth clause (3), which the worker records as pre-existing.
This was predicted and declared, not discovered
#683's worker named all of it in its OUT-OF-SCOPE section before I accepted the land: "The #695
budget contract is now RED (predicted by this card's own cost analysis)." The trade was 368-tri hm08
helper lashes for 16,632-tri fitted mindfront_eyelashes_01 across 11 actors.
Accepting that land was my call and the regression is a consequence of it, not a surprise. The
fitted lash is the correct D1 direction — wire the proven CC0 pack rather than keep hand-rolled
helper stubs — and the budget is a real Quest constraint. Both are true, which is why this is a card
and not a revert.
What must NOT be the fix
Raising the 180,000 figure. It is authored in asset-generation-pipeline.md:87 as a hardware
constraint, and moving a threshold to clear an observation buys the observation instead of the
property.
Open questions this card does not answer
Whether the lash count should be decimated per-actor for the ED station, whether lash geometry should
be excluded from the BODY measurement the way garment triangles already are per #321, or whether
the fitted pack has a smaller variant than mindfront_eyelashes_01 — the worker records that as
already the smallest the pack offers at 8,316 quads.
Also unanswered: whether the fitted lashes are visibly better at conversational distance. #683's
own prompt requires a reviewer-graded pixel verdict and it has not been given. If they are not
visibly better, the trade is bad on both axes and reverting becomes the honest answer.
No ## done_when yet — the remedy is a design choice among the three above, and inventing a contract
before that choice is made would encode a guess.
OPERATIONALIZED 2026-08-28
The revert-or-keep fork is closed. At a 1024 head framing with the head at 0.80 of frame, the fitted
lashes read as lashes — strand-textured fringe, inner to outer corner, tapering, bilateral, no iris
occlusion. Graded on #683. So the pack stays and the overage is recovered by decimation.
Measured on HEAD, verified by direct survey of the four ED GLBs
mpfb-gown-adult-patient total 69,547 lash 4,603
mpfb-clinical-nurse-adult total 41,866 lash 3,237
mpfb-family-partner-adult total 36,582 lash 3,239
mpfb-clinical-physician-adult total 44,620 lash 3,297
ED TOTAL 192,615
ED LASHES 14,376
NON-LASH 178,239
BUDGET 180,000 -> lash allowance 1,761 across all four
That is roughly 440 triangles per actor against ~3,600 today: an aggressive rung, not a comfortable
one. It must be measured and graded, not assumed to work.
THIS CARD ABSORBS #748, because the contract cannot pass otherwise
the-station-fits-its-budget-and-still-looks-like-people has three standing clauses and no planted
RED. Two are red: clause (1) on the budget, and clause (3) because
mpfb-gown-adult-patient ships 4 UV-bearing primitives where 16 are expected (#748, bisected to
c66c012c inside #714).
A run: on that file cannot pass while either stands. Both need a re-bake of the same four assets,
so splitting them would leave this card with a contract nobody could satisfy. Fix both.
The levers, and what is refused
Selective lash decimation as an ED-specific LOD. Do NOT replace the source pack —
mindfront_eyelashes_01 is already the smallest variant it offers. Do NOT spend already-graded
hands, face or garment detail to subsidise eyelashes unless a lash-only sweep fails. Do NOT raise
the 180,000 figure; it is authored at asset-generation-pipeline.md:87 as a hardware constraint.
If no lash-only result at or under 1,761 remains legible, say so and stop — that is a successful
finding. The named fallback is a hybrid supporting-actor LOD, which requires REPLANTING the
body-count counterweight in an-actor-wears-fitted-eyelashes-not-helper-stubs.test.ts, never
weakening it during execution.
The verdict this card cannot close by itself
My grade was on mpfb-ob-patient-aisha at the full 16,632-triangle source, which is not an ED
actor. After optimisation the orchestrator must grade an actual ED actor at the same 1024/0.80
framing via isolated-subject-harness.ts --head-crops. A machine clause cannot assert legibility.
Report these
If any proof cannot pass as written, or passes trivially, or asserts the opposite direction from the
defect, say so in your first report at the moment you find it. If satisfying a clause would make the
actors visibly worse, say so and satisfy it anyway. Name out-of-scope wrongness with the object and
what it looks like.
done_when
- run:pnpm exec vitest run tools/openclinxr/evidence/the-station-fits-its-budget-and-still-looks-like-people.test.ts
- run:pnpm exec vitest run tools/openclinxr/evidence/an-actor-wears-fitted-eyelashes-not-helper-stubs.test.ts
- changed:apps/ui-xr/public/generated-humanoids/mpfb-gown-adult-patient.glb
factory_step: body_param
The ED four-actor station is over its authored Quest triangle budget after
#683traded helpereyelashes for fitted ones.
Measured on main, 2026-08-27
the-station-fits-its-budget-and-still-looks-like-people.test.tsis RED. Two further contracts arered from the same change:
mpfb2-actor-is-stripped-of-helpersclauses (1) and (5): aisha BODY triangles now measure 36,972where the documented stripped body is 26,756, and the destructive probe reads 79,362 against the
same 26,756 expectation. The lash geometry is being counted as body.
every-actor-has-brows-lashes-and-teethclause (3), which the worker records as pre-existing.This was predicted and declared, not discovered
#683's worker named all of it in its OUT-OF-SCOPE section before I accepted the land: "The #695budget contract is now RED (predicted by this card's own cost analysis)." The trade was 368-tri hm08
helper lashes for 16,632-tri fitted
mindfront_eyelashes_01across 11 actors.Accepting that land was my call and the regression is a consequence of it, not a surprise. The
fitted lash is the correct D1 direction — wire the proven CC0 pack rather than keep hand-rolled
helper stubs — and the budget is a real Quest constraint. Both are true, which is why this is a card
and not a revert.
What must NOT be the fix
Raising the 180,000 figure. It is authored in
asset-generation-pipeline.md:87as a hardwareconstraint, and moving a threshold to clear an observation buys the observation instead of the
property.
Open questions this card does not answer
Whether the lash count should be decimated per-actor for the ED station, whether lash geometry should
be excluded from the BODY measurement the way garment triangles already are per
#321, or whetherthe fitted pack has a smaller variant than
mindfront_eyelashes_01— the worker records that asalready the smallest the pack offers at 8,316 quads.
Also unanswered: whether the fitted lashes are visibly better at conversational distance.
#683'sown prompt requires a reviewer-graded pixel verdict and it has not been given. If they are not
visibly better, the trade is bad on both axes and reverting becomes the honest answer.
No
## done_whenyet — the remedy is a design choice among the three above, and inventing a contractbefore that choice is made would encode a guess.
OPERATIONALIZED 2026-08-28
The revert-or-keep fork is closed. At a 1024 head framing with the head at 0.80 of frame, the fitted
lashes read as lashes — strand-textured fringe, inner to outer corner, tapering, bilateral, no iris
occlusion. Graded on #683. So the pack stays and the overage is recovered by decimation.
Measured on HEAD, verified by direct survey of the four ED GLBs
That is roughly 440 triangles per actor against ~3,600 today: an aggressive rung, not a comfortable
one. It must be measured and graded, not assumed to work.
THIS CARD ABSORBS #748, because the contract cannot pass otherwise
the-station-fits-its-budget-and-still-looks-like-peoplehas three standing clauses and no plantedRED. Two are red: clause (1) on the budget, and clause (3) because
mpfb-gown-adult-patientships 4 UV-bearing primitives where 16 are expected (#748, bisected toc66c012cinside #714).A
run:on that file cannot pass while either stands. Both need a re-bake of the same four assets,so splitting them would leave this card with a contract nobody could satisfy. Fix both.
The levers, and what is refused
Selective lash decimation as an ED-specific LOD. Do NOT replace the source pack —
mindfront_eyelashes_01is already the smallest variant it offers. Do NOT spend already-gradedhands, face or garment detail to subsidise eyelashes unless a lash-only sweep fails. Do NOT raise
the 180,000 figure; it is authored at
asset-generation-pipeline.md:87as a hardware constraint.If no lash-only result at or under 1,761 remains legible, say so and stop — that is a successful
finding. The named fallback is a hybrid supporting-actor LOD, which requires REPLANTING the
body-count counterweight in
an-actor-wears-fitted-eyelashes-not-helper-stubs.test.ts, neverweakening it during execution.
The verdict this card cannot close by itself
My grade was on
mpfb-ob-patient-aishaat the full 16,632-triangle source, which is not an EDactor. After optimisation the orchestrator must grade an actual ED actor at the same 1024/0.80
framing via
isolated-subject-harness.ts --head-crops. A machine clause cannot assert legibility.Report these
If any proof cannot pass as written, or passes trivially, or asserts the opposite direction from the
defect, say so in your first report at the moment you find it. If satisfying a clause would make the
actors visibly worse, say so and satisfy it anyway. Name out-of-scope wrongness with the object and
what it looks like.
done_when
factory_step: body_param