Add BoneAttachment3D node and runtime follow pass - #8
Closed
TiernanDeFranco wants to merge 1 commit into
Closed
TiernanDeFranco wants to merge 1 commit into
TiernanDeFranco wants to merge 1 commit into
Conversation
TiernanDeFranco
deleted the
codex/add-boneattachment3d-support-in-perro-engine
branch
May 9, 2026 00:15
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.
Motivation
Skeleton3Dso child nodes can inherit final solved bone transforms without mutating skeleton pose.Description
BoneAttachment3Dnode type with fields and APIs:base: Node3D,skeleton: Option<NodeID>,bone_index: BoneIndex,enabled: bool, plus setters/getters andDefaultinperro_nodes(node_3d/bone_attachment_3d.rs).BoneAttachment3Din the 3D node module and node registry so it participates as aNode3Ddescendant (node_3d/mod.rs,node_registry.rs).skeleton,bone_index(aliasbone), andenabledforBoneAttachment3D(perro_scene::node_fields.rs, scene loader prepare code).update_bone_attachmentsthat collects enabled attachments, validates skeleton target/type and bone index bounds, copies final bone transform (read-only) into the attachmentNode3Dtransform, marks global transform dirty, and leaves TODO for local offsets; wire the pass to run after internal updates (runtime/internal_updates.rs,runtime.rs).Skeleton3D, invalid index and disabled safety, and runtime pass transform update (perro_runtimetests).Testing
cargo fmtwhich completed successfully.cargo test -p perro_runtime bone_attachment_3d -- --nocapturebut the test run was blocked during build by a missing system dependency (alsa.pc) fromalsa-sys, so unit tests could not be fully executed in this environment; compilation progressed to dependent crates before failing on the system pkg-config error.Codex Task