FMA skeleton: 3D-octree CRS · cascade builder · projection contract · NodeGuid audit#117
Merged
Merged
Conversation
…act + NodeGuid audit The four follow-ups, as one increment: 1. Cascade/ontology Guid builder — Guid::ontological() for soft tissue (the self-speaking ANAT-CARD-HERT-LVNT-PAPMUS path), alongside Guid::located() for bones. Same tier algebra, two HHTL readings. 2. Full 3D-octree HEEL/HIP — morton3_encode/decode (24-bit octree) + guid:: located_3d / position_3d; bones now carry a true x:y:z CRS (HIP's reserved bits used), ArcGIS/Cesium-grade. Bone::position() decodes it. 3. ModalityProjection contract (projection.rs) — the seam ViT / X-ray / ultrasound×Doppler implement: register() to the bone fiducials + project() Guid-addressed samples. Worked example XrayBoneFiducial. "Measure the sinus with ViT" lands measurements at the address. 4. NodeGuid canon audit (docs/NODEGUID-CANON-AUDIT.md) — group-by-group vs lance-graph NodeGuid per the wrapper-audit rule. CAUGHT F-1: lance-graph CLASSID_FMA=0x0901 collides with OGAR patient=0x0901; this session's 0x0A Anatomy domain resolves it. Plus classid/family/identity width, endianness (LE vs container-first), and 12+4-EdgeBlock divergences — each with a reconciliation. No lance-graph code touched (operator's call). Tests rewritten/added (25 lib + 3 doctests, workspace fully green, clippy clean): 3D CRS laterality+depth via decoded position, cascade ontology path, X-ray projection addressed by bone Guid. DISCOVERY-MAP: D-GUID-TIER, D-NODEGUID-AUDIT. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYvNjD8M8LMNYbRy3gq2FP
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on the merged FMA skeletal spine (#116) with the four follow-ups.
1. Cascade / ontology
Guidbuilder (soft tissue)Guid::ontological(classid, heel, hip, twig, leaf)— the self-speakingclassification path (
ANAT0001-CARD-HERT-LVNT-PAPMUS-<id>), the Cascadecounterpart to
Guid::located()for bones. Same[container:member]tieralgebra; only the HHTL reading differs (ontology vs spatial). This is the
soft-tissue case (the heart muscle, the sinus): classified, then a splat
projects onto it.
2. Full 3D-octree HEEL/HIP (true CRS)
morton::{morton3_encode, morton3_decode}(24-bit octree) +guid::located_3d/
position_3d. Bones now carry a realx:y:zcoordinate (HIP's reserved oddbits used), so the body is an ArcGIS / Cesium-grade spatial layer —
prefix containment over
HEEL ++ HIP.containeris 3D octree containment.Bone::position()decodes it back. Supersedes the coronal-tile + depth-slicev0.
3.
ModalityProjectioncontract (projection.rs)The seam where "address the heart muscle with ArcGIS, measure the sinus with
ViT" lands: every modality (
Xray/Ultrasound/Doppler/Vit)implements
register(&Skeleton) -> RigidTransform(align to the bonefiducials) +
project(&pose) -> Vec<ProjectionSample>(emitGuid-addressedsamples). The address is the join key letting heterogeneous sensors write to
the same node. Worked example
XrayBoneFiducial; a real ViT/ultrasound engineimplements the same trait downstream.
4. NodeGuid canon audit (
docs/NODEGUID-CANON-AUDIT.md)Group-by-group reconciliation of the FMA tier
Guidagainst lance-graphNodeGuidper the canon rule ("wrappers audited against OGAR, never thereverse"). It caught a real cross-repo bug:
Plus documented divergences (each with a reconciliation): classid width (2 B
vs 4 B), family/identity
256:256vsu24:u24(the economy decision),endianness (FMA container-first vs canon LE — the membrane owns the
adaptation), and the
12+4 EdgeBlock(canon keeps it; the operator supersededit with family nodes this session). No lance-graph code is changed —
findings are for the operator / a lance-graph session.
Tests / gates
cargo test --workspace— fully green;ogar-fma-skeleton25 lib + 3doctests, clippy-clean. New coverage: 3D CRS laterality + depth via decoded
position, the cascade ontology path, X-ray projection addressed by bone
Guid,3D-Morton roundtrip.
DISCOVERY-MAP:
D-GUID-TIER,D-NODEGUID-AUDIT.🤖 Generated with Claude Code
Generated by Claude Code