avatar-anim
A Rust library for parsing, inspecting and transforming Second Life avatar animation (.anim) files and Firestorm poser LLSD XML.
Features (brief)
- Parse & write
.animfiles (binary) usingbinrw - Import poser LLSD XML (
Animation::from_llsd_file) - Safe quaternion reconstruction & normalization
- Key utilities: drop, filter, duplicate cleanup strategies (first/last/average)
- Quantization helpers with documented error bounds
- Unified
AnimError+Result<T>alias - Minimal fluent editing API (priority, stripping rotations/positions)
- Example CLI (
examples/animctl.rs) for info, convert, joints, completions
Quick Start
Add to your project:
Example (load, tweak priority, write):
use Animation;
let mut anim = from_file?;
anim.set_priority.cleanup_keys_with;
anim.to_file?;
Ok::
CLI (example)
Build and run the example tool:
Shell completion script:
License
LGPL-2.1