Timed clinical skills stations—from case blueprint to WebXR runtime—
- with faculty review, traces, and promotion gates that stay off until the evidence is real.
+ with faculty review, durable traces, and promotion bound to the reviewed revision.
Inspired by Step 2 CS-style multi-station flow. Built as an
@@ -56,7 +56,7 @@
What we prove today
- Blueprint → runtime evidence—not licensure
+ Reviewed blueprint → pinned runtime → replay
- Case fields (including clothing layers) drive generated actors and garments.
- WebXR sample scenes and Model Vetting captures are committed artifacts, not marketing fiction.
+ Authored content identity now follows an encounter through faculty promotion,
+ a pinned runtime bundle, timed learner phases, actor execution, and review.
@@ -128,54 +128,45 @@
Capability arena
-
Current state · August 2026
-
Shipping the factory spine—and measuring how we build it.
+
Current state · 4 September 2026
+
A reviewed encounter can now become a resumable, replayable run.
-
Product proof in the loop
+
Author and promote
-
ED real garment path: hospital gown from case phenotype into Model Vetting + UI-XR sample evidence (committed screenshots below).
-
Peds real-garment work: patient/parent/nurse clothing layers expanded from phenotype; adaptive dialogue and sleeve-deform evidence tracks exist in-repo.
-
Authoring / review spine: scenario bank, review packets, admin faculty review UI with promotion-status surfaces (gates remain off).
-
Worldview (W1–W19 landed): faculty case authoring plus a compile graph (Body → Wardrobe → Equipment) with Add/Remove node on the exam-forms workbench. Screenshots below. Not a baker or Quest claim.
-
Factory station cards: nine production stations as Standard Schema V1 admin cards (jsonSchema.input controls, Apply validates). instrument is a gate, not a card. Screenshots below.
-
Runtime durability hook: optional durableStore on scenario runtime + local authoring roundtrip CLI that emits replay-safe JSON (actor turns + timeline).
+
Revision-bound review: a scenario edit invalidates stale approval; API promotion refuses missing or stale authored-content identity.
+
Immutable encounter bundles: reviewed factory outputs are promoted together, with the room, actors, equipment, and dialogue configuration pinned to the approved revision.
+
Faculty-visible delta: Admin can preview what an authored change will alter at runtime before promotion.
+
Scenario bank freeze: approved revisions and promoted station-bundle pins survive later authoring changes.
Docs warehouse + PMO cadence so history freezes without choking rehydrate.
-
Per-slice token thrash checks and task cost rollups (subagent × model → estimated USD)—estimate only, not invoices.
-
Temporal decision catalog so workarounds (e.g. token accounting) get weekly revisit, not permanent debt.
+
Bundle-driven boot: the learner runtime mounts the promoted room and starts from the pinned encounter bundle, failing closed when compiled-room readiness is incomplete.
+
Assembled exam clock: encounter, note, and timed-break phases emit monotonic, replayable events with exactly-once timeout behavior.
+
Restart-safe progress: API and MongoDB adapters rebuild an assembled run from its durable ledger; incompatible resume state is rejected.
+
End-to-end acceptance: repository tests exercise learner progress through faculty review across a restart boundary.
-
Still deliberately false
+
Speak, move, replay
-
No clinical scoring or licensure claims.
-
No Quest headset readiness claim without worn-device evidence.
-
No unapproved cloud/paid production path.
-
Promotion / realism gates stay candidate-scoped until policy says otherwise.
+
One frozen actor turn: voice, visemes, affect, facial expression, and motion start from an identity-bound plan rather than loosely interpreting dialogue text.
+
Audio-clock synchronization: visible and audible modalities follow the same playback clock.
+
Replayable interruption: learner barge-in is recorded across turn modalities without rewriting the approved plan.
+
Plan versus execution: the immutable intent and observed execution are persisted separately and exposed in faculty replay.
-
New this cycle · measured
+
Evidence and boundaries
-
The examinee can examine the patient: touch a body region in the UI-XR runtime → case-driven guard/wince clip + pain emotion + reflexive dialogue + durable trace turn (headless-gated end to end).
-
Iterations are visible in-app, and now scored: a Humanoid Generation Studio renders every generated humanoid GLB and paints a measured realism badge from a Grok-4.5 vision pass. Today's honest baseline is 0.05–0.30 / 1.0 across five candidates ("mannequin skin", "hard-band mesh, no fabric drape")—a fixture-grade punch-list, surfaced not hidden.
-
Rig alignment hardened: full ~163-bone Anny retarget with fail-loud diagnostics, determinism, and a three.js explosion gate.
-
Multi-provider delegation, cost-scored: Claude manages; Grok 4.5 (vision proven, ~$0.09 per image judgment) and DeepSeek 4 execute the grunt; each routing choice is backed by a measured cost/quality ledger—assumptions proven, not asserted.
-
Equipment generates itself now: reference image → Apple Silicon Metal TRELLIS bake → per-subject process isolation → pnpm factory:trellis:bake → a triangle ladder that lands the clock at 34.5k. Three assets, zero hand-modelling, all three visible below.
-
Escape hatch is one command: text + Grok Imagine → remesh (compact extracts) → pnpm factory:trellis:hatch lands six props at ≤80k. Kit/parametric stay exam SSOT. Not promoted into the learner runtime. Graded stills below.
-
A generated asset reached the product: the TRELLIS wall clock now resolves and renders in a live station at 34,885 triangles — the first procedurally generated equipment to leave the harness. Two layers had to agree: the equipment resolver, and a suppression allowlist that had silently reverted it to a placeholder.
-
Multi-view reconstruction, measured both ways: conditioning TRELLIS on four reference views instead of one closed the torn far side of the ECG cart — far-side fill 0.35 → 0.44, surface area +47%, with 3.7% fewer triangles — and cost the monitor screen, which flattened without camera poses. The technique is adopted; that artifact is not.
-
The factory can rebuild what it ships: both library garment sources were on no disk in the repository, so every re-bake silently degraded the figure — and the guard that was meant to stop that logged a warning and baked anyway. The guard now throws; the sources are tracked and licence-recorded (CC0 trousers, CC-BY shirt). Shown above, with the regression that exposed it.
-
The MPFB actor can be posed at all: the one MPFB2-rigged humanoid a learner loads resolved 1 of 14 runtime pose bones — its rig names them upperarm01.L where the code asked for upper_armL, and a missing bone lookup is a silent skip, not an error. Now 14 of 14 on all three rails. Invisible in any screenshot; it is the difference between an actor that can be posed and one that cannot.
-
Facial morphs are reachable: the only genuinely graded facial morphs in the repository — 4,549 vertices moving in 653 distinct directions on mouth-open — sat unreachable because the runtime keyed on different names. Meanwhile the rail it could address carries constant-offset stubs: identical magnitude on every vertex, one direction, which slides a block of the face rather than opening a mouth. Also invisible until lip-sync drives it.
-
Gaze moves the eyes: a “gaze” drive was writing root.rotation.y — the whole actor pivoting on the spot, feet included — while the eye bones every rail ships and skins were addressed by nothing. The evidence field that made this look handled was a name regex asserting an eye node exists.
+
Committed proof: the claims above are backed by runtime and package tests in the repository, including restart-safe learner-to-faculty acceptance.
+
Visual proof remains bounded: the screenshots below demonstrate browser-rendered factory, actor, garment, room, and equipment work. They do not prove the entire new lifecycle as one polished user journey.
+
No clinical validity, scoring validity, licensure, or exam-equivalence claim.
+
No Quest readiness claim: browser/WebXR and emulation evidence do not substitute for worn-headset validation.
+
No production deployment claim: development remains local-first, with external providers and promotion paths gated.
@@ -191,12 +182,15 @@
New this cycle · measured
The case is a compile graph faculty can edit.
- BothyBoard children W1–W19 (plus W14a/W14b/W11s) are Landed on
- origin/main05120405.
+ These screenshots were captured from commit 05120405, where
+ BothyBoard children W1–W19 (plus W14a/W14b/W11s) had landed.
Faculty author the encounter as a Scenario, then review a World Compile Graph
of baker families. Add node / Remove node mutate the graph; the lock table stays
the lock write path. Chromium Playwright of the running admin app
(ui-admin + local API), not a schematic.
+ Since this capture, authored revision identity now invalidates stale approval,
+ and Admin can preview the runtime delta before a reviewed revision is promoted
+ into an immutable encounter bundle.
@@ -231,8 +225,9 @@
The case is a compile graph faculty can edit.
- claimScope: local admin UI of authored Scenario + compile DAG on
- 05120405.
+ claimScope: local admin UI capture of an authored Scenario + compile DAG at
+ capture commit 05120405; current revision identity and runtime-delta behavior
+ are supported by later committed application tests, not by these stills.
notEvidenceFor: Quest readiness, clinical validity, live Blender bake,
LLM draft quality, or that the parent BothyBoard program card is closed (it is still Idle).
Node labels truncate in this crop; that is the canvas, not missing data.
@@ -521,13 +516,13 @@
Five patients were rendering nude. Their clothes were the co
Evidence you can look at
-
Every garment we own, classified. None of them is a hospital gown.
+
The audited legacy MakeClothes cache contains no hospital gown.
- The section above this one says clothing is not yet good enough to show. That used to be a
- judgement. It is now a measurement: every cached MakeHuman garment in the repository has been
- fitted, rendered and given a class, and the class the clinical work needs
- has zero members.
+ Every garment in the audited legacy MakeHuman/MakeClothes cache was fitted, rendered,
+ and assigned a geometry-derived class. Within that specific cache,
+ hospital_gown has zero members. This does not describe the
+ separate case-linked real-gown path shown elsewhere in the repository and on this page.
@@ -559,29 +554,22 @@
Every garment we own, classified. None of them is a
- The practical consequence is a piece of work we are not doing. Dressing eleven more
- patients in a hospital gown is off the queue until a hospital-class garment actually exists,
- because mapping the name onto the closest available asset is how the evening dress got there
- the first time. The honest answer to “where is the gown” is NOT FOUND, and
- that is a better artifact than a green contract over the wrong garment.
+ The practical consequence is narrower: this legacy cache cannot satisfy a hospital-gown
+ request, and the resolver must not substitute its evening dress because the filename sounds
+ plausible. The current real-gown path is a separate, provenance-tracked source and still has
+ to pass its own fit, motion, and runtime evidence gates.
Evidence you can look at
-
Clothing: not yet good enough to show.
+
Clothing is visible and case-linked, but remains below production realism.
- This section used to carry two WebXR captions labelled “phenotype-driven gown”. The
- captures underneath them showed a bare torso with a red patch, a deformed shoulder, and a
- status bar reading WebXR unavailable. The caption asserted a capability the
- picture disproved, so the pictures were removed on 2026-08-10 rather than recaptioned.
-
-
- Clothing on this project is real but partial: garments are fitted from a library and
- driven by the case definition’s layers, and you can see them working on the actors in the
- station above.
+ Garment layers now come from the case definition and are visible on browser-rendered actors,
+ including the real-gown path and clothed multi-role stations shown on this page. That is
+ evidence of case-to-runtime wiring, not a claim of production-quality cloth, fit, or motion.
Correction, 2026-08-10 evening. This section previously said one actor
@@ -593,12 +581,10 @@
Clothing: not yet good enough to show.
rendering fault.
- We are leaving the section without a picture until that question is measured, because we
- were wrong about the mechanism four times on this one figure — a bare midriff (the garments
- overlap by 3 cm), a short sleeve (it is a full-body shell), translucent overlays (they
- are switched off), and a runtime ignoring its own hide mask (it honours it, with zero pixel
- difference). Each pixel observation was real and each explanation was wrong until it was
- measured. That is the reason for the caution here, stated plainly rather than implied.
+ The open quality bar is visible: some garments still read as rigid shells, hems and joins
+ remain rough, and motion evidence does not yet establish production cloth behavior. New
+ clothing claims therefore require measured Model Vetting and UI-XR evidence rather than
+ inference from asset presence alone.
Inspection packet:
@@ -1183,47 +1169,41 @@
Escape hatch: text → Imagine → remesh → 80k.<
-
Roadmap · from the queue only
-
What’s next is what’s queued—not a product brochure.
+
Next proof
+
The contracts are connected. The experience still has to earn trust.
- These items come from the current project ledger. Dates are not SLAs. Nothing here promises production deployment,
- headset certification, or clinical validation.
+ The next work is to turn the newly connected lifecycle into visible, measured product evidence.
+ Dates are not SLAs, and nothing here promises production deployment, headset certification, exam equivalence, or clinical validation.
-
Next up (dequeue)
+
One visible encounter
-
- Wire API durableStore consumer —
- connect the new runtime durable hooks to persistence/API sinks so review packets and actor turns can land beyond local CLI artifacts.
-
-
- Authoring follow-through —
- keep the scenario bank → runtime emission → admin replay path honest with real turns (not seed-only panels).
-
+
Capture a single reviewed scenario moving from authoring delta through promotion, learner runtime, interruption, note phase, and faculty replay.
+
Keep every visible state tied to the immutable scenario revision and promoted bundle that produced it.
-
Active product tracks
+
Raise runtime quality
-
Peds evidence / adaptive dialogue loops in UI-XR when the next visible slice is selected.
-
ED / multi-role garment realism continuation only where dual Model Vetting + UI-XR evidence stays visible.
-
Faculty review and replay surfaces for authored encounters (gates remain review-only).
+
Replace fixture-grade actor and garment presentation only when Model Vetting and UI-XR evidence both show the improvement.
+
Grade voice, viseme, affect, gaze, and motion synchronization as an observed performance, not merely a passing contract test.
+
Continue publishing verified room and equipment assets through the same review-gated encounter bundle.
Docs warehouse freeze when thresholds hit—not after every task.
-
Task cost rollups on slice finish for subagent × model estimates.
+
Exercise the learner flow on physical Quest hardware before making any readiness statement.
+
Keep faculty review, evidence provenance, and stale-identity rejection fail closed as the experience broadens.
+
Treat educational and clinical outcome validation as separate future work, not an inference from software completeness.
- Queue source: PROJECT_STATUS.md (Next dequeue + Active Work).
- If the ledger changes, this section should change with it—or stay quiet.
+ Public roadmap copy follows committed product evidence and the repository’s protected claim boundaries.
+ The operational queue remains in PROJECT_STATUS.md and the project board.