Port SkeletonGenerator, AttentionsGenerator, and GenepoolGenerator to deterministic Rust.
Deliverables
Parse skeleton hierarchy, transforms, aliases, collision volumes, attention definitions, and genepool inputs with validation.
Generate typed Rust constants/records and lookup tables used by avatar/appearance code.
Retain separate asset licensing/provenance notes.
Validation
Generated hierarchy and identifiers match reference fixtures.
Invalid source inputs produce source-located errors.
No generated C# or runtime assembly is shipped.
Prerequisite
The fixed API/test gates, Types, StructuredData, and relevant imaging foundations are complete.
Project constraints
All LibreMetaverse-specific generation and wire behavior is new native Rust code.
Generated Rust is deterministic, checked in, and covered by the fixed public API and semantic tests.
No normal build or release may depend on .NET, Roslyn, C# assemblies, or the reference checkout.
## Objective
Port SkeletonGenerator, AttentionsGenerator, and GenepoolGenerator to deterministic Rust.
## Deliverables
- Parse skeleton hierarchy, transforms, aliases, collision volumes, attention definitions, and genepool inputs with validation.
- Generate typed Rust constants/records and lookup tables used by avatar/appearance code.
- Retain separate asset licensing/provenance notes.
## Validation
- Generated hierarchy and identifiers match reference fixtures.
- Invalid source inputs produce source-located errors.
- No generated C# or runtime assembly is shipped.
## Prerequisite
The fixed API/test gates, Types, StructuredData, and relevant imaging foundations are complete.
## Project constraints
- All LibreMetaverse-specific generation and wire behavior is new native Rust code.
- Generated Rust is deterministic, checked in, and covered by the fixed public API and semantic tests.
- No normal build or release may depend on .NET, Roslyn, C# assemblies, or the reference checkout.
hugo
added this to the 07 - Wire codegen milestone 2026-08-08 08:18:18 +00:00
Added deterministic native Rust parsers/renderers for avatar_skeleton.xml, attentions.xml, attentionsN.xml, and genepool.xml.
Added strict source-located schema diagnostics for hierarchy/count/vector/identifier validation, attention completeness, finite values, archetype/parameter uniqueness, and texture slot/UUID validation.
Generated and checked in the complete 133-joint/26-collision-volume skeleton, both 11-slot attention catalogs, and all 24 genepool archetypes/3,360 parameters with per-input SHA-256 and license provenance.
Replaced the mapped skeleton, attention, and genepool failure-only shims with native Rust records, getters/setters, lookups, traversal, expanded joint-list behavior, built-in loading, and validated custom skeleton XML loading.
Registered all outputs in deterministic generation/check mode and added the focused Ubuntu Gitea gate and documentation.
Verification:
cargo test -p libremetaverse-codegen: 12 passed
cargo run -p libremetaverse-codegen -- check: passed
cargo test -p libremetaverse --test generated_avatar_catalogs: 4 passed
cargo test -p libremetaverse --lib linden_skeleton: 15 passed
cargo test -p libremetaverse --lib joint_base_support_category: 3 passed
cargo test -p libremetaverse --lib joint_get_aliases_list: 2 passed
cargo test -p libremetaverse --lib skeleton::tests: 1 passed
cargo clippy for libremetaverse and libremetaverse-codegen with warnings denied: passed
cargo test --workspace --no-run: passed
API shim/mapping drift checks, offline API consumer check, cargo fmt check, git diff check, and locked normal build: passed
Final review confirmed the generated semantic digests cover the complete pinned hierarchy/identifiers/catalog values, no owned implementation contains a stub, and normal builds require neither C#/.NET nor the reference checkout.
Implemented and pushed in commit 4a32025.
Implementation:
- Added deterministic native Rust parsers/renderers for avatar_skeleton.xml, attentions.xml, attentionsN.xml, and genepool.xml.
- Added strict source-located schema diagnostics for hierarchy/count/vector/identifier validation, attention completeness, finite values, archetype/parameter uniqueness, and texture slot/UUID validation.
- Generated and checked in the complete 133-joint/26-collision-volume skeleton, both 11-slot attention catalogs, and all 24 genepool archetypes/3,360 parameters with per-input SHA-256 and license provenance.
- Replaced the mapped skeleton, attention, and genepool failure-only shims with native Rust records, getters/setters, lookups, traversal, expanded joint-list behavior, built-in loading, and validated custom skeleton XML loading.
- Registered all outputs in deterministic generation/check mode and added the focused Ubuntu Gitea gate and documentation.
Verification:
- cargo test -p libremetaverse-codegen: 12 passed
- cargo run -p libremetaverse-codegen -- check: passed
- cargo test -p libremetaverse --test generated_avatar_catalogs: 4 passed
- cargo test -p libremetaverse --lib linden_skeleton: 15 passed
- cargo test -p libremetaverse --lib joint_base_support_category: 3 passed
- cargo test -p libremetaverse --lib joint_get_aliases_list: 2 passed
- cargo test -p libremetaverse --lib skeleton::tests: 1 passed
- cargo clippy for libremetaverse and libremetaverse-codegen with warnings denied: passed
- cargo test --workspace --no-run: passed
- API shim/mapping drift checks, offline API consumer check, cargo fmt check, git diff check, and locked normal build: passed
Final review confirmed the generated semantic digests cover the complete pinned hierarchy/identifiers/catalog values, no owned implementation contains a stub, and normal builds require neither C#/.NET nor the reference checkout.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Port SkeletonGenerator, AttentionsGenerator, and GenepoolGenerator to deterministic Rust.
Deliverables
Validation
Prerequisite
The fixed API/test gates, Types, StructuredData, and relevant imaging foundations are complete.
Project constraints
Implemented and pushed in commit
4a32025.Implementation:
Verification:
Final review confirmed the generated semantic digests cover the complete pinned hierarchy/identifiers/catalog values, no owned implementation contains a stub, and normal builds require neither C#/.NET nor the reference checkout.