Back to Body Journal
SOURCE / PINNED RELEASE

Made of little things.

Body Journal

Release
e8049f8da4e2…
Author-recorded commit
61c04bf0e8aa…
License
LICENSE
Author’s source reference
nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-6c4554844c7

Archive hash verified: 4369d778da046a8b…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/anatomy-controls-slice.md
# Anatomy controls and direct posing

Keep the app-owned white, off-black and reddish-orange visual direction. A single
Anatomy panel sits at the right of the body canvas, open initially and toggleable.
Its searchable hierarchy combines descendant visibility checkboxes with selection
and an explicit Focus button. Selecting or focusing never changes visibility.
On narrow frames the panel is a dismissible side drawer; the toggle stays reachable.

Pose mode exposes shaded round wrist/ankle handles. Close-up hand views also expose
fingertips. Dragging uses a fixed camera-facing plane, with bounded finger flexion;
arrow keys move a selected handle in that plane. Secondary drag remains rotation.
Handles are UI overlays and are excluded from AI evidence images. Finger sliders
remain available. Working joint/finger poses and panel openness use existing SDK
session storage, with no new host domains or direct network/storage access.

Fit the mouth atlas to stable lip and ear vertices of the skin across shape samples,
preserving atlas topology and saved barycentric marks. This is an illustrative fit,
not patient-specific anatomy or measured joint mobility. Verify front and profile,
closed/open jaw, both body shapes, visibility independence, direct manipulation,
reload persistence and the existing narrow/touch/minimum frame policies.

## Verified — 25 October 2026

- `pnpm verify`: all 74 tests passed (6 guidance, 5 case, 15 AI, 7 skin,
  5 gestures, 36 anatomy/layers), plus type-check and single-file build.
  New checks cover bilateral fingertip IK in rotated/morphed hands, neighbor
  isolation and bounds, mouth profile landmarks, and unmarked pose imports.
  Final `pnpm type-check` and `git diff --check` passed after keyboard refinements.
- `pose-handles-smoke.mjs`: real hosted hierarchy/selection/focus, four whole-body
  handles, wrist drag, bilateral finger drag, keyboard motion, secondary rotation,
  hidden opposite-hand handles and SDK reload of unmarked poses/panel preference.
  Real touch event drags passed at 390×844 and 844×390. Inspected the small balls,
  selected finger, and male/female mouth front/profile and open-jaw screenshots.
- Adapted `mouth-smoke.mjs` and `fingers-smoke.mjs` to the combined panel; both
  passed their observation marking, per-observation pose/session persistence,
  summaries, saved-pose evidence previews and working-view restoration regressions.
  No vendor requests were sent. The new handles are outside the WebGL render.
- `visibility-ui-smoke.mjs`: explicit focus preserves hidden branches, mixed-state
  groups work with keyboard/touch, expansion retains keyboard focus. Tested actual
  1600×1000, 900×600, 320×560 and 200×160 iframe sizes in both host themes; smallest
  frame shows the existing minimum notice. Also checked 390×844/844×390 touch and
  missing optional domains. Harness removes host iframe min-height and waits for
  resize before asserting actual dimensions. App-owned palette stays unchanged.
- `pnpm test:conformance`: 5 passed, 0 failed, 5 skipped. No manifest event was
  supplied (3 skips); no wire envelopes emitted and teardown not measured.
- `soyli check`: passed, space-playback-6, Chromium 153.0.8010.12. Source size
  35,802,164 bytes (40 MiB limit). HTML: 19,001,827 bytes (25 MiB limit), SHA-256
  `bb4269a021db8a16921feae89eddde6994fe18ac66c90d2abe2ed0d9074339c7`.
- Boundary audit: no new domains or required capabilities, direct networking,
  browser storage, relay use or shell code. Persistence uses the existing optional
  SDK storage path; absence leaves the editor usable in memory.

Reused the user-owned soyLI preview at http://127.0.0.1:4173/; no new preview process
was started. Browser test contexts were closed. Screenshots are ignored under
`.napplet-space/pose-handle-checks`, `visibility-checks`, `mouth-checks` and
`finger-checks`. No publishing, deployment, provider request or asset replacement.
Physical phones, clinical anatomy and collision-aware biomechanics remain untested.

## Viewport cleanup

Remove the Body Map caption, introductory question and example link from the 3D
workspace. Keep its white/off-black/orange visual direction, move the compact
layer/anatomy toolbar to the top, and give the recovered header height to the
canvas and anatomy panel across desktop and phone layouts. Finger/jaw editors
retain their existing compact arrangement. Synthetic smoke-test setup now uses
normal marking and form controls instead of a production demo button.

Validated this cleanup with `pnpm verify` (74 tests, type-check and build),
`soyli check`, and `pnpm test:conformance` (5 passed, 5 skipped for the same
missing manifest/wire/lifecycle evidence noted above). The hosted visibility
smoke test passed all four required frame sizes, both host themes, touch portrait
and landscape, and missing optional domains. The replacement synthetic case
setup created a real knee mark plus a general symptom and reached “Session saved”
through the SDK. Inspected desktop and compact viewport screenshots. Reused the
existing user-owned preview; isolated browser sessions were closed.