Skip to Content
ReferenceKnown gaps

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

AreaStatus
Real-time collaboration — live cursors, multi-user editingNot implemented, and not planned
Review comments, approval flow, shareable review linksRemoved outright — not gated, not hidden behind a plan
Imported 3D models, PBR materials, HDRI environmentsOut of scope. The 3D model is Classic 3D
Multi-track NLE / clip-based video editingOut of scope. This is not a video editor
Template image-swap fields, and the template authoring UITODO. Text and numeric template fields work

Gated or partial

AreaStatus
Motion AI — the first-party metered providerDisabled while in development. Bring-your-own-key works
Local-first chunked .motion bundle + its six-table indexDesigned in the architecture RFC, not yet fully implemented. The engines are frozen pending it
ffmpeg bundling for fully offline MP4Open decision. MP4 export currently depends on ffmpeg being present
GPU per-frame render off the main threadStill on the main thread. The offload boundary is identified
Director-memory placementOpen decision in the architecture RFC
Panel surfacing in a live Electron sessionAudited in tests, not live-UI-verified end to end

Platform availability

PlatformInstaller
Windows 10 / 11 x64Available
macOSComing soon
LinuxComing soon

Building from source works on all three today.

Format and stability

  • The project file format is still moving. Keep File → Export → Project copies of work you cannot afford to lose.
  • The installer is unsigned during the beta.
  • package.json currently declares UNLICENSED. A licence must be chosen before publishing — without one, nobody may legally use or contribute to the code.

Known behavioural quirks

QuirkDetail
Solid layers and 3DA layer can go 3D if it has a transform component; solids were historically pinned by the renderer
Expressions under the dev CSPDevelopment 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 effectsLibrary and template cards preview geometry and timing accurately, not every filter
Audio Waveform is an envelope, not a spectrumNo FFT / frequency bars
Lottie export is vector + transforms onlyEffects, 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 strict with noUncheckedIndexedAccess.
  • 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 status on 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