Lottie Support

The list below shows the major features supported by the latest ThorVG Lottie.

Features

Shapes Description
Ellipse Circle / Ellipse
Group Element Grouping
Path Path Shape
Polystar Polystar / Polygon
Rectangle (Rounded) Rectangle
Strokes Description
Dashes Dashed stroke style
MiterLimit Miter extension limit size
Offset Dash offset position
StrokeCap Butt / Round / Square
StrokeJoin Miter / Bevel / Round
Width Stroke width
Fills Description
Color Solid color
Opacity Fill opacity
Fill Rule NonZero / EvenOdd
Linear Gradient Linear gradient fill
Radial Gradient Radial gradient fill
Images Description
Embedded Base64 embedded image
Path Local / URL image sources
Formats JPG, PNG, WebP
Transforms Description
Anchor Point Anchor position
Auto Orient Direction-based orientation
Opacity Transform opacity
Parenting Relative transformation hierarchy
Position (Separate) X / Y coordinates
Scale X / Y scale factors
Skew Skew transformation
Interpolators Description
Linear Linear interpolation
Bezier Cubic Bezier interpolation
Hold Step / hold interpolation
Spatial Bezier Position-based Bezier curve
Rove Across Time Auto-smooth keyframes over time
Modifiers Description
Offset Path Offset applied to shape paths
Repeater Repeat shape drawing with transforms
Roundness Corner rounding for shapes
TrimPath Trim path individually or simultaneously
Masks Description
Add Add masking
Darken Darken blend mask
Difference Difference masking
Expansion Mask offset expansion
Intersect Intersect masking
Lighten Lighten blend masking
Opacity Alpha-based masking
Path Masking Path-based clipping
Subtract Subtract masking
Mattes Description
Alpha (Inverted) alpha blend masking
Luma (Inverted) grayscale blend masking
LayerEffect Description
Fill Replace fill color
Drop Shadow Drop shadow effect
Expression Control Effect control via expressions
Gaussian Blur Gaussian blur effect
Stroke Stroke modifications
Tint Tinting with single color
Tritone Tinting with three colors
Text Description
Alignment Options Char / Word / Line / All alignment
Caps Regular, AllCaps, SmallCaps
Document Default text metrics & layout
Fonts Local / URL fonts supported
Glyphs Embedded glyphs
Justify Horizontal text alignment
Outline Text outline
Range Selector Style range within text
Text Path Text along a path
Tracking Character spacing (tracking)
Others Description
Expressions Lottie scripting (JavaScript-based)
Markers Named animation time markers
Precomps Pre-composition layers
Time Remap Time remapping for animations
Time Stretch Stretching animation duration
Slots Property overriding (slots)

Expressions

Overall Support Rate: 75% (72% fully supported + 3% partially supported)

1. Global Properties

Property Type Description Status
time number Current time in seconds
comp(name) function Get composition by name
thisComp object Current composition reference
thisLayer object Current layer reference
thisProperty object Current property reference
footage(name) function Get footage by name
fromCompToSurface function Convert comp coordinates to surface
createPath function Create path programmatically
posterizeTime(fps) function Posterize time by FPS
value various Current property value
index number Layer index

2. Composition (thisComp) Properties

Property Type Description Status
width number Composition width
height number Composition height
duration number Composition duration in seconds
frameDuration number Duration of one frame (1/frameRate)
name string Composition name
layer(index/name) function Get layer by index or name
numLayers number Total number of layers
marker object Marker access
marker.key(index) function Get marker by index
marker.key(name) function Get marker by name
marker.nearestKey(t) function Get nearest marker at time
marker.numKeys number Total marker count
activeCamera object Active camera reference
ntscDropFrame boolean NTSC drop frame mode
displayStartTime number Display start time
shutterAngle number Motion blur shutter angle
shutterPhase number Motion blur shutter phase
bgColor array Background color
pixelAspect number Pixel aspect ratio

3. Layer (thisLayer) Properties

Property Type Description Status
width number Layer width
height number Layer height
index number Layer index
parent object Parent layer reference
hasParent boolean Whether layer has parent
inPoint number Layer in point (start frame)
outPoint number Layer out point (end frame)
startTime number Layer start time in seconds
hasVideo boolean Whether layer has video ❌ *
hasAudio boolean Whether layer has audio ❌ *
enabled boolean Whether layer is enabled
audioActive boolean Whether audio is active ❌ *
transform object Layer transform properties
timeRemap property Time remapping property
name string Layer name ⚠️ **
content(name) function Get content by name
effect(name/index) function Get effect by name or index
toComp(point) function Convert point to comp space
sampleImage(...) function Sample image at point
audioLevels property Audio level in decibels

