Browse documentation

Complete field reference

Every object type, every field, every animation, every setting — the whole schema in one place.

This is the exhaustive version of the reference section — every object type with every one of its fields, every animation kind with every one of its fields, and every project-level setting, all in one page. The other reference pages (Object types, Animations, Scene settings) cover the same ground with more narrative; this page trades narrative for completeness, so nothing is left out or summarized away.

Field types use plain names: number, string, boolean, point (an {x, y} pair), point3 (an {x, y, z} triple), color (a hex string or null for none). Where a field only accepts a fixed set of values, they're listed as a | b | c.

Table of contents

  1. Shared fields every object has
  2. Text & formula objects
  3. Path & field objects
  4. 2D shapes
  5. Lines, arrows, braces, dots
  6. Coordinate systems & function graphs
  7. 3D objects
  8. Media
  9. Data & diagram objects
  10. Teaching annotations & groups
  11. Animation events — shared fields
  12. Kind: manim (whole-object animations)
  13. Kind: property (keyframes)
  14. Kind: transform
  15. Kind: matrix
  16. Kind: graphStyle
  17. Kind: camera
  18. Easing and speed ramps
  19. Every animation preset
  20. Every motion template
  21. Every recipe
  22. Every camera template
  23. Variable bindings (live links)
  24. Audio
  25. Physics — bodies and simulation
  26. Render settings
  27. Blocked animation combinations

Shared fields every object has

Every object in the project — every shape, every 3D solid, every chart — carries this same base set of fields, on top of whatever fields are specific to its type (listed type-by-type below).

FieldTypeNotes
idstringunique, assigned on creation
typestringthe object type tag (circle, text, sphere, …)
namestringshown in the Layers panel; freely renamable
space"canvas" or unsetunset = lives in the main scene editor; "canvas" = lives in the separate Canvas studio workspace
positionpointcenter, in scene units
positionZnumberdepth in a 3D scene (default 0)
rotationnumberdegrees, counter-clockwise about the z axis
rotationX, rotationYnumberdegrees — 3D tilt/spin, also available on path objects
fixedInFramebooleanin a 3D scene, pins a 2D object to the screen instead of the 3D world
dashedbooleandashed outline
scalepointx/y scale factors, default {1, 1}
opacitynumber0–1, overall opacity
fillcolor or nullnull = no fill
fillOpacitynumber0–1
strokecolor or nullnull = no outline
strokeWidthnumberoutline thickness
visiblebooleanhidden objects are skipped entirely
lockedbooleanprotected from accidental drag/edit
zIndexnumberhigher draws on top
parentIdstring or nullfor grouping
metallic, roughness, emission, emissionIntensity, transmission, wireframenumber/color/booleanPBR material controls — editor preview (WebGL) only, not compiled into the render
physicsobject or unsetrigid-body settings, 3D solids only — see Physics
bakedMotionobject or nullthe solved per-frame motion track after baking a simulation
bindingsarraylive variable links — see Variable bindings
detailsobjectper-shape construction extras (coordinates, labels, medians, incircle, etc.) — see Object types for the full flag list
spawnobject or unsetprocedural spawn — compiles this object into N copies via a Python for-loop, each shifted/rotated/scaled/recolored by an expression in the copy index i; see Procedural spawn

Procedural spawn

Set on any object (Info tab → "Procedural spawn") to turn one placed instance into count copies, each nudged by a rule evaluated at its own index i — the escape hatch for "200 dots following a rule" content, without writing custom Python.

FieldTypeNotes
countnumbertotal copies, including the base object itself (2–2000)
dxExpr, dyExprstring or unsetPython expression in i — x/y offset for copy i
drotExprstring or unsetPython expression in i — rotation in degrees
dscaleExprstring or unsetPython expression in i — multiplies the template's own scale
colorExprstring or nullPython expression in i and count, 0..1 — recolors along a two-stop gradient

Compiles to a single rewritten assignment: <var> = VGroup(*[<var>.copy().shift(...).rotate(...) for i in range(count)]) — a real Python local named count is bound just before the loop so colorExpr expressions like i / count resolve correctly. Leaving every expression field empty stacks every copy in the same spot (a warning is surfaced for that case).

The default color cycle

