A logo uploaded with engine: "logo" is traced into its own pieces: the badge or plate it sits on (base), then each letter and mark on it (piece_1…piece_n, in reading order), under a root logo that whole-logo motions move. Nothing is redrawn, so the shapes and colours are your upload's. It plays the 44 logo motions below, never the character ones, and exports like any rig.
A logo costs 60 credits once it is traced, with every motion, recolour, length, frame and sound included; one that can't be traced costs nothing. A tagline is 10 credits to set or change. See Credits & limits.
Create a logo#
POST/mascots
Upload the file first (POST /uploads): an SVG is best; a PNG or JPG works on a plain or transparent background. Flat colours trace cleanly, gradients come out as flat areas of colour, and a logo splits into at most 20 pieces (the nearest are joined beyond that). The call returns the finished mascot and its job at once; there is nothing to wait for.
curl -X POST https://lumorig.com/api/v1/uploads -H "Authorization: Bearer $LUMORIG_API_KEY" -F file=@logo.svg
# → { "id": "upl_…", … }
curl -X POST https://lumorig.com/api/v1/mascots -H "Authorization: Bearer $LUMORIG_API_KEY" -H "Content-Type: application/json" \
-d '{ "upload_id": "upl_…", "engine": "logo", "name": "Acme" }'
# → { "mascot": { "id": "msc_…", "logo": true, "status": "ready", … }, "job": { "type": "logo", "status": "succeeded", "credits": 60 } }Motions#
Play any of these by id: add one with POST /mascots/{id}/animations { preset }, or export it straight away by passing the id as animation. A motion the logo can't play (too few pieces, no symbol beside the name) pops it in whole instead and says so in the clip's notes.
Intros (28): play once and hold the logo#
| id | Motion | What it does | Needs |
|---|---|---|---|
fade | Fade in | Softly appears, growing a little, then holds | Any logo |
draw | Draw on | Its outline draws itself in, then fills with colour | Any logo |
wipe | Wipe | Uncovered from left to right, then holds | Any logo |
gleam | Fade + shine | Fades in, then a light sweeps across it | Any logo |
colour | Colour reveal | Fades in grey, then its colour floods in piece by piece | a colour that isn't black, white or grey |
neon | Neon sign | Its outlines buzz on like neon tubes, then it fills with colour | Any logo |
markname | Mark + name | The symbol pops in the middle, moves aside, then the name comes in | 3+ pieces, a symbol beside its name |
behind | Name from mark | The symbol lands in the middle, then the name slides out from behind it | 3+ pieces, a symbol beside its name |
baseline | Baseline | Each letter rises up out of its own baseline | 2+ pieces |
unveil | Unveil | Opens out from the middle to both sides | Any logo |
write | Write on | Traced piece by piece like a pen, each filling as it's done | 2+ pieces |
tracking | Tracking in | Letters start spaced wide and close up into the word | 3+ pieces |
reveal | Reveal | Pops in piece by piece, then holds | 2+ pieces |
rise | Rise | Each piece fades up into place, one after another | Any logo |
typewriter | Typewriter | Letters appear one at a time, like typing | 3+ pieces |
assemble | Assemble | Its pieces fly in and lock together, then hold | 2+ pieces |
drop | Drop in | Pieces fall in from above and bounce to a stop | Any logo |
pop | Pop in | Springs in from nothing, then holds | Any logo |
stamp | Stamp | Slams down from above with a jolt | Any logo |
slide | Slide in | Slides in from the left and settles | Any logo |
merge | Merge | Pieces slide in from both sides and meet | 2+ pieces |
spread | Spread | Starts bunched in the middle, spreads out into place | 3+ pieces |
flipin | Flip in | Each piece flips round into view | 2+ pieces |
tumble | Tumble | Pieces roll in from the side and land | 2+ pieces |
standup | Stand up | Letters tip up from lying flat, one by one | 3+ pieces |
rollin | Roll in | Rolls in from the left like a wheel | Any logo |
jackbox | Jack in the box | Springs up from tiny with a twist | Any logo |
flicker | Neon flicker | Flickers on like a neon sign | Any logo |
Loops (16)#
| id | Motion | What it does | Needs |
|---|---|---|---|
idle | Idle | Breathes gently: a logo that's alive at rest | Any logo |
shine | Shine | A light sweeps across it every few seconds | Any logo |
colourrun | Colour run | Its second colour runs across the letters, then rests | 2+ pieces, a second colour on its letters |
float | Float | Hovers up and down, calm | Any logo |
pulse | Pulse | Two quick beats, like a heartbeat | Any logo |
bounce | Bounce | Hops and lands with a squash | Any logo |
wiggle | Wiggle | A quick shake for attention | Any logo |
tada | Tada | Shrinks, shakes and grows: look here | Any logo |
jelly | Jelly | Stretches wide and wobbles back | Any logo |
swing | Swing | Swings from the top like a hanging sign | Any logo |
spin | Spin | One full turn, then a rest | Any logo |
flip | Coin flip | Flips round like a coin | Any logo |
ripple | Ripple | A wave runs through the letters | 3+ pieces |
bop | Bop | Letters bob to a beat, turn about | 2+ pieces |
glitch | Glitch | Jumps and jitters for a moment, then settles | 2+ pieces |
scatter | Scatter | Bursts apart and snaps back together | 2+ pieces |
The outline, window, light and colour effects play the same in Lottie, animated SVG, GIF and video: they are written as trim paths, masks, gradient fills and colour layers, which every Lottie player draws.
Tagline#
POST/mascots/{id}/tagline
A line or web address under the logo, set in one of three open-licence fonts and turned into outlines like the rest of the logo. The logo is shrunk to make room when it must, inside its own box. The line gets a palette colour of its own, tagline, to recolour apart, and every intro brings it in as the logo locks. A new version is made, so GET /mascots/{id}/versions steps back.
| Name | Type | Description |
|---|---|---|
textrequired | string | Up to 60 characters, one line: Latin letters, numbers and common punctuation. Empty takes the tagline off, free. |
font | string | sans (default), bold or mono. |
curl -X POST https://lumorig.com/api/v1/mascots/msc_…/tagline -H "Authorization: Bearer $LUMORIG_API_KEY" -H "Content-Type: application/json" \
-d '{ "text": "acme.com", "font": "sans" }'
# → the mascot, with "tagline": { "text": "acme.com", "font": "sans" }Setting or changing it costs 10 credits as a finished job of type tagline; the same words and font again cost nothing.
Export#
Logos export through POST /mascots/{id}/exports like any mascot. Four options matter most for a logo:
| Name | Type | Description |
|---|---|---|
duration | number | Seconds, 0.3–20: the whole motion plays in this time. 2 for a video sting, 1 for an app splash (Android stops a splash animation at one second). |
frame | string | square (default), landscape 16:9, portrait 9:16, feed 4:5, or tight, cropped close around the logo. Lottie keeps its own canvas. |
background | string | A #rrggbb behind it; transparent where the format allows it when omitted (MP4 is white). |
sound | string | An intro's reveal sound: whoosh, chime, pluck or digital, made from the motion's timing so its hit lands as the logo locks. In mp4 and mov as AAC, in prores as PCM, or alone as format wav. Loops take no sound. |
| Place | format | Options |
|---|---|---|
| A site or an app | lottie | or dotlottie: the same animation zipped, about a tenth the size |
| An email signature | email-gif | Opens on the finished logo, on white, tight, at most 640 px, two plays |
| A YouTube intro | mp4 | duration: 2, frame: "landscape", sound: "whoosh" |
| Reels and Shorts | mp4 | frame: "portrait" |
| Over footage in an editor | prores | Transparent ProRes 4444, large |
| Transparent video on a site | mov + webm | Safari plays the MOV, other browsers the WebM |
| Your editor's sound track | wav | sound: "chime" |
curl -X POST https://lumorig.com/api/v1/mascots/msc_…/exports -H "Authorization: Bearer $LUMORIG_API_KEY" -H "Content-Type: application/json" \
-d '{ "format": "mp4", "animation": "draw", "duration": 2, "frame": "landscape",
"background": "#ffffff", "sound": "whoosh", "size": 1920 }'From an agent#
The MCP server's create_mascot takes engine: "logo", animate_mascot takes any logo motion id, set_logo_tagline sets the line, and export_mascot takes duration, frame and sound. See Use from AI agents, or the logo animation page to watch every motion on our own logo.