* Always returns false or 0
** Commented out due to JerryScript conflict issue

4. Transform Properties

Property Type Description Status
anchorPoint array[2] Anchor point coordinates
position array[2] Position coordinates
scale array[2] Scale percentages
rotation number Rotation in degrees
opacity number Opacity (0-100)

5. Property Methods

Method Parameters Description Status
value - Current property value
valueAtTime(t) time Value at specific time
velocity - Current velocity ❌ *
velocityAtTime(t) time Velocity at specific time
speed - Current speed ❌ *
speedAtTime(t) time Speed at specific time
wiggle(freq, amp, ...) various Randomize property value
temporalWiggle(...) various Time-based wiggle
loopIn(type, numKeys) type, count Loop before first keyframe ⚠️ **
loopOut(type, numKeys) type, count Loop after last keyframe ⚠️ **
loopInDuration(...) type, time Loop in by duration ⚠️ **
loopOutDuration(...) type, time Loop out by duration ⚠️ **
key(index) index Get keyframe by index
key(markerName) name Get keyframe by marker
nearestKey(t) time Get nearest keyframe at time
numKeys - Total keyframe count
propertyIndex - Property index
propertyGroup(level) level Get property group ⚠️ ***
smooth(...) various Smooth property value

* Returns 0 by default
** Only "cycle" and "pingpong" modes supported
*** Only level 1 supported

Loop Types

Type Constant Status
Cycle "cycle"
Ping Pong "pingpong"
Offset "offset" ❌ *
Continue "continue" ❌ *

* Logged as not supported

6. Math Functions

Function Parameters Description Status
add(a, b) / $bm_add values Addition (1D, 2D, string)
sub(a, b) / $bm_sub values Subtraction (1D, 2D)
mul(a, b) / $bm_mul values Multiplication (1D, 2D)
div(a, b) / $bm_div values Division (1D, 2D)
sum(a, b) / $bm_sum values Sum (same as add)
clamp(v, min, max) value, limits Clamp value between limits
linear(...) various Linear interpolation
ease(...) various Cubic ease interpolation
easeIn(...) various Ease in interpolation
easeOut(...) various Ease out interpolation
random() - Random value (0.0-1.0)
degreesToRadians(deg) degrees Convert degrees to radians
radiansToDegrees(rad) radians Convert radians to degrees
lookAt(from, to) points Calculate rotation to look at

7. Vector Math Functions

Function Parameters Description Status
dot(vec1, vec2) vectors Dot product
cross(vec1, vec2) vectors Cross product (2D → scalar)
normalize(vec) vector Normalize vector
length(vec) vector Vector length/magnitude

8. Shape/Path Properties

Property Type Description Status
path object Path object
points() function Get path points
pointOnPath(progress) function Get point at progress (0-1)
inTangents array Path in tangent points
outTangents array Path out tangent points
isClosed boolean Whether path is closed

9. Content/Group Methods

Method Description Status
content(name) Get content by name
Group support Group objects
Path support Path objects
Polystar support Polystar objects
Trimpath support Trimpath objects

Polystar Properties

Property Type Description Status
position array[2] Polystar position
innerRadius number Inner radius
outerRadius number Outer radius
innerRoundness number Inner corner roundness
outerRoundness number Outer corner roundness
rotation number Rotation in degrees
points number Number of points

Trimpath Properties

Property Type Description Status
start number Trim start percentage
end number Trim end percentage
offset number Trim offset

10. Effect Properties

Method Parameters Description Status
effect(name/index) identifier Get effect by name or index
Effect property access name Get effect property by name

11. Adobe ADBE Reserved Keywords

Keyword Description Status
ADBE Root Vectors Group Root vectors group
ADBE Vectors Group Vectors group
ADBE Vector Shape Vector shape path

Known Limitations

1. Loop Mode Restrictions

  • ✅ Supported: "cycle", "pingpong"
  • ⚠️ Not supported: "offset", "continue" (logged only)

2. PropertyGroup Limitation

  • Only propertyGroup(1) is supported
  • Higher levels return undefined

3. Audio Properties

  • All audio-related properties return default values (false or 0)
  • No actual audio processing