Make motion together, with friends and AI.
Poietra is a collaborative motion editor built with MoonBit, running in the browser. Arrange shapes, text, equations, images and video; animate their properties; mix audio; and export MP4 or WebM. Friends and the AI assistant edit the same structured objects, so positions, colors and timings remain editable.
Open Poietra · 日本語の使い方 · API / MCP · Issues
- Edit a shared room together, with presence, offline reconnection and Undo scoped to your own edits. Guests can create and edit projects.
- Animate shapes, text, LaTeX, paths and media with per-property timing, intermediate keyframes and custom easing. Group, parent and clip objects.
- Create editable function/implicit graphs, vectors and geometry, node/edge networks, and 3D surfaces from formulas, with animated coordinates or coefficients.
- Reuse motions with editable text and colors, trim audio/video, and save portable project files containing their media.
- Choose landscape, portrait or custom canvas dimensions, and export browser videos at 4K or a custom resolution while preserving the aspect ratio.
- Ask
@codexin shared chat for structured edits or generated image assets, or paste a figure for Codex to rebuild as editable paths, text and equations. Optional Google/GitHub login keeps a private list of project shortcuts.
Video codec support varies by browser and device. See the studio guide for editing, accounts and limits.
Use Node.js 24+, pnpm 10.23.0, Python 3.12+ and MoonBit pinned by .moon-version. In a POSIX shell:
git clone https://github.com/Poietra/poietra.git
cd poietra
pnpm install --frozen-lockfile
curl -fsSL https://cli.moonbitlang.com/install/unix.sh -o /tmp/install-moonbit.sh
bash /tmp/install-moonbit.sh "$(cat .moon-version)"
export PATH="$HOME/.moon/bin:$PATH"
node scripts/moon.mjs update
pnpm devOpen http://localhost:5173. Local data lives in apps/studio/.data.
Editing, collaboration, ordinary chat and export work without an API key.
Optional AI/OAuth settings go in apps/studio/.env;
see configuration.
After editing .mbt, run pnpm build:moonbit; Vite does not compile MoonBit.
Restart the Node host after server-side changes.
Render saved projects to SVG, PNG or H.264 MP4 in Node without Chromium or FFmpeg:
pnpm build:moonbit
pnpm render project.poietra.json --format mp4 --width 1280 --fps 30 -o result.mp4
pnpm render:api # local HTTP API
# pnpm render:mcp # local stdio MCP serverSee the API quickstart for codecs, limits and HTTP/MCP contracts, or preview the docs for this checkout. The renderer is self-hosted; poietra.com does not provide a hosted render endpoint.
Application logic lives in MoonBit packages, with a WebAssembly motion kernel and JavaScript adapters for browsers, Node and Cloudflare. TypeScript is used for public declarations and build/test tooling.
| Read more | Contents |
|---|---|
| Development | Architecture, commands and extension steps |
| Measurements | Performance results, conditions, raw evidence and reproduction |
| Studio guide — 日本語 | Editing, configuration, deployment procedures and troubleshooting |
