Some Useful Features
Murali is not just for rendering animations β it also provides built-in tools for exporting visuals at precise moments in time.
π₯ Video Outputβ
When you run a scene, Murali automatically generates a video if ffmpeg is installed on your system.
This allows you to:
- render scenes directly to video
- maintain perfect sync with your timeline
- avoid manual stitching workflows
πΈ Screenshotsβ
You can capture screenshots at specific timestamps during a scene.
This is useful for:
- YouTube thumbnails
- documentation images
- keyframe debugging
Exampleβ
scene.capture_screenshots_named([
(0.7, Some("captures/step_01.png")),
(2.2, None::<&str>),
(2.7, Some("captures/step_03.png")),
]);
How it worksβ
-
Each tuple is
(timestamp, filename) -
timestampβ time in seconds -
filenameβ optional- If provided β saved with that name
- If
Noneβ Murali auto-generates a name
ποΈ GIF Captureβ
Murali can also generate GIFs from selected moments in your scene.
Instead of exporting the entire timeline, you can pick specific instants and stitch them together.
Exampleβ
scene.capture_gif("movement_overview", [0.7, 2.2, 2.7]);
scene.capture_gif("square_focus", [0.7]);
scene.capture_gif("circle_focus", [2.2, 2.7]);
How it worksβ
- First argument β GIF name
- Second argument β list of timestamps
- Frames at those timestamps are captured and combined into a GIF
PNG exportβ
... Document pending ...
π‘ Why this mattersβ
Muraliβs export system is designed around its time-driven model:
- You think in timestamps, not frames
- Outputs are deterministic
- You can reliably reproduce visuals across runs