| Crates.io | avatar-anim |
| lib.rs | avatar-anim |
| version | 0.1.1 |
| created_at | 2025-06-22 13:40:50.790049+00 |
| updated_at | 2025-09-14 20:49:59.255087+00 |
| description | A parser for Second Life avatar animations files |
| homepage | |
| repository | https://github.com/Sekkmer/avatar-anim |
| max_upload_size | |
| id | 1721641 |
| size | 97,290 |
A Rust library for parsing, inspecting and transforming Second Life avatar animation (.anim) files and Firestorm poser LLSD XML.
.anim files (binary) using binrwAnimation::from_llsd_file)AnimError + Result<T> aliasexamples/animctl.rs) for info, convert, joints, completionsAdd to your project:
cargo add avatar-anim
Example (load, tweak priority, write):
use avatar_anim::Animation;
let mut anim = Animation::from_file("walk.anim")?;
anim.set_priority(4).cleanup_keys_with(avatar_anim::DuplicateKeyStrategy::KeepLast);
anim.to_file("walk_p4.anim")?;
Ok::<_, avatar_anim::Error>(())
Build and run the example tool:
cargo run --example animctl -- info walk.anim
cargo run --example animctl -- convert -i pose.xml -o pose.anim --insert Head:rot@42
cargo run --example animctl -- joints -j Spine walk.anim
Shell completion script:
cargo run --example animctl -- complete --shell bash > animctl.bash
LGPL-2.1