Skip to content

Commit f197cab

Browse files
committed
cockpit/torso: splat3d CPU-render page + muted palette
Adds the second torso page (/torso, the "splat") and softens the colours on both pages per request. - /torso (TorsoRender.tsx): a turntable of frames rendered bake-side by ndarray::hpc::splat3d (CPU-SIMD EWA, no GPU) over the same torso.splat the live page orbits. Drag to scrub, click to pause. A scratchpad torso-render driver reads SPL1 -> Gaussian3D -> splat3d turntable (no Inria .ply needed), under ndarray's own pinned 1.95 toolchain so q2's workspace stays free of the ndarray dependency. 20 JPEG frames (720x960) -> cockpit/public/torso-frames/. - Muted palette: per-structure golden-angle hue at S=0.34 V=0.78 (was the neon S=0.62 V=0.96). torso.splat re-baked; the live three.js page (/torso-live) picks it up directly, the splat3d frames re-rendered. - main.tsx: /torso route; TorsoSplat nav cross-links splat <-> live orbit. Render verified by viewing the frames: real BodyParts3D torso anatomy, upright, 102 structures in soft pastels. tsc clean. Geometry: BodyParts3D, CC-BY 4.0, (c) The Database Center for Life Science (attribution shown in-view). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TzqvDqbFRzyx17EkLKBoZF
1 parent e6fa935 commit f197cab

26 files changed

Lines changed: 137 additions & 11 deletions

claude-notes/plans/2026-06-24-fma-torso-bodyparts3d-splat.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,19 @@ BodyParts3D (FMA partof tree + FJ OBJ meshes)
4242

4343
## Checklist
4444

45-
- [ ] `tools/bake_torso_splat.py` — BodyParts3D → SPL1 gaussian asset + manifest
46-
- [ ] `cockpit/public/torso.splat` (+ `torso.manifest.json` attribution/legend)
47-
- [ ] SPL1 TS decoder + `/torso-live` three.js orbit page + route
48-
- [ ] torso.ply + splat3d_flex render → `/torso` frames page + route
49-
- [ ] attribution surfaced in-UI; verify tsc; commit; PR
45+
- [x] `tools/bake_torso_splat.py` — BodyParts3D → SPL1 gaussian asset + manifest
46+
(231K gaussians, 577 meshes, 102 structures; muted pastel per-structure hues)
47+
- [x] `cockpit/public/torso.splat` (3.7 MB) + `torso.manifest.json` (attribution/legend)
48+
- [x] SPL1 TS decoder + `/torso-live` three.js orbit page + route
49+
- [x] `/torso` splat3d CPU render: scratchpad `torso-render` driver reads SPL1 →
50+
`Gaussian3D` → ndarray::hpc::splat3d turntable (no Inria .ply needed) →
51+
20 JPEG frames in `cockpit/public/torso-frames/``/torso` viewer page + route
52+
- [x] attribution surfaced in-UI; tsc clean
53+
- [ ] PR
54+
55+
Notes:
56+
- The CPU render runs under ndarray's own 1.95 toolchain (scratchpad project,
57+
path-dep on ../ndarray) — q2's workspace stays free of the ndarray dep.
58+
~6.6 s/frame on the scalar path (no AVX target-cpu in the scratchpad project);
59+
correctness verified by viewing the rendered frames.
60+
- Colours: golden-angle hue per structure at S=0.34 V=0.78 (muted, per request).
23 KB
Loading
23.2 KB
Loading
24.1 KB
Loading
25.4 KB
Loading
26.8 KB
Loading
27.8 KB
Loading
27.9 KB
Loading
27.5 KB
Loading
26.6 KB
Loading

0 commit comments

Comments
 (0)