New shapes without an explicit color cycle through: MANIM blue #58C4DD, teal #5CD0B3, green #83C167, yellow #FFFF00, gold #F0AC5F, red #FC6255, maroon #C55F73, purple #9A72AC, white #FFFFFF, gray #888888.


Text & formula objects

text

FieldType
textstring
fontSizenumber
fontFamilystring
fontWeightNORMAL | BOLD
italicboolean
lineSpacingnumber
alignleft | center | right

mathtex

FieldType
texstring (LaTeX)
fontSizenumber
texModemathtex | texmathtex renders in math mode, tex as raw LaTeX text mode
colorParts{tex, color}[] or unset
linesstring[] or unset
linesShownnumber or unset

A standalone mathtex with lines set is the "show several aligned steps at once, revealed one at a time" complement to derivation (which morphs ONE equation through states instead of stacking lines) — see Reveal an aligned derivation.

derivation

FieldType
stepsstring[] — one LaTeX string per state
stepnumber — current step index, keyframable to morph through the sequence
fontSizenumber

Path & field objects

path

FieldType
nodesarray of anchor points, each { x, y, hIn?, hOut? }hIn/hOut are bezier handle offsets relative to the anchor
closedboolean

Every anchor's x and y are independently keyframable as nodes.0.x, nodes.0.y, nodes.1.x, and so on.

layered_matrix

FieldType
layersstring[] — one entry per z-stacked layer; rows separated by newlines, cells by |
layerGapnumber — z distance between layers
fontSizenumber

vector_field

FieldType
xExpression, yExpressionstring — the field's x/y component as a function of (x, y)
xRange, yRange[number, number]
spacingnumber — grid spacing between sampled arrows/streamlines
vectorScalenumber — arrow length multiplier (renderStyle: "arrows") or stream line thickness (renderStyle: "streamlines")
renderStylearrows | streamlines or unset

2D shapes

circle

FieldType
radiusnumber

ellipse

FieldType
width, heightnumber

square

FieldType
sideLengthnumber
cornerAnglenumber, degrees — 90 = a true square, anything else skews it into a rhombus

rectangle / rounded_rectangle

FieldType
width, heightnumber
cornerRadiusnumber — 0 for rectangle, positive for rounded_rectangle
cornerAnglenumber, degrees — 90 = a true rectangle, anything else skews it into a parallelogram

triangle

FieldType
baseLengthnumber — the base edge (A–B)
angleAnumber, degrees — interior angle at the left base vertex
angleBnumber, degrees — interior angle at the right base vertex

regular_polygon

FieldType
sidesnumber
radiusnumber

polygon

FieldType
pointspoint[] — explicit vertices, relative to center

arc / sector

FieldType
radiusnumber
startAnglenumber, degrees
anglenumber, degrees — the sweep

