Skip to content

Guides

Animate a logo

Trace a logo into its own pieces, play draw-on, wipe, shine and colour motions, add a tagline and a reveal sound, and export Lottie, video or an email GIF.

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#

idMotionWhat it doesNeeds
fadeFade inSoftly appears, growing a little, then holdsAny logo
drawDraw onIts outline draws itself in, then fills with colourAny logo
wipeWipeUncovered from left to right, then holdsAny logo
gleamFade + shineFades in, then a light sweeps across itAny logo
colourColour revealFades in grey, then its colour floods in piece by piecea colour that isn't black, white or grey
neonNeon signIts outlines buzz on like neon tubes, then it fills with colourAny logo
marknameMark + nameThe symbol pops in the middle, moves aside, then the name comes in3+ pieces, a symbol beside its name
behindName from markThe symbol lands in the middle, then the name slides out from behind it3+ pieces, a symbol beside its name
baselineBaselineEach letter rises up out of its own baseline2+ pieces
unveilUnveilOpens out from the middle to both sidesAny logo
writeWrite onTraced piece by piece like a pen, each filling as it's done2+ pieces
trackingTracking inLetters start spaced wide and close up into the word3+ pieces
revealRevealPops in piece by piece, then holds2+ pieces
riseRiseEach piece fades up into place, one after anotherAny logo
typewriterTypewriterLetters appear one at a time, like typing3+ pieces
assembleAssembleIts pieces fly in and lock together, then hold2+ pieces
dropDrop inPieces fall in from above and bounce to a stopAny logo
popPop inSprings in from nothing, then holdsAny logo
stampStampSlams down from above with a joltAny logo
slideSlide inSlides in from the left and settlesAny logo
mergeMergePieces slide in from both sides and meet2+ pieces
spreadSpreadStarts bunched in the middle, spreads out into place3+ pieces
flipinFlip inEach piece flips round into view2+ pieces
tumbleTumblePieces roll in from the side and land2+ pieces
standupStand upLetters tip up from lying flat, one by one3+ pieces
rollinRoll inRolls in from the left like a wheelAny logo
jackboxJack in the boxSprings up from tiny with a twistAny logo
flickerNeon flickerFlickers on like a neon signAny logo

Loops (16)#

idMotionWhat it doesNeeds
idleIdleBreathes gently: a logo that's alive at restAny logo
shineShineA light sweeps across it every few secondsAny logo
colourrunColour runIts second colour runs across the letters, then rests2+ pieces, a second colour on its letters
floatFloatHovers up and down, calmAny logo
pulsePulseTwo quick beats, like a heartbeatAny logo
bounceBounceHops and lands with a squashAny logo
wiggleWiggleA quick shake for attentionAny logo
tadaTadaShrinks, shakes and grows: look hereAny logo
jellyJellyStretches wide and wobbles backAny logo
swingSwingSwings from the top like a hanging signAny logo
spinSpinOne full turn, then a restAny logo
flipCoin flipFlips round like a coinAny logo
rippleRippleA wave runs through the letters3+ pieces
bopBopLetters bob to a beat, turn about2+ pieces
glitchGlitchJumps and jitters for a moment, then settles2+ pieces
scatterScatterBursts apart and snaps back together2+ 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.

NameTypeDescription
textrequiredstringUp to 60 characters, one line: Latin letters, numbers and common punctuation. Empty takes the tagline off, free.
fontstringsans (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:

NameTypeDescription
durationnumberSeconds, 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).
framestringsquare (default), landscape 16:9, portrait 9:16, feed 4:5, or tight, cropped close around the logo. Lottie keeps its own canvas.
backgroundstringA #rrggbb behind it; transparent where the format allows it when omitted (MP4 is white).
soundstringAn 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.
PlaceformatOptions
A site or an applottieor dotlottie: the same animation zipped, about a tenth the size
An email signatureemail-gifOpens on the finished logo, on white, tight, at most 640 px, two plays
A YouTube intromp4duration: 2, frame: "landscape", sound: "whoosh"
Reels and Shortsmp4frame: "portrait"
Over footage in an editorproresTransparent ProRes 4444, large
Transparent video on a sitemov + webmSafari plays the MOV, other browsers the WebM
Your editor's sound trackwavsound: "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.