m0 A language for layout.

2(F,F)

is a layout.

deterministic·composable·resolution-independent
m0valid
Learn the LanguageWhy rectangles? →Roadmap: Programmable Video →
npm install @m0saic/dsl

Layouts today are tied to specific tools and resolutions.

m0 makes layout portable — same string, any renderer, any size.

m0 makes layout testable — validate, diff, and compare in O(N).

m0 makes layout generatable — programs produce layouts, not people.

1 / F tile (rendered content)
0 / > passthrough (donates space forward)
- null (intentional gap)
N() column split
N[] row split
X{Y} overlay
2(F,F) two columns
3[F,F,F] three rows
2(F,3[F,F,F]) nested layout
3(>,F,F) first tile gets 2/3 width
3(F,-,F) two columns with a gap
// where this goes

Programmable visual composition.

m0 layouts compiled to deterministic ffmpeg render plans. Template libraries. Batch generation. Cross-platform output.

See the roadmap →
16:91920 × 1080
Layout adapts automatically