arc has no fill by default (it's an open curve); sector fills the pie-slice wedge.

star

FieldType
pointsnumber — point count
outerRadius, innerRadiusnumber

annulus

FieldType
innerRadius, outerRadiusnumber

annular_sector

FieldType
innerRadius, outerRadiusnumber
startAnglenumber, degrees
anglenumber, degrees — the sweep

Lines, arrows, braces, dots

line / arrow / double_arrow / vector

FieldType
start, endpoint — endpoints relative to the object's center
tipLengthnumber — arrow-head length (arrow/double_arrow/vector only)

curved_arrow

FieldType
start, endpoint
angleAmountnumber, degrees — how much the arc curves

brace

FieldType
widthnumber — ignored when targetObjectId is set
directionup | down | left | right
labelstring — optional LaTeX label; compiles via Brace.get_tex(...)
targetObjectIdstring or null

dot

FieldType
radiusnumber

Coordinate systems & function graphs

number_line

FieldType
min, maxnumber
stepnumber — tick spacing
lengthnumber
includeNumbersboolean
includeTipboolean
showTrackerboolean or unset
trackedValuenumber or unset

axes / number_plane / complex_plane

FieldType
xRange, yRange[min, max, step]
width, heightnumber
includeNumbersboolean
includeTipsboolean
xLabel, yLabelstring
backgroundLineOpacitynumber — number_plane only, the faint grid lines
plotsarray of plotted functions — see Plots below

Plots on axes objects

axes, number_plane, complex_plane, and threed_axes can each carry a plots array — functions drawn on top of the coordinate system:

FieldType
idstring
expressionstring — a numpy expression in x
colorcolor
showFormulaboolean
visibleboolean
appear{ start, duration } or null — a draw-on window on the timeline
anim{ from, to, start, duration } or null — sweeps a parameter named a through the expression over that window

function_graph

FieldType
expressionstring — numpy expression in x
xRange[number, number]
axesIdstring or null — which axes object to plot on; null = the scene frame directly
showArea, areaFrom, areaToboolean, number, number — shaded area under the curve
showRiemann, riemannDxboolean, number — Riemann rectangles and their width
showTangent, tangentXboolean, number — a tangent line and where it touches
showDerivativeboolean — plots f′(x) alongside f(x)
showDomain, showRangeboolean
showRootsboolean — marks x-intercepts
showMaximum, showMinimumboolean
showIntegralValueboolean — displays the numeric area value
showTracker, trackerXboolean, number — a dot riding the curve at x = trackerX, keyframable to sweep it along (e.g. a limit or a moving particle) — needs axesId set, since placement uses axes.c2p(x, f(x))
showTrackerLabelboolean — shows a live (x, f(x)) coordinate label next to the tracked dot

parametric_function

FieldType
xExpression, yExpressionstring — numpy expressions in t
tRange[number, number]
axesIdstring or null

3D objects

sphere

FieldType
radiusnumber

ellipsoid

FieldType
radiusX, radiusY, radiusZnumber — independent radius on each axis

No native Ellipsoid class exists in Manim, so this compiles to a unit Sphere stretched per axis: Sphere(radius=1).stretch(radiusX, dim=0).stretch(radiusY, dim=1).stretch(radiusZ, dim=2).

cube

FieldType
sideLengthnumber

prism

FieldType
width, height, depthnumber

cone

FieldType
baseRadius, heightnumber

cylinder

FieldType
radius, heightnumber

torus

FieldType
majorRadius, minorRadiusnumber

polyhedron

FieldType
solidtetrahedron | octahedron | dodecahedron | icosahedron | pyramid | custom
edgeLengthnumber — edge length for the four named Platonic presets
baseSide, pyramidHeightnumber — base side length and apex height, used when solid = pyramid
verticespoint3[] — custom mesh vertices, used when solid = custom
facesnumber[][] — custom faces as loops of vertex indices, used when solid = custom

The four named Platonic presets compile to Manim's own Tetrahedron/Octahedron/Dodecahedron/Icosahedron. pyramid has no dedicated Manim class either, so it compiles the same way a custom mesh does — a Polyhedron(vertex_coords=..., faces_list=...) built from 5 generated points (4 base corners + 1 apex).

threed_axes

FieldType
xRange, yRange, zRange[min, max, step]
width, height, depthnumber
xLabel, yLabel, zLabelstring
includeNumbersboolean
plotsarray — same shape as axes plots, drawn in the xy-plane
showGridXY, showGridXZ, showGridYZboolean — background grid planes

surface3d

FieldType
expressionstring — numpy expression in x and y
xRange, yRange[number, number]
resolutionnumber — mesh subdivision
fillA, fillBcolor — checkerboard pattern colors

parametric_surface

FieldType
xExpression, yExpression, zExpressionstring — numpy expressions in u and v
uRange, vRange[number, number]
resolutionnumber
fillA, fillBcolor — checkerboard pattern colors

parametric_curve3d

FieldType
xExpression, yExpression, zExpressionstring — numpy expressions in t
tRange[number, number]

line3d / arrow3d

FieldType
start3d, end3dpoint3
thicknessnumber — tube thickness
tipLengthnumber — cone-tip length (arrow3d only)

dot3d

FieldType
radiusnumber

Media

image / svg

FieldType
assetIdstring — id of the uploaded asset
width, heightnumber

video

FieldType
assetIdstring — id of the uploaded video asset
width, heightnumber
trimStart, trimEndnumber — seconds trimmed from the start/end of the source clip
mutedboolean — mutes the clip's own audio
volumenumber, 0–1 — the clip's own audio volume when not muted

An embedded video clip. Manim has no native video mobject, so this compiles to an ImageMobject whose pixel_array is swapped every frame by an add_updater that decodes the source with OpenCV (opencv-python-headless, bundled into both the cloud renderer and the desktop Render Agent) — frame selection is keyed by elapsed scene time × the source's own fps, so playback speed is correct even when the source clip's frame rate differs from the scene's. The clip's own audio (unless muted) is muxed with self.add_sound, starting at whichever moment the object actually appears on stage (its own intro animation's start time, or 0 if it has none). The canvas preview shows only a static placeholder — live video playback happens exclusively in the actual render.


Data & diagram objects

counter

FieldType
valuenumber — the displayed number, keyframable to count up/down
decimalsnumber
fontSizenumber

graph (network graph)

FieldType
verticesnumber — vertex count, placed evenly on a circle
edgesstring — 1-based edge list, e.g. "1-2, 2-3"
layoutRadiusnumber
showLabelsboolean

Individual vertices/edges can be recolored over time with a graphStyle animation — see Kind: graphStyle.

table

FieldType
contentstring — rows on separate lines, cells separated by |
mathModeboolean — render cells as LaTeX instead of plain text
fontSizenumber

code

FieldType
codestring
languagestring
lineNumbersboolean
fontSizenumber

matrix

FieldType
rowsstring[][] — entries row-major, each a number or LaTeX string
bracketsquare | paren | curly | bar | none
decimalboolean — render as a decimal matrix
decimalsnumber
fontSizenumber

bar_chart

FieldType
labelsstring — comma-separated
valuesstring — comma-separated
yMin, yMax, yStepnumber
width, heightnumber
barColorscolor[] — cycled across bars
showValuesboolean

pie_chart

FieldType
labelsstring — comma-separated
valuesstring — comma-separated proportions
radiusnumber
sliceColorscolor[] — cycled across slices
showLabels, showPercentagesboolean
innerRadiusRationumber — 0 = full pie, toward 1 = a thinner donut ring

box_plot

FieldType
valuesstring — raw sample values, comma-separated (quartiles are computed from these, linear-interpolation method — the same convention as numpy/matplotlib's default)
width, heightnumber
orientationhorizontal | vertical
showOutliersboolean — marks points beyond 1.5×IQR from Q1/Q3 as dots
showLabelsboolean — shows a median-value label

A five-number-summary box plot for probability/statistics content, not a native Manim mobject — compiles to a VGroup of Rectangle (the Q1–Q3 box), Line (median + whiskers), and optional Dots (outliers), built from the computed quartiles the same way pie_chart is hand-built from Sector wedges.


Teaching annotations & groups

callout

FieldType
textstring
fontSizenumber
mathModeboolean — render as LaTeX instead of plain text
boxboolean — draw the rounded background box
pointerboolean — draw a leader arrow to pointTo
pointTopoint — arrow target, relative to the callout's position
stepnumber — an optional "Step N" badge prefix; 0 = none

highlight

FieldType
shapebox | ellipse | underline
width, heightnumber

group

Has no fields of its own beyond the shared fields — it's a container used to move/scale/rotate several objects together.


Animation events — shared fields

Every animation event on the timeline — regardless of kind — carries this base set of fields, on top of whatever's specific to its kind (below):

FieldTypeNotes
idstring
objectIdstringwhich object this event animates ("" for camera events)
startnumberscene-time seconds
durationnumberseconds
easingstringone of the 10 easing names
easingCurveobject or unsetcustom cubic-bezier control points, only read when easing = "custom"
speedRamparray or nullCapCut-style time-warp nodes — see Easing and speed ramps
mutedbooleandisabled without deleting
lockedbooleanprotected from accidental drag

Kind: manim (whole-object animations)

FieldType
animationone of the 23 ManimAnimationName values
edgeUP | DOWN | LEFT | RIGHT — only used by GrowFromEdge
shiftpoint — slide direction/distance, only used by FadeIn/FadeOut

The full list of Manim animations

Entrances (bring the object from not-there to fully visible):

NameWhat it does
CreateDraws the outline on, then fills
WriteHandwriting-style stroke-on (text/formulas)
DrawBorderThenFillTraces the border, then the fill sweeps in
FadeInOpacity 0→1, optional shift slide
GrowFromCenterScales up from a point at its center
GrowFromEdgeScales up from one edge (edge field picks which)
GrowArrowGrows from tail to tip (arrows only)
SpinInFromNothingScales up while spinning in
AddTextLetterByLetterTypes on character by character (text only)

Exits (the reverse):

NameWhat it does
FadeOutOpacity 1→0
UncreateUn-draws the outline (reverse of Create)
UnwriteReverse handwriting stroke-off
ShrinkToCenterScales down to a point
RemoveTextLetterByLetterErases character by character

One-shot emphasis (plays in place, doesn't change presence):

NameWhat it does
FlashA light burst around it
IndicateAn attention pulse
CircumscribeDraws a highlight box/circle around it
ShowPassingFlashA flash sweeps along the outline
FocusOnA spotlight narrows onto it
WiggleA playful shake
ApplyWaveA ripple runs through it
BroadcastRings pulse outward from it
RotatingOne full turn in place
Every exit animation actually removes the mobject from the scene (Manim's remover=True) — not just visually, but from the scene graph. Anything scheduled on the same object afterward needs an entrance animation first to bring it back.

Kind: property (keyframes)

FieldType
propertywhich field is being animated — see the full property list below
fromnumber, point, color, or nullnull means "start at whatever value the property already holds"
tonumber, point, or color — the destination value
valueDisplay{ enabled, position, label, decimals } or null — an optional on-screen live number readout (numeric properties only)

Universal properties (every object type)

position (point), positionZ (number), rotation (number, °), rotationX/rotationY (number, °, 3D + path only), scale (point), opacity (0–1), fill (color), stroke (color), strokeWidth (number), fillOpacity (0–1).

Every animatable property, by object type

Beyond the universal set above, each object type exposes its own geometry fields as keyframable properties — this is exactly the field list from the per-type sections above, minus the handful of string/array/boolean fields that can't be smoothly animated (like text, bracket, or solid). The complete per-type list:

Object typeExtra animatable properties
circle, dot, regular_polygonradius
ellipsewidth, height
squaresideLength, cornerAngle
rectangle, rounded_rectanglewidth, height, cornerAngle (+ cornerRadius for rounded)
trianglebaseLength, angleA, angleB
starouterRadius, innerRadius
annulusinnerRadius, outerRadius
annular_sector, arc, sectorinnerRadius/radius, outerRadius, startAngle, angle (as applicable)
line, arrow, double_arrow, vectorstart.x, start.y, end.x, end.y (+ tipLength for arrows)
curved_arrowstart.x/.y, end.x/.y, angleAmount
bracewidth
text, mathtex, layered_matrix, derivation, counter, table, code, matrix, calloutfontSize (+ step for derivation, value for counter, linesShown for a mathtex aligned block)
vector_fieldxRange.0/.1, yRange.0/.1, spacing, vectorScale
layered_matrixlayerGap
number_linemin, max, step, length (+ trackedValue when a tracker is shown)
axes, number_plane, complex_plane, threed_axesxRange.0/.1, yRange.0/.1, width, height (+ zRange.0/.1, depth for threed_axes)
function_graphxRange.0/.1, areaFrom, areaTo, riemannDx, tangentX, trackerX
parametric_function, parametric_curve3dtRange.0, tRange.1
sphereradius
ellipsoidradiusX, radiusY, radiusZ
cubesideLength
prismwidth, height, depth
conebaseRadius, height
cylinderradius, height
torusmajorRadius, minorRadius
line3d, arrow3dstart3d.x/.y/.z, end3d.x/.y/.z, thickness (+ tipLength for arrow3d)
surface3dxRange.0/.1, yRange.0/.1
parametric_surfaceuRange.0/.1, vRange.0/.1
polyhedronedgeLength (Platonic presets), baseSide, pyramidHeight (pyramid)
graphlayoutRadius
image, svgwidth, height
bar_chartwidth, height, yMin, yMax, yStep
pie_chartradius, innerRadiusRatio
highlightwidth, height
pathnodes.0.x, nodes.0.y, nodes.1.x, nodes.1.y, … one pair per anchor point

Kind: transform

FieldType
transformone of the 9 transform types
targetObjectIdstring — the object this one morphs into (must already exist in the scene)

The full list of transforms

NameBehavior
TransformMorphs in place; the source object visually becomes the target's shape, but the source stays the "real" object on stage
ReplacementTransformSame morph, but the target object actually replaces the source in the scene afterward
TransformMatchingTexMatches LaTeX tokens between two formulas — matched pieces slide into place, the rest crossfades
TransformMatchingShapesSame idea for non-text objects, matched by shape structure
FadeTransformCrossfades while moving, without shape-matching
ClockwiseTransformMorphs while rotating clockwise through the turn
CounterclockwiseTransformMorphs while rotating counter-clockwise
TransformFromCopyLike Transform, but leaves the source in place and animates a copy of it instead
MoveAlongPathNot a morph — the object rides along the target's outline as a motion path

ReplacementTransform, TransformMatchingTex, TransformMatchingShapes, and FadeTransform are the four replacing transforms — the source object stops existing on stage afterward, and the target takes over. The other five keep the original object on stage with its points morphed to look like the target.

Kind: matrix

FieldType
matrix[a, b, c, d] — the 2×2 row-major matrix [[a,b],[c,d]], applied about the scene origin
matrix39 numbers, row-major 3×3, or null — optional, for 3D scenes; takes priority over matrix in the render when set

The 2D canvas preview can only show the 3×3 map's upper-left 2×2 block; the true 3D result only appears once you render.

Kind: graphStyle

FieldType
targeteither { part: "vertex", index } or { part: "edge", from, to }
fromcolor or nullnull = the vertex/edge's current color at the event's start
tocolor

Only targets a graph (network graph) object's vertices/edges — chain several with staggered start times to build a BFS/DFS/sorting-style traversal highlight.

Kind: camera

Has no objectId (always "") — it targets the scene camera directly.

FieldType
camera.positionpoint — 2D frame center
camera.znumber — 3D frame-center height
camera.zoomnumber — frame scale, 1 = default
camera.rotationnumber, degrees — 2D frame roll
camera.phinumber, degrees — 3D polar angle from the z axis
camera.thetanumber, degrees — 3D azimuth about the z axis

Only the fields you actually set on a given camera event are animated — one that only sets zoom leaves position/rotation/phi/theta exactly where the previous camera event left them.


Easing and speed ramps

The 10 easing names

NameShape
linearConstant speed
smoothManim's real rate_functions.smooth — a normalized sigmoid, gentle ease in and out
ease_inCubic ease-in — starts slow, accelerates
ease_outCubic ease-out — starts fast, decelerates
ease_in_outCubic both ways
bounceEase-out bounce — settles with a few small bounces at the end
elasticOvershoots and springs back before settling
backOvershoots past the target once, then eases back
exponentialVery slow start, sharp acceleration near the end
customA hand-drawn cubic-bezier curve — control points {x1, y1, x2, y2}, editable in the Easing editor

Speed ramp

Every event can also carry a speedRamp — a list of { t, speed } nodes (t = position within the event's own duration, 0–1; speed = playback-rate multiplier, 0.1×–10×). It warps time CapCut-style — accelerating or slow-motioning inside the event — without changing the event's total duration, and composes with easing (the ramp warps time first, then easing shapes the warped result).

The 6 speed-ramp presets

PresetFeelNode shape
MontageQuick hit, then settlefast start, sharp slow dip mid-way, settles
HeroDramatic slow-motion in the middleslow bookends, deep slow-motion center
BulletFreeze mid-flight, then releasefast in, near-freeze in the middle, fast out
Jump cutSlow bookends, whip through the middleslow start/end, very fast middle
Flash inCrawl, then accelerate awaystarts almost frozen, races to full speed
Flash outBurst in, land in slow motionstarts fast, eases into near-freeze

Every animation preset

The Anim tab's quick-animate cards — each inserts one ready-made animation event with tuned duration and easing.

PresetKindFeel
Fade InentranceSoft opacity entrance
Pop InentranceGrows from center with a slight overshoot
Slide ← / → / ↑ / ↓entranceFades in while sliding from the given direction
CreateentranceDraws the shape on, stroke and fill together
Draw+FillentranceTraces the border, then fills in
WriteentranceHandwriting-style reveal (text & formulas)
Type OnentranceText appears letter by letter
Spin InentranceSpins up from nothing
PulseemphasisAn attention pulse
WiggleemphasisA playful shake
FlashemphasisA light burst around it
HighlightemphasisDraws a highlight box around it
FocusemphasisA spotlight narrows onto it
WaveemphasisA ripple runs through it
Spin 360°emphasisOne full turn in place
Fade OutexitSoft opacity exit
Drop OutexitFalls away downward while fading
EraseexitUn-draws the outline (reverse of Create)
ShrinkexitCollapses to the center

Every motion template

Single, self-contained pieces from the Templates panel's Motion templates section — each inserts a small pre-built group of objects and animations at the playhead.

Text

TemplateWhat it builds
Title introA big title with an underline that writes on, then fades away
Chapter introA numbered chapter card with an accent bar
Lower thirdA name + role card sliding in from the left
QuoteA large quote with an author credit
TypewriterText types on letter by letter, monospace
Word staggerA phrase reveals one word at a time
Letter cascadeEach letter pops in on its own beat

Info

TemplateWhat it builds
Bullet listA heading with three staggered bullet points
Process stepsThree milestones appearing along a timeline
Comparison · VSTwo panels facing off around a VS badge
Big stat counterA number counting up over its caption
Formula spotlightA formula writes on, then gets circled
Callout arrowA curved arrow and label pointing at a spot
Countdown 3·2·1Three numbers popping in sequence
Progress barA bar filling left-to-right with a label
End cardA "thanks for watching" outro screen

Shapes

TemplateWhat it builds
Shape trioA circle, square, and triangle pop in and pulse
Shape morphA circle draws on, then morphs into a square

3D

TemplateWhat it builds
3D graph revealAxes and a saddle surface fade in while the camera orbits
3D knot tourA trefoil knot draws on, then the camera circles it
Platonic paradeThe four Platonic solids pop in and spin in place
3D vectorsX/Y/Z basis arrows grow, then a vector reaches a marked point

Every recipe

Multi-step compositions from the Templates panel's Recipes section — several templates and camera moves chained together with tuned timing offsets, shown as numbered step chips.

Math

RecipeWhat it does
Math proof revealA formula writes on, gets circled, and a chapter card settles in — a full explainer beat
3D graph tourAxes and a surface reveal, then an orbiting camera lap around it
Compare two approachesA VS panel, then a stat counter tallying the winner

Story

RecipeWhat it does
Video openerA title card, then a chapter "01" hands off right after it fades
Talking-head explainerA lower-third intro, bullet points, then a callout for the key idea
How it worksA process-steps walkthrough, ending on a progress-bar payoff
Video outroA stat recap card leading into a thanks-for-watching end card

Social

RecipeWhat it does
Social hook + revealA countdown grabs attention, then kinetic word-stagger text delivers the punchline
Punchy stat + CTAA number counts up, then the end card lands the follow/share ask

3D

RecipeWhat it does
3D showcaseThe Platonic solids parade in, then a hero-rise camera move caps it off
Vector explainer + orbitBasis vectors build up to a resultant vector, then the camera circles the result
Knot reveal + rollA trefoil knot draws on, then a cinematic roll finishes the shot

Camera steps within a recipe continue smoothly from wherever the camera was left by the previous step, so a recipe's camera moves never jump.


Every camera template

Single camera moves from the command palette / camera inspector — each is relative to the camera's current position, so they compose with whatever shot you're already in.

TemplateNeeds 3D?Motion
Orbit rightYesSwings 90° around the subject
Orbit leftYesSwings 90° the other way
Full orbit 360°YesA complete lap around the subject
Hero riseYesRises and pulls back for a dramatic reveal
Top-down spinYesDrops to a top-down angle, then spins underneath
Roll 360° →NoA full clockwise roll
Roll 360° ←NoA full counter-clockwise roll
Dutch tiltNoTilts off-axis, then straightens back out
Spiral push-inNoRolls while pushing in closer
Pendulum swingNoRocks side to side before settling back to level

Set up from the Inspector's Anim tab — see Link one object's property to another for the workflow.

FieldType
targetfollow | x | y | opacity | strokeWidth | value — which of THIS object's fields is being driven
sourceIdstring — the object being read from
sourcex | y | width | height — which of the SOURCE object's variables is read
scalenumber — multiplies the source value
offsetnumber — added after scaling (or the X offset, for follow)
offsetYnumber — the Y offset, only used by follow

A binding recomputes every frame and always overrides a plain keyframe on the same field — see How keyframes and time work for the full priority order against physics and keyframes.


Audio

AudioTrack — one per uploaded music/voiceover clip, shown as a ♪ row on the timeline:

FieldType
assetIdstring — id of the uploaded audio asset
startnumber — scene-time offset, seconds
trimStart, trimEndnumber — trim within the source file, seconds
volumenumber, 0–1
fadeIn, fadeOutnumber, seconds (not yet compiled into the render — reserved)
mutedboolean
markersAudioMarker[] or unset — narration timing points, see below

Compiles to self.add_sound(path, time_offset=start, gain=...).

AudioMarker — a named point dropped on the track's waveform (double-click to add; see Sync animations to a voiceover):

FieldType
idIdentifier
timenumber — seconds into the source file (not scene time), so the marker stays glued to its word if the clip is later dragged or trimmed
labelstring

Markers don't compile to anything themselves — they're an editing convenience. An animation event's Start-time field gets a Snap to dropdown listing every marker across every track; picking one resolves to a plain scene-time number (track.start + (marker.time − track.trimStart)), same as typing that number in by hand.


Physics — bodies and simulation

Per-object physics (3D solids only)

FieldType
enabledboolean
bodyTypedynamic | static — dynamic bodies are moved by the solver, static bodies are immovable colliders
massnumber, kg — ignored for static bodies
restitutionnumber, 0–1 — bounciness
frictionnumber, roughly 0 (ice) to 1
velocitypoint3 — initial linear velocity
angularVelocitypoint3 — initial spin
colliderauto | box | sphereauto derives a shape from the object's geometry

Scene-wide simulation settings

FieldType
gravitypoint3, scene units/s²
groundboolean — an infinite static floor
groundZnumber — the floor's height
durationnumber or null — null simulates the whole project length
substepsnumber — solver substeps per rendered frame, for stability

The 6 gravity presets

PresetVectorFeel
Earth{0, 0, -9.8}The realistic default
Moon{0, 0, -1.6}Floaty, slow-motion falls
Zero-G{0, 0, 0}No pull — bodies drift on initial velocity only
Strong{0, 0, -20}Heavy, fast slams
Sideways{6, 0, 0}Gravity pulls sideways, wind-tunnel feel
Reverse{0, 0, 9.8}Everything falls upward

After baking, an object's motion is stored as a dense per-frame track (position + orientation) and replayed directly — see Simulate rigid-body physics.


Render settings

FieldType
resolution480p | 720p | 1080p | 1440p | 2160p
fps24 | 30 | 60
aspect16:9 | 9:16 | 1:1 | 4:5 | 4:3 | 21:9
backgroundColorcolor
backgroundImagestring or null
backgroundImageOpacitynumber, 0–1
backgroundImageExposurenumber, −1 (dark) to +1 (blown out), 0 = unchanged
qualitypreview | final
outputFormatmp4 | gif | webm_alpha — standard video, looping no-audio GIF, or transparent-background WebM

Aspect ratio presets

RatioUse case
16:9YouTube
9:16Reels / TikTok / Shorts
1:1Instagram post
4:5Instagram portrait
4:3Classic
21:9Cinematic

Blocked animation combinations

Some overlaps are rejected before they're ever created, because Manim has no sensible way to run them at the same time on the same object:

CombinationWhy it's blocked
Two transform events overlapping on the same objectA mobject can only morph toward one target at a time
A replacing transform overlapping anything else on that objectThe source mobject stops existing partway through
Two entrance/exit animations overlappingOnly one "is this on screen yet" transition can run at once
An exit overlapping any other event on that objectNothing can keep animating an object that's mid-exit
Two matrix events overlappingOnly one linear map can apply to a mobject's points at a time
MoveAlongPath overlapping another position-driving eventTwo mechanisms can't both own where the object is

Full explanation and reasoning in Animations → Blocked combinations.