Export Support Matrix
PinePaper exports a scene to many formats. They fall into two families with very different coverage:
- Frame-capture formats (WebM, MP4, GIF, PNG-sequence) record the live canvas frame by frame, so they reproduce whatever the editor renders — backgrounds, generators, filters, blend modes, every relation, video, the lot.
- Re-generated / structural formats (Animated SVG, HTML Widget, Lottie, glTF, BVH, still PNG/PDF) rebuild the scene from its data. These are smaller and editable/embeddable, but each only models part of the scene — so some features are dropped or flattened.
Rule of thumb: if you need maximum fidelity, export WebM/MP4/GIF. If you need a small, embeddable, accessible artifact, export the HTML Widget or Animated SVG and check the matrix below for what carries over.
Matrix
Legend: ✅ supported · ◐ partial / flattened · ✕ dropped · — not applicable
Backgrounds
| Feature | SVG | Widget | WebM/MP4/GIF | PNG | Lottie | |
|---|---|---|---|---|---|---|
| Solid color | ✅ | ✅ | ✅ | ✅ | ✅ | ◐ (color only) |
| Gradient (fill on a shape) | ✕ | ✅¹ | ✅ | ✅ | ✅ | ✕ |
| Gradient (canvas background) | ✕ | ◐² | ✅ | ✅ | ✅ | ✕ |
| Generator background (gradient mesh, neon grid, …) | ✕ | ◐² | ✅ | ✅ | ✅ | ✕ |
| Image background | ✕ | ✅² | ✅ | ✅ | ✅ | ✕ |
| Video background | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ |
¹ Gradient fills on shapes render in the widget (rebuilt as a CanvasGradient).
² Canvas-level gradient / generator backgrounds are rasterized to an embedded
image at export time so they appear in the widget (a pixel snapshot — the
generator no longer runs live).
Item types
| Feature | SVG | Widget | WebM/MP4/GIF | PNG | Lottie | glTF | BVH | |
|---|---|---|---|---|---|---|---|---|
| Text | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — |
| Shapes (circle/rect/star/polygon/path) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Images / rasters | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Video items | ◐³ | ◐³ | ✅ | ✅ | ✅ | ✕ | — | — |
| Charts (bar/line/scatter/area) | ✕ | ✅ | ✅ | ✅ | ✅ | ✕ | — | — |
| Maps | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ | — | — |
| Diagram shapes / connectors | ✅ | ✅ | ✅ | ✅ | ✅ | ✕ | — | — |
| Letter-collage groups | ✅ | ✅ | ✅ | ✅ | ✅ | ◐ | — | — |
| Rigged / skeleton items | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ | — | ✅ |
| 3D items | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ | ✅ | — |
³ Video items export their first frame as a still image in SVG/Widget.
Animations
| Feature | SVG | Widget | WebM/MP4/GIF | PNG | Lottie | |
|---|---|---|---|---|---|---|
| Simple (pulse/rotate/bounce/fade/wobble/shake/swing/jelly/breathe) | ✅ (SMIL) | ✅ | ✅ | ✕ (frame 0) | ✕ (frame 0) | ✅ (baked) |
| Keyframe animations | ✅ | ✅ | ✅ | ✕ | ✕ | ✅ |
| Relations (orbits, follows, repels, wiggle, …) | ◐⁴ | ✅ (all) | ✅ | ✕ | ✕ | ◐⁵ |
| Event relations (on_click/on_key/…) | ✕ | ✅ | ✕ | ✕ | ✕ | ✕ |
| Scroll-driven relations | ✕ | ✅ | ✕ | ✕ | ✕ | ✕ |
| Animated masks | ✕ | ✅ | ✅ | ✕ | ✕ | ✕ |
| Filters / effects (blur, glow, cutout styles) | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ |
| Blend modes | ✕ | ✕ | ✅ | ✅ | ✅ | ✕ |
⁴ A subset of relations emit CSS animations in the Animated-SVG path; complex / interactive relations don’t. ⁵ Lottie bakes procedural relations to keyframes only when the scene baker runs.
Known limitations (by design — use a different format)
- Static formats can’t animate. PNG and PDF capture a single frame. For an animated still, export a PNG-sequence or a video and pick a frame.
- Interactivity only lives in the Widget. Event relations (click, key, pointer), scroll-driven motion, and cursor-reactive relations (repels/follows the cursor) require a running browser — they’re inert in SVG/Lottie/video.
- Generators don’t ship as live code. The Widget is a minimal player; it doesn’t run the generator engine. Generator/decorative backgrounds are rasterized to an image on export instead (perfect for a static look; no live re-generation). For a live generator, embed the editor or use video.
- Filters, blend modes, masks, 3D, rigging, maps are Canvas/GPU features that don’t have a faithful SVG or Lottie representation — they render in video and raster formats only (rigging also exports to BVH, 3D to glTF).
- Lottie models keyframes well but not PinePaper’s procedural relation graph; enable the scene baker before export to bake relations into keyframes.
Recommended workflows
| You want… | Export |
|---|---|
| Maximum fidelity (everything moving) | WebM (best quality) or MP4/GIF |
| Small, embeddable, accessible (screen-reader described) | HTML Widget or Animated SVG |
| Print / high-DPI still | PDF or PNG (up to 600 DPI) |
| Frame-accurate stills for compositing | PNG-sequence |
| Hand off to After Effects / a Lottie player | Lottie (enable scene baker for relations) |
| 3D / rig into a game engine | glTF (geometry) / BVH (motion) |
Workarounds for the common gaps
- Generator / gradient canvas background missing in SVG or older widget exports → it’s now auto-rasterized for the Widget. For SVG, bake the background: export it as a PNG, set that PNG as an image background, re-export.
- Relation motion missing in SVG/Lottie → export the Widget (all relations) or a video.
- Filters/blend/3D missing in SVG → export a video for fidelity.
This matrix reflects the export code as audited 2026-06. Frame-capture formats track the live canvas automatically; the structural-format columns are the ones to watch.