Skip to main content
Version: Next 🚧

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