Skip to content

Guides

Export formats

Lottie and dotLottie, animated SVG, video with alpha, ProRes, GIF and email GIF, sound, sprites, stickers and stills, at any size. Downloads are included on Maker and Studio.

An export renders a mascot (and, for animated formats, one of its animations) to a file. Exports are jobs because video encoding takes a few seconds, but they never call a model. On Maker and Studio they never cost credits; on Free, one animation of each character downloads free and 50 credits unlocks the rest. Vector formats come straight from the rig, so they stay sharp at any size and weigh kilobytes.

Exports by plan#

Free is for trying, Maker and Studio are for shipping. On Free, exports are PNG and GIF previews up to 512 px with a small “Made with Lumorig” mark, for personal use (an email GIF counts as a GIF). The first animation (or clip) you download of a character is free, in every Free format and size, and a vector character's free animation also as Lottie, dotLottie or animated SVG, with the mark. Anything else of it (another animation, a still, a clip mascot's breathing idle, a sequence) costs 50 credits once and unlocks every Free-format download of it: all its animations or clips, including ones added later, at any allowed size. Without enough credits that request returns 402 insufficient_credits; an edited copy of uploaded art is a new character. The live <lumorig-player> embed works with a badge. Maker and Studio export every format below, clean and up to 2048 px, with commercial use. Asking for anything else on Free returns 402 plan_required with the formats Free includes in details.included. Previews follow the same rule: PNG only on Free, marked above 384 px. Self-hosted servers that don't charge credits export everything.

Formats#

Animated#

These need an animation: an animation id, an animation name, or any preset id such as wave (presets are fitted to the rig on the fly, even if you never saved one).

formatOutputNotes
lottieapplication/jsonTrue vector: every part is a named layer, no embedded bitmaps. Plays in lottie-web, iOS, Android.
dotlottieapplication/zip (.lottie)The same Lottie zipped with a manifest (dotLottie 1), about a tenth the size, for the dotLottie players on web, iOS and Android.
animated-svgimage/svg+xmlSelf-contained SVG with CSS keyframes. No JavaScript needed.
webmvideo/webmVP9 with an alpha channel: transparent video.
movvideo/quicktimeHEVC with an alpha channel: transparent video for Safari, iPhone and Mac apps.
proresvideo/quicktimeProRes 4444 with alpha: the master for video editors, Keynote and OBS. Large.
mp4video/mp4H.264, no alpha. Background defaults to white.
gifimage/gifWorks everywhere, heaviest per second.
email-gifimage/gifFor email signatures and newsletters: opens on the finished picture (classic Outlook shows only the first frame), on white, at most 640 px, plays twice. A logo's is cropped close.
wavaudio/wavA logo intro's reveal sound alone, as long as the intro (needs sound).
webpimage/webpAnimated WebP with transparency.
apngimage/apngAnimated PNG with transparency (.png extension).
spriteimage/pngOne PNG sheet: frames left to right, then top to bottom, on a grid of ceil(√frames) columns. The API returns the sheet only, not a JSON atlas.

Stills#

animation is optional here: with it, the still is posed at time t of that animation; without it you get the rest pose.

formatOutputNotes
pngimage/pngTransparent unless you pass background.
svgimage/svg+xmlThe posed drawing as plain vector.
stickerimage/pngDie-cut: a thick white border and a soft shadow.
logoimage/svg+xmlVector badge: the head in a circle of the mascot's main colour.
logo-pngimage/pngThe same badge, rasterised at size.

Export options#

POST/mascots/{id}/exports

NameTypeDescription
formatrequiredstringOne of the formats above.
animationstringAnimation id, name, or preset id. Required for animated formats.
sizeintegerOutput width in px for raster formats, 64–2048. Default 512.
fpsintegerFrames per second for animated formats, 6–60. Default 30.
backgroundstringA #rrggbb fill. Omit for transparency (mp4 falls back to white).
tnumberFor stills: seconds into the animation to capture.
durationnumberSeconds, 0.3–20: plays the whole animation in this time (a logo intro as a 2 s sting or a 1 s splash). Lottie takes it too.
framestringThe picture's shape, the mascot centred: square (default), landscape 16:9, portrait 9:16, feed 4:5, or tight (cropped close around a logo). GIF, video, WebP, APNG and animated SVG; Lottie keeps its canvas.
soundstringA logo intro's reveal sound, timed to it: whoosh, chime, pluck or digital. In mp4, mov and prores, or alone as wav. See Animate a logo.
version_idstringRender an older version without restoring it.
curl -X POST https://lumorig.com/api/v1/mascots/msc_…/exports -H "Authorization: Bearer $LUMORIG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "format": "webm", "animation": "wave", "size": 768, "fps": 30 }'
# 202 → { "id": "job_…", "type": "export", "status": "queued", … }

curl "https://lumorig.com/api/v1/jobs/job_…?wait=60" -H "Authorization: Bearer $LUMORIG_API_KEY"
# → { "status": "succeeded", "result": { "file": { "id": "file_…", "url": "/api/v1/files/file_…", "mime": "video/webm", "bytes": … } } }

Downloading files#

A finished export job has result.file. Its url is relative to the API origin and, like every file endpoint, needs your API key.

GET/files/{id}

NameTypeDescription
downloadqueryAny value (e.g. ?download=1) sends Content-Disposition: attachment with a filename like lumorig-file_….webm. Without it the file is served inline.
download
curl -L "https://lumorig.com/api/v1/files/file_…?download=1" -H "Authorization: Bearer $LUMORIG_API_KEY" -o pip-wave.webm

Files are immutable, so responses carry a year-long private cache header. Store the bytes on your own CDN if you serve them to users.

Previews#

For thumbnails and quick checks there is a synchronous still renderer. It answers in the request (no job), works with an API key or, for public mascots, with no key at all.

GET/mascots/{id}/preview

NameTypeDescription
formatstringpng (default), svg, sticker or logo.
animationstringPose from this animation (id, name or preset).
tnumberSeconds into that animation.
sizenumberWidth in px, default 512.
vstringA version id. With it the response is cacheable forever; mascot.preview_url already includes it.
thumbnail
<img src="https://lumorig.com/api/v1/mascots/msc_…/preview?animation=wave&t=0.6&size=256" alt="Pip waving" />

Choosing a format#

Measured on one character, a two-second wave at 30 fps and 512 px. Your numbers will vary with the drawing, but the ratios hold.

FormatSizePick it when
lottie65.0 KB · 6.6 KB gzippedYou ship to web, iOS or Android and want the smallest, sharpest file.
dotlottieabout a tenth of the LottieYour player reads .lottie files (dotLottie on web, iOS, Android, Flutter).
animated-svg48.0 KB · 7.6 KB gzippedYou want motion on a web page with no player script at all.
mp452.0 KBSocial posts, decks, anywhere video goes and transparency doesn't matter.
webm134.0 KBTransparent video over your own UI.
gif621.0 KBChat apps, READMEs and places that only take GIFs.
email-gif15 fps, 640 px at mostEmail signatures and newsletters, Outlook included.
mov · proresHEVC · ProRes 4444Transparent video for Safari and Apple apps, or a master for video editors and Keynote.
webp · apng457.0 KB · 1.96 MBTransparent animated images where GIF's edges look rough.
spriteone PNG sheetGame engines and canvas renderers.