Skip to content

Animation & values

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 an Animated<Vec2> plus optional spatial tangents per keyframe. With them, the value travels the cubic Bezier through this keyframe's out_tangent and the next's in_tangent, at the speed its timing curve sets along the arc length. Without them it moves in a straight line.

One of:

mode: "constant"

A value without animation.

FieldTypeDescription
valuerequiredVec2

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredPointKeyframe[]

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.

FieldTypeDescription
valuerequiredEffectValue

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredInsets

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredLayoutLength

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredLayoutOffset

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredLayoutSize

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredPaint

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredPath

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_Path[]

Strictly ascending keyframes. The evaluator clamps outside the sequence.

Animated_Rgba

A value that is either constant or controlled by sorted keyframes.

One of:

mode: "constant"

A value without animation.

FieldTypeDescription
valuerequiredRgba

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_Rgba[]

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.

FieldTypeDescription
valuerequiredVec2

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequirednumber (float)

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
valuerequiredstring

Value used at every timestamp.

mode: "keyframes"

Values evaluated from their keyframe sequence.

FieldTypeDescription
keyframesrequiredKeyframe_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.

FieldTypeDescription
x1requirednumber (float)

Horizontal coordinate of the first control point, in 0..=1.

x2requirednumber (float)

Horizontal coordinate of the second control point, in 0..=1.

y1requirednumber (float)

Vertical coordinate of the first control point.

y2requirednumber (float)

Vertical coordinate of the second control point.

Interpolation

Interpolation from one keyframe to the next.

Values interpolate numerically: a rotation from 0 to 720 degrees turns twice. 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.

FieldTypeDescription
x1requirednumber (float)

Horizontal coordinate of the first control point, in 0..=1.

x2requirednumber (float)

Horizontal coordinate of the second control point, in 0..=1.

y1requirednumber (float)

Vertical coordinate of the first control point.

y2requirednumber (float)

Vertical coordinate of the second control point.

Keyframe_EffectValue

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredEffectValue

Value at time.

Keyframe_Insets

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredInsets

Value at time.

Keyframe_LayoutLength

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredLayoutLength

Value at time.

Keyframe_LayoutOffset

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredLayoutOffset

Value at time.

Keyframe_LayoutSize

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredLayoutSize

Value at time.

Keyframe_Paint

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredPaint

Value at time.

Keyframe_Path

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredPath

Value at time.

Keyframe_Rgba

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredRgba

Value at time.

Keyframe_Vec2

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredVec2

Value at time.

Keyframe_float

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequirednumber (float)

Value at time.

Keyframe_string

One timestamped control value.

FieldTypeDescription
interpolationrequiredInterpolation

Interpolation from this keyframe to its successor.

timerequiredMediaTime

Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree.

valuerequiredstring

Value at time.

PointKeyframe

One keyframe of an AnimatedPoint.

FieldTypeDescription
in_tangentVec2

The curve's second control point from the previous keyframe, relative to this value.

interpolationrequiredInterpolation

Interpolation from this keyframe to its successor: how fast the value travels along the way.

out_tangentVec2

The curve's first control point toward the next keyframe, relative to this value.

timerequiredMediaTime

Timestamp of this value, as a Keyframe's.

valuerequiredVec2

Value at time.

Rgb

An opaque color as a color picker shows it: straight, sRGB-encoded components in 0..=1.

FieldTypeDescription
bluerequirednumber (float)

Blue component.

greenrequirednumber (float)

Green component.

redrequirednumber (float)

Red component.

Rgba

A straight (not premultiplied), sRGB-encoded color with alpha, each component in 0..=1.

Read from the object or CSS hex ("#rgb", "#rgba", "#rrggbb", "#rrggbbaa", any case). Always written back as the object, since components need not be multiples of 1/255.

One of:

object

FieldTypeDescription
alpharequirednumber (float)

Coverage.

bluerequirednumber (float)

Blue component.

greenrequirednumber (float)

Green component.

redrequirednumber (float)

Red component.

string

Vec2

A two-dimensional value in normalized output coordinates.

FieldTypeDescription
xrequirednumber (float)

Horizontal component.

yrequirednumber (float)

Vertical component.