Commit d5dad7a
committed
cockpit/torso: anisotropic surface-fit splat + per-node SoA + /torso-map
The structural upgrade you greenlit: the torso splat stops being a detached
isotropic point cloud and becomes the GUID/value-tenant substrate seen as
oriented geometry. One pass over the BodyParts3D meshes does all of it.
SPL2 format (supersedes SPL1): hdr 40B [SPL2|count|node_count|radius|bbox];
body 21B [pos 3f | normal 3i8 | rgb 3u8 | opacity u8 | node_row u16]. Helix-
orderable + residual-ready (the Helix-48 codec slots in here next).
- Anisotropic surface-fit ("connect the dots"): BodyParts3D OBJ ships per-vertex
normals (vn) — free, no face traversal. The splat3d render driver orients each
gaussian flat-to-surface (scale=[t,t,thin], quat aligns local-z to the normal);
tangent 0.004 connects within a structure while rib gaps stay visible. Oriented
disks blend into continuous surfaces with real 3D form — not isotropic blobs,
not a discrete voxel grid.
- Per-node SoA + O(1) switch (the GUID backbone): torso.nodes.json = one row per
FMA structure (178 rows, 91 own meshes) carrying the value-tenants of one
identity — fma id, name, depth, HHTL tier-ranks, colour, gaussian RANGE
(start+count), and the OBJ-geometry tenant (centroid+bbox+FJ handles). Each
gaussian carries its node_row; consumers build the switch (row->node) once ->
O(1) tenant reads. Position = real BodyParts3D coordinate; identity = FMA node.
- /torso-map (TorsoMap.tsx): click a gaussian -> node_row -> O(1) into the SoA ->
FMA label + partonomy breadcrumb; structure list highlights its gaussians
(graph <-> splat). The osint-cad-splat thesis made literal: graph and splat,
one node at one address, switch-selected.
- /torso-live decodes SPL2 (still points); /torso shows the re-rendered
anisotropic turntable. main.tsx: /torso-map route.
Verified by viewing the rendered frames (connected anatomical surfaces, upright,
form from orientation). tsc clean; browser pick-interaction not exercised here
(raycast-on-Points is standard). Geometry: BodyParts3D, CC-BY 4.0 / CC-BY-SA 2.1
JP, (c) The Database Center for Life Science (attribution in-view).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TzqvDqbFRzyx17EkLKBoZF1 parent 1400f6d commit d5dad7a
28 files changed
Lines changed: 492 additions & 184 deletions
File tree
- claude-notes/plans
- cockpit
- public
- torso-frames
- src
- crates/osint-bake/tools
Lines changed: 26 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | | - | |
68 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
69 | 86 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
0 commit comments