Docs

Animations

Animations make things move. They can live on blueprints, instances, and parametric define bodies. Blueprint animations are inherited by instances; instance animations are added on top and can target the same property.

From/To Syntax

The most common form: animate a property from one value to another, over a duration.

imagine card
  animate position.x from -80 to 0 over 0.4s ease "ease-out" delay 0.1s

create card

ease, delay, repeat, and direction are retained when written inline. speed, blend, weight, and disabled are reliably represented as indented options. The same animation can be written as an indented property block instead of the inline form:

imagine card
  animate opacity
    from: 0
    to: 1
    duration: 0.4s
    ease: "ease-out"

create card

Percent keyframes animate a relative size or position: values interpolate in percent space and resolve against the parent each frame, so they track a parent that resizes mid-animation. A transition that mixes units on an axis, such as from 100 to 50%, resolves both keyframes against the parent and interpolates smoothly.

imagine dot
  shape: circle
  size: (10%, 10%)
  animate size from (10%, 10%) to (80%, 80%) over 1s

create dot

Keyframes

For multi-stop motion, list times and values:

imagine ball
  animate position.y
    0s: 0
    0.3s: 120 ease "ease-out"
    0.6s: 0 ease "ease-in"
    repeat: infinite
    direction: alternate

create ball

Both 0.3s: value and at 0.3s: value are accepted. Named easing values are defined by EasingType; cubic bezier easing uses a four-number tuple.

imagine ball
  animate position.y
    at 0s: 0
    at 0.3s: 120 ease "ease-out"

create ball

Expression Animations

An animation with a colon right after the property path is evaluated every frame. See expressions for the available expression scope.

imagine wiggler
  animate position.x: sin(time * 2) * 30
    blend: add

create wiggler

Accepted but Ignored Options

selector and stagger are accepted as generic animation block properties but aren't retained in a LumiDSL animation. They're runtime API features, not working LumiDSL syntax.