Murali v0.2.0: Shorts and Portrait Video Support
Murali v0.2.0 adds first-class portrait video support for deliberately composed 9:16 YouTube
Shorts and other vertical explanations. Preview, layout, camera projection, and export now share
one scene-owned frame, so the composition seen while authoring is the composition that gets
rendered.
Compose Directly For Shorts​
Choose the frame before placing objects. The portrait frame uses logical bounds of -4.5..4.5
along X and -8..8 along Y, while the familiar landscape frame remains the default.
use murali::{Frame, Scene};
let mut scene = Scene::new().with_frame(Frame::portrait());
Murali does not attempt automatic responsive layout. Helpers such as to_edge, camera framing,
the preview window, and export dimensions all use the selected frame from the beginning.
Width Has One Meaning​
Export configuration now specifies a literal pixel width. Height follows from the scene frame:
[export]
width = 1080
With Frame::portrait(), this produces 1080x1920; with the default landscape frame, a width of
1920 produces 1920x1080. The release also includes Frame::square() for square compositions.
Migration From 0.1​
Code that set both output dimensions should select a scene frame and keep only the width.
ExportSettings::height has been removed, and RenderOptions::resolution is now
RenderOptions::width.
The new portrait_video example
and Video Formats guide show the complete authoring, preview, and export
workflow for Shorts.
