Skip to main content

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 Animals marching in Isaac Sim
CARLA Animals in CARLA
MuJoCo Animals in MuJoCo
esmini Deer crossing in 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.

Metadata

Release files for animasim 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for animasim 0.2.1
File Size Uploaded Provenance Actions
animasim-0.2.1.tar.gz 13.6 MB Without provenance Details for animasim-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for animasim 0.2.1
File Interpreter ABI Platform Actions
animasim-0.2.1-py3-none-any.whl Python 3 none any Details for animasim-0.2.1-py3-none-any.whl

Total release size: 27.6 MB

Release files / animasim-0.2.1.tar.gz

Download URL animasim-0.2.1.tar.gz
Size 13.6 MB
Tags Source
SHA-256 checksum
How to use checksums
b6752761211bc0077a15273e7bbf7941111d9ac5da888fef178ad82cbed1b01c
BLAKE2b-256 checksum
How to use checksums
ef96d2f06d57ae9475f87c966b91d0b6a15cff51a72ce618b687697195485a84
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / animasim-0.2.1-py3-none-any.whl

Download URL animasim-0.2.1-py3-none-any.whl
Size 13.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d111ffc9782f09872846b09ac7868d41e126ef72e3153d9d0173d401be3277a3
BLAKE2b-256 checksum
How to use checksums
16a03a0a2b8ee12d27e64a898a6a5f08820029d12afa36b794e663cc53537c32
Upload date
Uploaded using Trusted Publishing?
What is 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}

Security for animasim 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page