Known gaps
Premation is version 0.1.0. This page is the list of things that are not done, kept here rather than described as intentions elsewhere in the documentation.
If a page in these docs describes something that does not work, and it is not on this list, treat it as a documentation bug.
Not implemented
| Area | Status |
|---|---|
| Real-time collaboration — live cursors, multi-user editing | Not implemented, and not planned |
| Review comments, approval flow, shareable review links | Removed outright — not gated, not hidden behind a plan |
| Imported 3D models, PBR materials, HDRI environments | Out of scope. The 3D model is Classic 3D |
| Multi-track NLE / clip-based video editing | Out of scope. This is not a video editor |
| Template image-swap fields, and the template authoring UI | TODO. Text and numeric template fields work |
Gated or partial
| Area | Status |
|---|---|
| Motion AI — the first-party metered provider | Disabled while in development. Bring-your-own-key works |
Local-first chunked .motion bundle + its six-table index | Designed in the architecture RFC, not yet fully implemented. The engines are frozen pending it |
| ffmpeg bundling for fully offline MP4 | Open decision. MP4 export currently depends on ffmpeg being present |
| GPU per-frame render off the main thread | Still on the main thread. The offload boundary is identified |
| Director-memory placement | Open decision in the architecture RFC |
| Panel surfacing in a live Electron session | Audited in tests, not live-UI-verified end to end |
Platform availability
| Platform | Installer |
|---|---|
| Windows 10 / 11 x64 | Available |
| macOS | Coming soon |
| Linux | Coming soon |
Building from source works on all three today.
Format and stability
- The project file format is still moving. Keep
File → Export → Projectcopies of work you cannot afford to lose. - The installer is unsigned during the beta.
package.jsoncurrently declaresUNLICENSED. A licence must be chosen before publishing — without one, nobody may legally use or contribute to the code.
Known behavioural quirks
| Quirk | Detail |
|---|---|
| Solid layers and 3D | A layer can go 3D if it has a transform component; solids were historically pinned by the renderer |
| Expressions under the dev CSP | Development builds block new Function, which historically made one AI tool inert in dev. The shipped path evaluates through the engine’s own interpreter |
| Canvas2D previews skip GPU-only effects | Library and template cards preview geometry and timing accurately, not every filter |
| Audio Waveform is an envelope, not a spectrum | No FFT / frequency bars |
| Lottie export is vector + transforms only | Effects, 3D lighting and video do not survive |
Testing notes
If you are working on the codebase rather than using the app:
- Roughly 4,000 automated tests across the app and its engine packages, plus a pixel-comparison render-test harness with committed reference frames.
- Typechecked under TypeScript
strictwithnoUncheckedIndexedAccess. - Reading pixels back from a GPU canvas must happen in the same task as the
draw call. After an
await, a composited canvas hands back nothing. - The renderer’s Null backend records draw calls, not pixels. It proves structure — this many quads, in this order — and cannot prove a shader is correct. That is what the render tests are for.
- Blessing a reference frame is deliberate. Check
git statuson the references directory before committing — an unreviewed reference change hides a regression. - OneDrive gotcha: running Jest directly inside a OneDrive working copy can silently run only a fraction of the suites, because placeholder files hide the rest from the resolver. Mirror the repository to local disk for a real full run, and do not treat a zero-hit grep inside OneDrive as proof of absence.
Last updated on