Animation & values
This content is for v0.4. Switch to the latest version for up-to-date documentation.
Generated from project.v1.schema.json at the documented engine version. The schema checks shape only; the engine’s validation also checks ranges, limits, references and keyframe order.
AnimatedPoint
A position that can move along curves between its keyframes.
Its JSON is that of an Animated<Vec2>, plus optional spatial tangents on each keyframe: with them, the value travels along the cubic Bezier from one keyframe's value through its out_tangent and the next keyframe's in_tangent, at the speed its timing curve sets along the curve's length. Without them it moves in a straight line, as an Animated<Vec2> does.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | PointKeyframe[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_EffectValue
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | EffectValue | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_EffectValue[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Insets
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Insets | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Insets[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutLength
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutLength | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutLength[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutOffset
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutOffset | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutOffset[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutSize
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutSize | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutSize[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Paint
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Paint | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Paint[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Path
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Path | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Path[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Vec2
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Vec2[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_float
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float) | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_float[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_string
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | string | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_string[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Easing
A timing curve from linear progress to eased progress, without a hold.
Transitions use it directly; keyframe Interpolation adds hold.
One of:
type: "linear"
Progress advances at a constant rate.
type: "cubic_bezier"
Progress follows a CSS cubic-bezier() curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
Interpolation
Interpolation from one keyframe to the next.
Values are interpolated numerically: a rotation from 0 to 720 degrees turns twice, and one from 0 to 360 turns once. A host that wants the shortest path normalizes its keyframe values.
One of:
type: "hold"
Keep this keyframe's value until the next keyframe.
type: "linear"
Move to the next value at a constant rate.
type: "cubic_bezier"
Move to the next value along a CSS cubic-bezier() timing curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
Keyframe_EffectValue
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | EffectValue | Value at |
Keyframe_Insets
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Insets | Value at |
Keyframe_LayoutLength
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutLength | Value at |
Keyframe_LayoutOffset
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutOffset | Value at |
Keyframe_LayoutSize
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutSize | Value at |
Keyframe_Paint
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Paint | Value at |
Keyframe_Path
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Path | Value at |
Keyframe_Vec2
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Vec2 | Value at |
Keyframe_float
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | number (float) | Value at |
Keyframe_string
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | string | Value at |
PointKeyframe
One keyframe of an AnimatedPoint.
| Field | Type | Description |
|---|---|---|
in_tangent | Vec2 | The end of the way here from the previous keyframe's value, relative to this value: that curve's second control point. |
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor: how fast the value travels along the way there. |
out_tangent | Vec2 | The start of the way to the next keyframe's value, relative to this value: the curve's first control point. |
timerequired | MediaTime | Timestamp of this value, as a |
valuerequired | Vec2 | Value at |
Rgb
An opaque color as a color picker shows it: straight, sRGB-encoded components in the inclusive unit interval.
| Field | Type | Description |
|---|---|---|
bluerequired | number (float) | Blue component. |
greenrequired | number (float) | Green component. |
redrequired | number (float) | Red component. |
Rgba
A straight (not premultiplied), sRGB-encoded color with alpha, each component in 0..=1.
Written as the object, or as CSS hex: "#rgb", "#rgba", "#rrggbb" or "#rrggbbaa", any case, each digit pair a component times 255. It is written back as the object: a component need not be a multiple of 1/255.
One of:
object
| Field | Type | Description |
|---|---|---|
alpharequired | number (float) | Coverage. |
bluerequired | number (float) | Blue component. |
greenrequired | number (float) | Green component. |
redrequired | number (float) | Red component. |
string
Vec2
A two-dimensional value in normalized output coordinates.
| Field | Type | Description |
|---|---|---|
xrequired | number (float) | Horizontal component. |
yrequired | number (float) | Vertical component. |
