Animal models and animations for robotics simulators.
Project description
AnimaSim
A standard set of animal models and animations for robotics/AV simulators (esmini, MuJoCo, Isaac Sim, and CARLA) which today ship almost no animal assets. When animals are missing from the asset libraries, they tend to be left out of the algorithms engineers build and the scenarios regulators design, even though real-world deer-on-highway and dog-in-driveway interactions are common. AnimaSim ports an open animal pack into these platforms with a small, dockerized conversion pipeline plus a runnable example per platform.
Install
pip install animasim ships the asset-locator API and CLI, with the generated assets
bundled in the wheel — resolve a path and hand it to your simulator:
from animasim import get_mjcf, get_usd, get_osgb, get_glb, list_animals
import mujoco
model = mujoco.MjModel.from_xml_path(str(get_mjcf("deer"))) # MuJoCo
# get_usd("deer") -> Isaac Sim/USD get_osgb("deer") -> esmini get_glb("deer") -> Blender/glTF
From the shell: animasim path deer -f usd. The CARLA cooked package is distributed
separately as a release asset (see platforms/carla).
Quickstart (from source)
git lfs install && git lfs pull # fetch vendored + generated assets (Git LFS)
uv sync --extra pipeline # environment + conversion/validation toolchain
uv run animasim list # the animals and their rigs
uv run animasim validate deer # check the generated artifacts
Regenerate the assets (needs Docker for the osgconv step):
uv run animasim convert deer # -> assets/generated/{glb,osgb,mjcf,metadata}/deer.*
Platform support
| Platform | Status | How it runs | Example |
|---|---|---|---|
| MuJoCo | ✅ verified (runs + renders) | uv (Python lib) | deer on a ground plane; animals as <include> models — platforms/mujoco |
| esmini | ✅ verified (headless run + offscreen recording) | esmini container | deer crosses a highway, ego brakes (OpenSCENARIO); animals in the catalog — platforms/esmini |
| Isaac Sim | ✅ verified (GPU: convert + spawn + pilot) | Isaac Sim container (NGC) | spawn + pilot the deer; animals as UsdSkel — platforms/isaacsim |
| CARLA | ✅ verified (GPU: drop-in cooked package + spawn) | prebuilt CARLA container | animals as static.prop.<animal> — platforms/carla |
Sim engines run in Docker (esmini, Isaac, CARLA); Python (the animasim CLI, validators, MuJoCo) runs in the uv environment.
Gallery
| Simulator | Menagerie |
|---|---|
| Isaac Sim | |
| CARLA | |
| MuJoCo | |
| esmini |
Each platform's README has the commands to reproduce its clip.
Animation fidelity
The source models share one skeleton and carry ~13 animation clips each (Idle, Walk, Gallop, Eating, …). Clips are preserved where the target supports skeletal animation:
| Target | Skinned animation | Clips |
|---|---|---|
glb (interchange) |
yes | all (native) |
| Isaac Sim / USD | yes (UsdSkel) | all — one SkelAnimation prim per clip, CI-validated |
esmini (.osgb) |
no (static scene-graph model) | n/a |
| MuJoCo (mesh) | no (physics engine) | n/a |
CARLA (.fbx prop) |
no (static prop) | n/a |
How it fits together
assets/source/ vendored source (glTF/OBJ/FBX, Git LFS)
assets/generated/ derived artifacts grouped by format (glb, osgb, usd, mjcf, fbx, carla, metadata)
src/animasim/ CLI + animal registry (config.py) + pipeline + validators
platforms/<name>/ per-platform assets, example scene, and runner
docker/ pipeline (osgconv) and esmini images
Adding an animal
The pipeline is data-driven: add an entry to the registry in src/animasim/config.py (name, source file, height, bbox, rig variant) and run uv run animasim convert <animal>. No code changes required. Animals ship with their source files vendored; importing a new animal beyond them is the only step that needs the original pack — point ANIMASIM_SOURCE_PACK at it (or pass --source) and convert vendors its source on the way.
License & assets
Project code: MIT (see LICENSE). The bundled animal models are from the Quaternius "Ultimate Animated Animals" pack, released under CC0 (public domain); they are vendored and redistributed here under those terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file animasim-0.2.1.tar.gz.
File metadata
- Download URL: animasim-0.2.1.tar.gz
- Upload date:
- Size: 13.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6752761211bc0077a15273e7bbf7941111d9ac5da888fef178ad82cbed1b01c
|
|
| MD5 |
81fa6bf5c691362b5f1e00cd69d81204
|
|
| BLAKE2b-256 |
ef96d2f06d57ae9475f87c966b91d0b6a15cff51a72ce618b687697195485a84
|
File details
Details for the file animasim-0.2.1-py3-none-any.whl.
File metadata
- Download URL: animasim-0.2.1-py3-none-any.whl
- Upload date:
- Size: 13.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d111ffc9782f09872846b09ac7868d41e126ef72e3153d9d0173d401be3277a3
|
|
| MD5 |
8baacdedeb37412a8f15a247c1f9ba5e
|
|
| BLAKE2b-256 |
16a03a0a2b8ee12d27e64a898a6a5f08820029d12afa36b794e663cc53537c32
|