ranim

Crates.ioranim
lib.rsranim
version0.1.4
created_at2024-12-23 10:58:00.454421+00
updated_at2025-09-16 05:37:21.852134+00
descriptionAn animation engine inspired by manim and JAnim
homepagehttps://azurice.github.io/ranim
repositoryhttps://github.com/AzurIce/ranim
max_upload_size
id1492979
size738,175
AzurIce (AzurIce)

documentation

README

Ranim Logo

Ranim

license crates.io commit
build check
stars
hello_ranim ranim_logo

examples/hello_ranim

examples/ranim_logo

Ranim is an animation engine crate implemented in pure rust, inspired heavily by Manim and jkjkil4/JAnim.

[!WARNING] Ranim is now WIP. It only supports some basic items and animations, the apis are unstable and may change frequently, the documentation is also not complete.

Dependencies

Runtime dependencies:

  • ffmpeg: encode videos Ranim will try to use ffmpeg from system's path environment variable first, if no ffmpeg is found, ranim will automatic download ffmpeg to the current working dir.

Installation

Currently, it is experimental on crates.io:

[dependencies]
ranim = "0.1.4"

You can also use from git for the latest updates:

[dependencies]
ranim = { git = "https://github.com/azurice/ranim" }

For the usage, check out the examples folder. You can run the examples with:

cargo run --example <example-name>

and you can use --release flag for faster rendering.

Ranim Cli

Ranim cli is a command line tool to help you build the animation. It enables animation previewing with hot reload through dylib.

Please notice that you can use ranim without ranim-cli, the previewing and rendering process can be achieved by simply invoking apis provided by ranim, but it may enhance your experience.

You can install it with:

cargo install ranim-cli

Or install from git:

cargo install --git https://github.com/azurice/ranim

Basic Usage:

  • ranim preview: Launch a preview app and invoke cargo to build your library automatically when the source code is changed, then reload it through libloading and show it in the preview app.
  • ranim render[ <scene-name>]: Render scene's output, when no scene name is specified, render all scenes.

You can specify the package with --package (just like cargo), and other aditional arguments you want to pass to cargo build can be passed after --.

For example:

ranim render -p xxx scene_a scene_b -- --release

Feature Flags

Design

Once the design is stablized, I may write about it.

For now, you can check out the code.

Aknowledgements

Star History

Star History Chart

Commit count: 498

cargo fmt