Skip to main content

Class: ManimBanner

Defined in: src/mobjects/logo/ManimBanner.ts:16

VGroup is a specialized group for VMobjects. Operations apply to all children, and paths can be combined.

Extends​

Constructors​

Constructor​

new ManimBanner(options): ManimBanner

Defined in: src/mobjects/logo/ManimBanner.ts:21

Parameters​

options​

ManimBannerOptions = {}

Returns​

ManimBanner

Overrides​

VGroup.constructor

Properties​

__savedMobjectState​

__savedMobjectState: unknown = null

Defined in: src/core/Mobject.ts:140

JSON-serializable saved state (used by restoreState()).

Inherited from​

VGroup.__savedMobjectState


_baseSubpathLengths?​

protected optional _baseSubpathLengths: number[]

Defined in: src/core/VMobject.ts:53

Base subpath-length metadata (intrinsic topology, e.g. SVG compound paths).

Inherited from​

VGroup._baseSubpathLengths


_blendMode​

protected _blendMode: BlendMode = 'normal'

Defined in: src/core/Mobject.ts:110

Current blend mode for this mobject's own materials (default normal).

Inherited from​

VGroup._blendMode


_blendModeActive​

protected _blendModeActive: boolean = false

Defined in: src/core/Mobject.ts:116

Whether a blend mode was ever set on this mobject. While false, the blend step in _syncToThree is skipped entirely, so unthemed/unblended mobjects never touch material blending state (keeps the default path exact).

Inherited from​

VGroup._blendModeActive


_color​

protected _color: string = '#ffffff'

Defined in: src/core/Mobject.ts:95

Inherited from​

VGroup._color


_dirty​

_dirty: boolean = true

Defined in: src/core/Mobject.ts:132

THREE backing object needs re-sync from this node's transform/state.

Inv​

this._dirty || child._dirty === false // a clean node has a clean subtree

This invariant is what makes the early-return in _syncToThree() and the root-sync in _syncWorldMatrices() correct. It holds because _markDirty() always propagates upward. Marking a node dirty WITHOUT marking its ancestors (e.g. reverting _markDirty to self-only) silently breaks it: a clean ancestor will short-circuit the sync and never reach the dirty descendant, leaving stale world coordinates (issue #251).

Inherited from​

VGroup._dirty


_disableChildZLayering​

protected _disableChildZLayering: boolean = false

Defined in: src/core/Mobject.ts:118

When true, children skip the 2D z-layering offset in _syncToThree.

Inherited from​

VGroup._disableChildZLayering


_fillMaterial​

protected _fillMaterial: MeshBasicMaterial = null

Defined in: src/core/VMobjectRendering.ts:39

Three.js fill material

Inherited from​

VGroup._fillMaterial


_geometryDirty​

protected _geometryDirty: boolean = true

Defined in: src/core/VMobjectRendering.ts:42

Whether geometry needs rebuild (separate from material dirty)

Inherited from​

VGroup._geometryDirty


_isVMobject​

_isVMobject: boolean = false

Defined in: src/core/Mobject.ts:133

Inherited from​

VGroup._isVMobject


_opacity​

protected _opacity: number = 1

Defined in: src/core/Mobject.ts:106

Inherited from​

VGroup._opacity


_points3D​

protected _points3D: number[][] = []

Defined in: src/core/VMobject.ts:47

Array of cubic Bezier control points in 3D. Each point is [x, y, z]. Stored as: [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]

Inherited from​

VGroup._points3D


_sceneFrameWidth​

_sceneFrameWidth: number = null

Defined in: src/core/VMobjectRendering.ts:78

Inherited from​

VGroup._sceneFrameWidth


_sceneRendererHeight​

_sceneRendererHeight: number = null

Defined in: src/core/VMobjectRendering.ts:77

Inherited from​

VGroup._sceneRendererHeight


_sceneRendererWidth​

_sceneRendererWidth: number = null

Defined in: src/core/VMobjectRendering.ts:76

Per-instance renderer context (set by Scene when VMobject is added). When non-null these override the class-level statics so that multiple Scene instances do not corrupt each other's stroke-width calculations.

Inherited from​

VGroup._sceneRendererWidth


_strokeMaterial​

protected _strokeMaterial: LineMaterial = null

Defined in: src/core/VMobjectRendering.ts:36

Three.js stroke material (Line2 LineMaterial for thick strokes)

Inherited from​

VGroup._strokeMaterial


_style​

protected _style: MobjectStyle

Defined in: src/core/Mobject.ts:119

Inherited from​

VGroup._style


_threeObject​

_threeObject: Object3D<Object3DEventMap> = null

Defined in: src/core/Mobject.ts:120

Inherited from​

VGroup._threeObject


_transformSubpathLengths?​

protected optional _transformSubpathLengths: number[]

Defined in: src/core/VMobject.ts:56

Transform-time override for subpath lengths (compound-path metadata).

Inherited from​

VGroup._transformSubpathLengths


_visiblePointCount​

protected _visiblePointCount: number = null

Defined in: src/core/VMobject.ts:50

Number of points visible (for Create animation)

Inherited from​

VGroup._visiblePointCount


children​

children: Mobject[] = []

Defined in: src/core/Mobject.ts:90

Inherited from​

VGroup.children


createdAtBeginning​

createdAtBeginning: boolean = false

Defined in: src/core/Mobject.ts:94

Inherited from​

VGroup.createdAtBeginning


fillOpacity​

fillOpacity: number = 0

Defined in: src/core/Mobject.ts:108

Inherited from​

VGroup.fillOpacity


id​

readonly id: string

Defined in: src/core/Mobject.ts:81

Inherited from​

VGroup.id


parent​

parent: Mobject = null

Defined in: src/core/Mobject.ts:89

Inherited from​

VGroup.parent


position​

position: Vector3

Defined in: src/core/Mobject.ts:91

Inherited from​

VGroup.position


rotation​

rotation: Euler

Defined in: src/core/Mobject.ts:92

Inherited from​

VGroup.rotation


savedState​

savedState: Mobject = null

Defined in: src/core/Mobject.ts:136

Saved mobject copy (used by Restore animation). Set by saveState().

Inherited from​

VGroup.savedState


scaleVector​

scaleVector: Vector3

Defined in: src/core/Mobject.ts:93

Inherited from​

VGroup.scaleVector


strokeWidth​

strokeWidth: number = 4

Defined in: src/core/Mobject.ts:107

Inherited from​

VGroup.strokeWidth


targetCopy​

targetCopy: Mobject = null

Defined in: src/core/Mobject.ts:138

Target copy used by generateTarget() / MoveToTarget animation.

Inherited from​

VGroup.targetCopy


useStrokeMesh​

useStrokeMesh: boolean = false

Defined in: src/core/VMobjectRendering.ts:146

When true, render stroke as a mesh ring with miter-joined corners instead of Line2 for closed paths.

Inherited from​

VGroup.useStrokeMesh


_frameWidth​

static _frameWidth: number = 14

Defined in: src/core/VMobjectRendering.ts:69

Camera frame width in world units (set by Scene, for stroke width conversion)

Inherited from​

VGroup._frameWidth


_rendererHeight​

static _rendererHeight: number = 450

Defined in: src/core/VMobjectRendering.ts:66

Inherited from​

VGroup._rendererHeight


_rendererWidth​

static _rendererWidth: number = 800

Defined in: src/core/VMobjectRendering.ts:65

Renderer resolution for LineMaterial (set by Scene)

Inherited from​

VGroup._rendererWidth


useShaderCurves​

static useShaderCurves: boolean = false

Defined in: src/core/VMobjectRendering.ts:131

When true, VMobjects use GPU Bezier SDF shaders for stroke rendering instead of the default Line2/LineMaterial approach.

Inherited from​

VGroup.useShaderCurves

Accessors​

animate​

Get Signature​

get animate(): AnimateProxy

Defined in: src/core/Mobject.ts:961

Returns an AnimateProxy that records method calls. Pass the proxy to scene.play() to animate from the current state to the state after all recorded calls are applied.

Example​
scene.play(circle.animate.shift([2, 0, 0]));
scene.play(circle.animate.setColor('#ff0000').scale(2));
Returns​

AnimateProxy

Inherited from​

VGroup.animate


color​

Get Signature​

get color(): string

Defined in: src/core/Mobject.ts:96

Returns​

string

Set Signature​

set color(value): void

Defined in: src/core/Mobject.ts:99

Parameters​
value​

string

Returns​

void

Inherited from​

VGroup.color


fillColor​

Get Signature​

get fillColor(): string

Defined in: src/core/Mobject.ts:316

Returns​

string

Set Signature​

set fillColor(color): void

Defined in: src/core/Mobject.ts:320

Parameters​
color​

string

Returns​

void

Inherited from​

VGroup.fillColor


isDirty​

Get Signature​

get isDirty(): boolean

Defined in: src/core/Mobject.ts:1108

Returns​

boolean

Inherited from​

VGroup.isDirty


length​

Get Signature​

get length(): number

Defined in: src/core/VGroup.ts:438

Get the number of vmobjects in this group.

Returns​

number

Inherited from​

VGroup.length


numPoints​

Get Signature​

get numPoints(): number

Defined in: src/core/VMobject.ts:235

Get the number of points

Returns​

number

Inherited from​

VGroup.numPoints


opacity​

Get Signature​

get opacity(): number

Defined in: src/core/Mobject.ts:186

Returns​

number

Set Signature​

set opacity(value): void

Defined in: src/core/Mobject.ts:190

Parameters​
value​

number

Returns​

void

Inherited from​

VGroup.opacity


points​

Get Signature​

get points(): Point[]

Defined in: src/core/VGroup.ts:491

Get all points from the VGroup as a flat array (override VMobject). Returns combined points from all children.

Returns​

Point[]

Inherited from​

VGroup.points


shaderCurves​

Get Signature​

get shaderCurves(): boolean

Defined in: src/core/VMobjectRendering.ts:168

Check whether this instance should use shader-based Bezier curve rendering.

Returns​

boolean

Set Signature​

set shaderCurves(value): void

Defined in: src/core/VMobjectRendering.ts:173

Enable or disable shader-based Bezier rendering for this instance.

Parameters​
value​

boolean

Returns​

void

Inherited from​

VGroup.shaderCurves


strokeColor​

Get Signature​

get strokeColor(): string

Defined in: src/core/Mobject.ts:327

Returns​

string

Set Signature​

set strokeColor(color): void

Defined in: src/core/Mobject.ts:331

Parameters​
color​

string

Returns​

void

Inherited from​

VGroup.strokeColor


style​

Get Signature​

get style(): MobjectStyle

Defined in: src/core/Mobject.ts:194

Returns​

MobjectStyle

Inherited from​

VGroup.style


submobjects​

Get Signature​

get submobjects(): Mobject[]

Defined in: src/core/Mobject.ts:208

Returns​

Mobject[]

Inherited from​

VGroup.submobjects


userId​

Get Signature​

get userId(): string

Defined in: src/core/Mobject.ts:169

The user-defined string identifier, or undefined if none was set. Distinct from the internal id uuid. Look a mobject up by this value with Scene.getMobject.

Returns​

string

Inherited from​

VGroup.userId


visiblePointCount​

Get Signature​

get visiblePointCount(): number

Defined in: src/core/VMobject.ts:242

Get the number of visible points (for Create animation)

Returns​

number

Set Signature​

set visiblePointCount(count): void

Defined in: src/core/VMobject.ts:249

Set the number of visible points (for Create animation)

Parameters​
count​

number

Returns​

void

Inherited from​

VGroup.visiblePointCount

Methods​

_applyBlendModeToThree()​

protected _applyBlendModeToThree(): void

Defined in: src/core/Mobject.ts:254

Apply the current blend mode to this node's own three.js materials.

Traverses this mobject's backing object but stops at any submobject's backing object, so each family member owns its own materials (a child with a different blend mode is not clobbered by its parent's traversal).

Returns​

void

Inherited from​

VGroup._applyBlendModeToThree


_applyFunctionAboutPoint()​

protected _applyFunctionAboutPoint(fn, aboutPoint): void

Defined in: src/core/VMobject.ts:207

Parameters​

fn​

(pts) => number[][]

aboutPoint​

number[]

Returns​

void

Pre​

fn(pts).length === pts.length

Post​

getPoints()[i] === fn(old.getPoints().map(p => p - aboutPoint))[i] + aboutPoint

Inherited from​

VGroup._applyFunctionAboutPoint


_buildEarcutFillGeometry()​

protected _buildEarcutFillGeometry(points3D): BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>

Defined in: src/core/VMobjectRendering.ts:230

Parameters​

points3D​

number[][]

Returns​

BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>

Inherited from​

VGroup._buildEarcutFillGeometry


_createThreeObject()​

protected _createThreeObject(): Object3D

Defined in: src/core/VGroup.ts:418

Create the Three.js backing object for this VGroup. A VGroup is simply a THREE.Group that contains children.

Returns​

Object3D

Inherited from​

VGroup._createThreeObject


_disposeRenderingResources()​

protected _disposeRenderingResources(): void

Defined in: src/core/VMobjectRendering.ts:687

Returns​

void

Inherited from​

VGroup._disposeRenderingResources


_flattenAsContainer()​

protected _flattenAsContainer(worldMatrix): this

Defined in: src/core/Mobject.ts:1020

Flatten a node whose geometry is fully described by its children (or which has no own geometry): recurse into children, then reset own transform to identity. The transform is not lost — it was folded into the descendants via the composed worldMatrix.

Parameters​

worldMatrix​

Matrix4

Returns​

this

Inherited from​

VGroup._flattenAsContainer


_flattenAsMesh()​

protected _flattenAsMesh(worldMatrix): this

Defined in: src/core/Mobject.ts:1035

Flatten a Three.js-mesh node that cannot bake geometry into points: absolutize by setting the local transform equal to worldMatrix, so it renders correctly once its (now identity) ancestors collapse. A mesh is a flattening barrier — its descendants stay relative to it.

Parameters​

worldMatrix​

Matrix4

Returns​

this

Inherited from​

VGroup._flattenAsMesh


_getBoundingBox()​

_getBoundingBox(): object

Defined in: src/core/Mobject.ts:853

Returns​

object

depth​

depth: number

height​

height: number

width​

width: number

Deprecated​

Use getBoundingBox() instead.

Inherited from​

VGroup._getBoundingBox


_getEdgeInDirection()​

_getEdgeInDirection(direction): Vector3Tuple

Defined in: src/core/Mobject.ts:837

Parameters​

direction​

Vector3Tuple

Returns​

Vector3Tuple

World-space edge position (center + half-bounding-box offset).

Inherited from​

VGroup._getEdgeInDirection


_hasOwnPoints()​

protected _hasOwnPoints(): boolean

Defined in: src/core/VMobject.ts:137

Whether this exact node owns drawable geometry (its raw _points3D), bypassing any subclass override of getLocalPoints(). VGroup (and every class extending it — MathTex, SVGMobject, Arrow, Table, ...) overrides getLocalPoints() to aggregate its children's points for read-modify-write transforms (Homotopy, ApplyWave, ...); that aggregation must NOT make the container itself look like a stagger unit with points of its own.

Returns​

boolean

Inherited from​

VGroup._hasOwnPoints


_interpolatePointList3D()​

protected _interpolatePointList3D(points, targetCount): number[][]

Defined in: src/core/VMobject.ts:718

Interpolate a 3D point list to have a specific number of points.

Delegates to the bezier-aware resamplePointList3D so that valid cubic Bezier chains are densified by de Casteljau subdivision rather than piecewise-linear interpolation. Linear lerp on cubic control points silently produces invalid handles (handle = midpoint of two adjacent controls), which renders as flat polygonal segments mid-Transform.

Parameters​

points​

number[][]

targetCount​

number

Returns​

number[][]

Inherited from​

VGroup._interpolatePointList3D


_localToWorld()​

protected _localToWorld(p): Vector3Tuple

Defined in: src/core/Mobject.ts:493

LOCAL point -> WORLD (the frame this node's points live in; this node's own transform IS applied).

Parameters​

p​

Vector3Tuple

Returns​

Vector3Tuple

Post​

result === this._worldMatrix() * p

Inherited from​

VGroup._localToWorld


_markDirty()​

_markDirty(): void

Defined in: src/core/Mobject.ts:1093

Mark this node's render/transform state stale and propagate the flag to the root. World-space geometry of any node depends on its ancestors' transforms, so a change anywhere must invalidate the whole ancestor chain; the invariant "a clean node has a clean subtree" then lets _syncToThree()/root-sync skip untouched branches safely.

Returns​

void

Post​

this._dirty && (this.parent => this.parent._dirty)

Inherited from​

VGroup._markDirty


_markDirtyUpward()​

_markDirtyUpward(): void

Defined in: src/core/VMobjectRendering.ts:206

VMobject-level upward dirty propagation must also mark geometry dirty. This keeps geometry invalidation centralized for point/curve mutations.

Returns​

void

Inherited from​

VGroup._markDirtyUpward


_normalizeChildrenInto()​

protected _normalizeChildrenInto(worldMatrix): void

Defined in: src/core/Mobject.ts:1008

Recurse normalizeTransform into children, composing each child's own matrix onto worldMatrix so every descendant flattens into the same frame.

Parameters​

worldMatrix​

Matrix4

Returns​

void

Inherited from​

VGroup._normalizeChildrenInto


_ownMatrix()​

_ownMatrix(): Matrix4

Defined in: src/core/Mobject.ts:1142

This node's transform matrix in isolation — position, rotation, and scale composed together, with no ancestor contribution.

Returns​

Matrix4

Post​

this.parent === null => this._computeWorldMatrix() === this._computeOwnMatrix()

Post​

this.parent !== null => this._computeWorldMatrix() === this.parent._computeWorldMatrix() * this._computeOwnMatrix()

Inherited from​

VGroup._ownMatrix


_pointsToCurvePath()​

protected _pointsToCurvePath(): CurvePath<Vector3>

Defined in: src/core/VMobjectRendering.ts:226

Returns​

CurvePath<Vector3>

Inherited from​

VGroup._pointsToCurvePath


_pointsToShape()​

protected _pointsToShape(): Shape

Defined in: src/core/VMobjectRendering.ts:222

Returns​

Shape

Inherited from​

VGroup._pointsToShape


_root()​

_root(): Mobject

Defined in: src/core/Mobject.ts:1113

The topmost ancestor (the node with no parent).

Returns​

Mobject

Inherited from​

VGroup._root


_rotateAboutParentLocalPoint()​

protected _rotateAboutParentLocalPoint(angle, axis, pivotLocal): void

Defined in: src/core/Mobject.ts:462

Rotate about a pivot expressed in this node's PARENT-local frame (the same frame as this.position). No world-space conversion is done.

Parameters​

angle​

number

axis​

Vector3Tuple

pivotLocal​

Vector3Tuple

Returns​

void

Pre​

pivotLocal is in the same frame as this.position (parent-local)

Post​

the parent-local pivot point is fixed; this.position rotates about it

Post​

this.rotation === old.rotation composed with the requested rotation

Inherited from​

VGroup._rotateAboutParentLocalPoint


_setSceneContext()​

_setSceneContext(rendererWidth, rendererHeight, frameWidth): void

Defined in: src/core/VMobjectRendering.ts:109

Set per-instance scene context for multi-scene support. Called by Scene when a VMobject is added or the scene is resized.

Parameters​

rendererWidth​

number

rendererHeight​

number

frameWidth​

number

Returns​

void

Inherited from​

VGroup._setSceneContext


_syncMaterialToThree()​

protected _syncMaterialToThree(): void

Defined in: src/core/VGroup.ts:412

VGroup is a container — it has no stroke/fill materials of its own. The parent VMobjectRendering._syncMaterialToThree() would attempt to rebuild geometry using null materials, causing a "material is null" crash (#206). Children sync their own materials independently.

Returns​

void

Inherited from​

VGroup._syncMaterialToThree


_syncToThree()​

_syncToThree(): void

Defined in: src/core/Mobject.ts:1042

Returns​

void

Inherited from​

VGroup._syncToThree


_syncWorldMatrices()​

_syncWorldMatrices(): Object3D

Defined in: src/core/Mobject.ts:769

Refresh the THREE world matrices so a geometry query reads current transforms, and return the backing object. World coordinates depend on every ancestor's transform, so we sync from the root (the dirty invariant — see _markDirty — lets the recursion skip clean subtrees). _syncToThree only copies locals onto the THREE objects; setFromObject won't walk up to refresh matrixWorld, so we flush ancestors (true) and descendants (true) here. Shared by getBounds() and getBoundingBox() so both stay consistent.

Returns​

Object3D

Pre​

!this.isEmpty()

Post​

result.min <= result.max component-wise

Inherited from​

VGroup._syncWorldMatrices


_updateGeometry()​

protected _updateGeometry(group, options?): void

Defined in: src/core/VMobjectRendering.ts:274

Update the geometry within the Three.js group.

Parameters​

group​

Group

options?​
strokeOnly?​

boolean

Returns​

void

Inherited from​

VGroup._updateGeometry


_worldMatrix()​

_worldMatrix(): Matrix4

Defined in: src/core/Mobject.ts:1147

Returns​

Matrix4

Inherited from​

VGroup._worldMatrix


_worldToLocal()​

protected _worldToLocal(p): Vector3Tuple

Defined in: src/core/Mobject.ts:503

WORLD point -> this node's LOCAL frame. Inverse of _localToWorld.

Parameters​

p​

Vector3Tuple

Returns​

Vector3Tuple

Post​

result === this._worldMatrix().invert() * p

Inherited from​

VGroup._worldToLocal


[iterator]()​

[iterator](): Iterator<VMobject>

Defined in: src/core/VGroup.ts:454

Iterate over all vmobjects in the group.

Returns​

Iterator<VMobject>

Inherited from​

VGroup.[iterator]


add()​

add(...mobjects): this

Defined in: src/core/VGroup.ts:82

Add mobjects to this group (override from Mobject).

Parameters​

mobjects​

...Mobject[]

Mobjects to add

Returns​

this

this for chaining

Inherited from​

VGroup.add


addPoints()​

addPoints(...points): this

Defined in: src/core/VMobject.ts:295

Add points to this VMobject using 2D Point objects

Parameters​

points​

...Point[]

Returns​

this

Inherited from​

VGroup.addPoints


addPointsAsCorners()​

addPointsAsCorners(corners): this

Defined in: src/core/VMobject.ts:350

Add straight line segments from the last point to each corner. Each corner creates a new cubic Bezier segment with linear handles. Matches Manim's add_points_as_corners.

Parameters​

corners​

number[][]

Array of [x, y, z] corner points to connect to

Returns​

this

this for chaining

Inherited from​

VGroup.addPointsAsCorners


addUpdater()​

addUpdater(updater, callOnAdd): this

Defined in: src/core/Mobject.ts:1183

Parameters​

updater​

UpdaterFunction

callOnAdd​

boolean = false

Returns​

this

Inherited from​

VGroup.addUpdater


addVMobjects()​

addVMobjects(...vmobjects): this

Defined in: src/core/VGroup.ts:64

Add VMobjects to this group. Accepts VMobjects or arrays of VMobjects.

Parameters​

vmobjects​

...(VMobject | VMobject[])[]

VMobjects to add

Returns​

this

this for chaining

Inherited from​

VGroup.addVMobjects


alignPoints()​

alignPoints(target): void

Defined in: src/core/VMobject.ts:607

Align points between this VMobject and a target so they have the same count, consistent winding, and optimal rotation for smooth morphing.

Parameters​

target​

VMobject

The target VMobject to align with

Returns​

void

Inherited from​

VGroup.alignPoints


alignTo()​

alignTo(target, direction): this

Defined in: src/core/Mobject.ts:821

Parameters​

target​

Vector3Tuple | Mobject

direction​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.alignTo


appendPoints()​

appendPoints(points): this

Defined in: src/core/VMobject.ts:390

Append a shared-anchor cubic chain to this VMobject's points (Manim CE's append_points). When this path is non-empty the first appended anchor continues from the last existing anchor and is dropped, so the chain stays one continuous path with the 3k+1-point invariant. Chainable.

Parameters​

points​

number[][]

Points to append (a shared-anchor chain on its own)

Returns​

this

this for chaining

Inherited from​

VGroup.appendPoints


applyFunction()​

applyFunction(fn, options?): this

Defined in: src/core/Mobject.ts:1241

Parameters​

fn​

(point) => number[]

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.applyFunction


applyFunctionAboutPoint()​

applyFunctionAboutPoint(fn, aboutPoint): this

Defined in: src/core/Mobject.ts:1220

Apply a function to every descendant's world-space points, about a given point. Recurses the family and delegates to _applyFunctionAboutPoint on each node.

Parameters​

fn​

(pts) => number[][]

aboutPoint​

number[] = ...

Returns​

this

Pre​

fn(pts).length === pts.length

Post​

m.getPoints()[i] === old.m.getPoints().map(p => fn([p - aboutPoint]) + aboutPoint)[i] // for every descendant m

Inherited from​

VGroup.applyFunctionAboutPoint


applyMatrix()​

applyMatrix(matrix, options?): this

Defined in: src/core/Mobject.ts:1249

Parameters​

matrix​

number[][]

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.applyMatrix


applyToFamily()​

applyToFamily(func): this

Defined in: src/core/Mobject.ts:1171

Parameters​

func​

(mobject) => void

Returns​

this

Inherited from​

VGroup.applyToFamily


arrange()​

arrange(direction, buff, center): this

Defined in: src/core/VGroup.ts:263

Arrange children in a row or column with specified spacing.

Parameters​

direction​

Vector3Tuple = RIGHT

Direction to arrange (e.g., RIGHT for row, DOWN for column)

buff​

number = 0.25

Buffer/spacing between children, default 0.25

center​

boolean = true

Whether to center the arrangement at the group's position, default true

Returns​

this

this for chaining

Inherited from​

VGroup.arrange


arrangeInGrid()​

arrangeInGrid(rows?, cols?, buffX?, buffY?): this

Defined in: src/core/VGroup.ts:341

Arrange children in a grid layout.

Parameters​

rows?​

number

Number of rows (if not specified, auto-calculated)

cols?​

number

Number of columns (if not specified, auto-calculated)

buffX?​

number = 0.25

Horizontal buffer between elements, default 0.25

buffY?​

number = 0.25

Vertical buffer between elements, default 0.25

Returns​

this

this for chaining

Inherited from​

VGroup.arrangeInGrid


become()​

become(other): this

Defined in: src/core/Mobject.ts:700

Parameters​

other​

Mobject

Returns​

this

Inherited from​

VGroup.become


center()​

center(): this

Defined in: src/core/Mobject.ts:883

Returns​

this

Inherited from​

VGroup.center


centerPointsAroundPosition()​

centerPointsAroundPosition(): this

Defined in: src/core/VMobject.ts:922

Centers local geometry around the origin and updates position accordingly.

This scans all descendant VMobject points (not only this._points3D), so container-style VMobjects (e.g. MathTex/SVGMobject/CurvesAsSubmobjects) are also centered correctly.

Returns​

this

this for chaining

Inherited from​

VGroup.centerPointsAroundPosition


clearPoints()​

clearPoints(): this

Defined in: src/core/VMobject.ts:424

Clear all points

Returns​

this

Inherited from​

VGroup.clearPoints


clearUpdaters()​

clearUpdaters(): this

Defined in: src/core/Mobject.ts:1195

Returns​

this

Inherited from​

VGroup.clearUpdaters


copy()​

copy(): VGroup

Defined in: src/core/VGroup.ts:429

Copy this VMobject, preserving point data state after morphs/transforms.

For subclasses (Circle, Square, etc.): constructors regenerate points from parameters (radius, sideLength, ...). After a Transform animation has morphed the data, the regenerated points no longer match the visual state. Subclasses must override copy(), build a new instance with their constructor params, call _copyBaseAttributesInto, and then overwrite _points3D with the current state.

For direct VMobject (rare): just builds and copies.

Returns​

VGroup

Inherited from​

VGroup.copy


createAnimation()​

createAnimation(options): Create

Defined in: src/mobjects/logo/ManimBanner.ts:78

Create animation - draws the logo shapes

Parameters​

options​

AnimationOptions = {}

Returns​

Create


disableChildZLayering()​

disableChildZLayering(): this

Defined in: src/core/Mobject.ts:1078

Disable the 2D draw-order z-layering offset (idx * 0.01 per non-first child, applied in _syncToThree) for this node and its whole subtree.

The offset is a flat-2D hack that fakes paint order by nudging later siblings toward the camera. Under a 3D perspective camera with real depth sorting it instead corrupts geometry: a group's children drift along world-z proportionally to their index (issue #465). ThreeDScene calls this on every added mobject so 3D scenes opt out. Because the offset is gated on the parent's flag, setting it on a container also covers children added later.

Returns​

this

Inherited from​

VGroup.disableChildZLayering


dispose()​

dispose(): void

Defined in: src/core/VMobject.ts:1116

Clean up Three.js resources

Returns​

void

Inherited from​

VGroup.dispose


expandAnimation()​

expandAnimation(options): Animation

Defined in: src/mobjects/logo/ManimBanner.ts:85

Expand animation - reveals the text below

Parameters​

options​

AnimationOptions = {}

Returns​

Animation


familyMembersWithPoints()​

familyMembersWithPoints(): VMobject[]

Defined in: src/core/VMobject.ts:197

Family members (including self) that own points directly — Manim CE's family_members_with_points(). This is the unit that staggered animations (e.g. Create's lagRatio) should iterate over: a VMobject with several internal subpaths is still ONE entry here, never split per subpath.

Returns​

VMobject[]

Post​

result === this.getFamily().filter(m => m instanceof VMobject && m._hasOwnPoints())

Inherited from​

VGroup.familyMembersWithPoints


filter()​

filter(fn): VGroup

Defined in: src/core/VGroup.ts:482

Filter vmobjects in the group.

Parameters​

fn​

(vmobject, index) => boolean

Filter predicate

Returns​

VGroup

New VGroup with filtered vmobjects

Inherited from​

VGroup.filter


flip()​

flip(axis, options?): this

Defined in: src/core/Mobject.ts:509

Parameters​

axis​

Vector3Tuple = ...

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.flip


forEach()​

forEach(fn): this

Defined in: src/core/VGroup.ts:463

Apply a function to each vmobject in the group.

Parameters​

fn​

(vmobject, index) => void

Function to apply

Returns​

this

this for chaining

Inherited from​

VGroup.forEach


generateTarget()​

generateTarget(): Mobject

Defined in: src/core/Mobject.ts:1264

Returns​

Mobject

Inherited from​

VGroup.generateTarget


get()​

get(index): VMobject

Defined in: src/core/VGroup.ts:447

Get a vmobject by index.

Parameters​

index​

number

Index of the vmobject

Returns​

VMobject

The vmobject at the given index, or undefined

Inherited from​

VGroup.get


getAllPoints()​

getAllPoints(): number[][]

Defined in: src/core/VGroup.ts:515

World-space points from this VGroup and all VMobject descendants.

Returns​

number[][]

Post​

result === flatMap(allVMobjectDescendants, c => c.getPoints())

Inherited from​

VGroup.getAllPoints


getBlendMode()​

getBlendMode(): BlendMode

Defined in: src/core/Mobject.ts:243

The current blend mode of this mobject.

Returns​

BlendMode

Inherited from​

VGroup.getBlendMode


getBottom()​

getBottom(): Vector3Tuple

Defined in: src/core/Mobject.ts:862

Returns​

Vector3Tuple

Inherited from​

VGroup.getBottom


getBoundingBox()​

getBoundingBox(): object

Defined in: src/core/Mobject.ts:840

Returns​

object

depth​

depth: number

height​

height: number

width​

width: number

Inherited from​

VGroup.getBoundingBox


getBounds()​

getBounds(): object

Defined in: src/core/VMobject.ts:799

World-space bounding box computed from bezier control points.

Overrides Mobject.getBounds() to avoid Box3.setFromObject(), which does not work for Line2 geometries. See PointBounds.ts for the full explanation.

Returns​

object

max​

max: object

max.x​

x: number

max.y​

y: number

max.z​

z: number

min​

min: object

min.x​

x: number

min.y​

y: number

min.z​

z: number

Pre​

!this.isEmpty()

Post​

result.min <= result.max component-wise

Inherited from​

VGroup.getBounds


getCenter()​

getCenter(): Vector3Tuple

Defined in: src/core/VGroup.ts:28

World-space center from descendant geometry.

Returns​

Vector3Tuple

Throws​

this.isEmpty() — an empty group has no geometry, so no center.

Post​

!this.isEmpty() => super.getCenter()

Inherited from​

VGroup.getCenter


getCenterOfMass()​

getCenterOfMass(): Vector3Tuple

Defined in: src/core/VMobject.ts:857

Get center of mass in world coordinates by averaging all world-space points.

Unlike getCenter (which uses bbox midpoint), this is the true centroid — equal to getCenter() only when points are symmetrically distributed.

Returns​

Vector3Tuple

Inherited from​

VGroup.getCenterOfMass


getCombinedPoints()​

getCombinedPoints(): number[][]

Defined in: src/core/VGroup.ts:396

Get combined path points from all children.

Returns​

number[][]

Combined array of points from all children

Inherited from​

VGroup.getCombinedPoints


getDepth()​

getDepth(): number

Defined in: src/core/Mobject.ts:849

Returns​

number

Inherited from​

VGroup.getDepth


getDisplayMeshes()​

getDisplayMeshes(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]

Defined in: src/core/Mobject.ts:1163

Returns​

Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]

Inherited from​

VGroup.getDisplayMeshes


getDisplayMeshLength()​

getDisplayMeshLength(): number

Defined in: src/core/Mobject.ts:1159

Number of visible display meshes this mobject contributes when rendered. Used for Transform eligibility checks without forcing Three.js object creation.

Returns​

number

Inherited from​

VGroup.getDisplayMeshLength


getEdge()​

getEdge(direction): Vector3Tuple

Defined in: src/core/Mobject.ts:856

Parameters​

direction​

Vector3Tuple

Returns​

Vector3Tuple

Inherited from​

VGroup.getEdge


getEffectiveSubpathLengths()​

getEffectiveSubpathLengths(): number[]

Defined in: src/core/VMobject.ts:500

Get effective subpath lengths for rendering. Returns transform override if present, else base/subclass metadata.

Returns​

number[]

Inherited from​

VGroup.getEffectiveSubpathLengths


getFamily()​

getFamily(): Mobject[]

Defined in: src/core/Mobject.ts:1177

Returns​

Mobject[]

Inherited from​

VGroup.getFamily


getHeight()​

getHeight(): number

Defined in: src/core/Mobject.ts:846

Returns​

number

Inherited from​

VGroup.getHeight


getLeft()​

getLeft(): Vector3Tuple

Defined in: src/core/Mobject.ts:865

Returns​

Vector3Tuple

Inherited from​

VGroup.getLeft


getLocalCenter()​

getLocalCenter(): Vector3Tuple

Defined in: src/core/Mobject.ts:751

Get center in this mobject's parent coordinate frame.

Includes this node's own local transform, excludes ancestor transforms.

Returns​

Vector3Tuple

Post​

this.parent === null => result === this.getCenter()

Post​

this.parent !== null => result === parent._computeWorldMatrix().invert() * this.getCenter()

Inherited from​

VGroup.getLocalCenter


getLocalPoints()​

getLocalPoints(): number[][]

Defined in: src/core/VGroup.ts:506

Local-space points aggregated from all VMobject children.

Returns​

number[][]

Post​

result === flatMap(vmobjectChildren, c => c.getLocalPoints())

Inherited from​

VGroup.getLocalPoints


getOwnStrokeLines()​

getOwnStrokeLines(): Line2[]

Defined in: src/core/VMobjectRendering.ts:197

This VMobject's own stroke Line2 primitives (one per subpath), synced on demand. Scoped strictly to this instance's rendering cache — never includes descendants' primitives. Lets callers (e.g. Create's lagRatio stagger) drive exactly one mobject's own segments without walking the Three.js scene graph, which cannot distinguish "another family member" from "another subpath of this same member".

_cachedLine2/_cachedLine2Array stay private and mutable internally (which cache is active is an implementation detail); this returns a fresh array so callers cannot corrupt that internal state.

Returns​

Line2[]

Inherited from​

VGroup.getOwnStrokeLines


getPointFromProportion()​

getPointFromProportion(alpha): Vector3Tuple

Defined in: src/core/VMobject.ts:967

Point at arc-length proportion alpha along this VMobject's curve.

alpha is measured by cumulative arc length over all cubic segments, so getPointFromProportion(0.5) is the geometric midpoint of the whole path (not the midpoint of the middle segment). Matches Manim CE's point_from_proportion. Points are in this object's local space.

Parameters​

alpha​

number

Proportion in [0, 1]

Returns​

Vector3Tuple

Point as [x, y, z]

Throws​

Error when the VMobject has no points

Inherited from​

VGroup.getPointFromProportion


getPoints()​

getPoints(): number[][]

Defined in: src/core/VMobject.ts:162

Own points in world coordinates (full ancestor S/R/T chain; render-only z-layering offset excluded). Children's points are not included — use getAllPoints for the full subtree.

Returns​

number[][]

Post​

result[i] === worldMatrix * _points3D[i]

Post​

this.parent === null => result === getLocalPoints()

Inherited from​

VGroup.getPoints


getRight()​

getRight(): Vector3Tuple

Defined in: src/core/Mobject.ts:868

Returns​

Vector3Tuple

Inherited from​

VGroup.getRight


getShapes()​

getShapes(): VGroup

Defined in: src/mobjects/logo/ManimBanner.ts:89

Returns​

VGroup


getSubcurve()​

getSubcurve(a, b): VMobject

Defined in: src/core/VMobject.ts:1010

A new VMobject holding the portion of this curve between proportions a and b.

For a closed path with a > b the subcurve wraps around the seam (the end portion [a, 1] followed by the start portion [0, b]), matching Manim CE's get_subcurve. Style is copied from this object.

Parameters​

a​

number

Start proportion in [0, 1]

b​

number

End proportion in [0, 1]

Returns​

VMobject

A new VMobject for the subcurve

Inherited from​

VGroup.getSubcurve


getSubpathLengths()​

getSubpathLengths(): number[]

Defined in: src/core/VMobject.ts:478

Get base subpath lengths (intrinsic topology metadata). Subclasses may override this to compute dynamic metadata.

Returns​

number[]

Inherited from​

VGroup.getSubpathLengths


getSubpathOrientationSign()​

getSubpathOrientationSign(index): -1 | 1

Defined in: src/core/VMobject.ts:540

Get orientation sign for a specific subpath index: +1 (CCW) or -1 (CW).

Parameters​

index​

number

Returns​

-1 | 1

Inherited from​

VGroup.getSubpathOrientationSign


getSubpathOrientationSigns()​

getSubpathOrientationSigns(lengths?): (-1 | 1)[]

Defined in: src/core/VMobject.ts:511

Get orientation sign for each subpath: +1 (CCW) or -1 (CW). Returns undefined when subpath metadata is missing or inconsistent.

Parameters​

lengths?​

number[]

Returns​

(-1 | 1)[]

Inherited from​

VGroup.getSubpathOrientationSigns


getText()​

getText(): Text

Defined in: src/mobjects/logo/ManimBanner.ts:93

Returns​

Text


getThreeObject()​

getThreeObject(): Object3D

Defined in: src/core/Mobject.ts:1117

Returns​

Object3D

Inherited from​

VGroup.getThreeObject


getTop()​

getTop(): Vector3Tuple

Defined in: src/core/Mobject.ts:859

Returns​

Vector3Tuple

Inherited from​

VGroup.getTop


getUnitVector()​

getUnitVector(): Vector3Tuple

Defined in: src/core/VMobject.ts:771

Get the unit vector from the first to the last point of this VMobject, accounting for the object's current rotation transform.

Returns​

Vector3Tuple

Inherited from​

VGroup.getUnitVector


getUpdaters()​

getUpdaters(): UpdaterFunction[]

Defined in: src/core/Mobject.ts:1202

Returns​

UpdaterFunction[]

Inherited from​

VGroup.getUpdaters


getVisiblePointCount()​

getVisiblePointCount(): number

Defined in: src/core/VMobject.ts:284

Get the visible point count (null means all points visible).

Returns​

number

Inherited from​

VGroup.getVisiblePointCount


getVisiblePoints()​

getVisiblePoints(): Point[]

Defined in: src/core/VMobject.ts:258

Get points that should be visible (for rendering) as 2D Points

Returns​

Point[]

Inherited from​

VGroup.getVisiblePoints


getVisiblePoints3D()​

getVisiblePoints3D(): number[][]

Defined in: src/core/VMobject.ts:266

Get points that should be visible (for rendering) as 3D arrays

Returns​

number[][]

Inherited from​

VGroup.getVisiblePoints3D


getWidth()​

getWidth(): number

Defined in: src/core/Mobject.ts:843

Returns​

number

Inherited from​

VGroup.getWidth


hasOwnPoints()​

hasOwnPoints(): boolean

Defined in: src/core/VMobject.ts:150

Public counterpart to _hasOwnPoints. Lets code outside the VMobject hierarchy (Transform's strategy selection, leaf-snapshot traversal) distinguish "this node carries its own geometry" from "this node delegates entirely to VMobject children" — true not just for VGroup, but for any VMobject subclass that clears its own points and renders via children (DashedLine, a multi-component RegularPolygram, ...).

Returns​

boolean

Inherited from​

VGroup.hasOwnPoints


hasUpdaters()​

hasUpdaters(): boolean

Defined in: src/core/Mobject.ts:1199

Returns​

boolean

Inherited from​

VGroup.hasUpdaters


insertNCurves()​

insertNCurves(n): this

Defined in: src/core/VMobject.ts:404

Subdivide this path so it contains n more cubic curves without changing its shape (Manim CE's insert_n_curves). Chainable.

Parameters​

n​

number

Number of cubics to add

Returns​

this

this for chaining

Inherited from​

VGroup.insertNCurves


insertNCurvesToPointList()​

insertNCurvesToPointList(n, points): number[][]

Defined in: src/core/VMobject.ts:417

Pure counterpart of insertNCurves: return a copy of points with n more cubics (Manim CE's insert_n_curves_to_point_list). Does not mutate this VMobject.

Parameters​

n​

number

Number of cubics to add

points​

number[][]

Source shared-anchor cubic chain

Returns​

number[][]

New chain with n more cubics

Inherited from​

VGroup.insertNCurvesToPointList


interpolate()​

interpolate(target, alpha): this

Defined in: src/core/VMobject.ts:560

Interpolate this VMobject towards a target VMobject

Parameters​

target​

VMobject

The target VMobject to interpolate towards

alpha​

number

Progress from 0 (this) to 1 (target)

Returns​

this

this for chaining

Inherited from​

VGroup.interpolate


isDarkTheme()​

isDarkTheme(): boolean

Defined in: src/mobjects/logo/ManimBanner.ts:97

Returns​

boolean


isEmpty()​

isEmpty(): boolean

Defined in: src/core/VGroup.ts:18

True when this VGroup (recursively) has no renderable geometry.

Returns​

boolean

Inherited from​

VGroup.isEmpty


isTransformNormalized()​

isTransformNormalized(): boolean

Defined in: src/core/Mobject.ts:623

Check if this mobject's transform is normalized (rotation=0, scale=1).

Returns​

boolean

Post​

result === (rotation.x==0 && rotation.y==0 && rotation.z==0 && scaleVector===[1,1,1])

Inherited from​

VGroup.isTransformNormalized


makeJagged()​

makeJagged(): this

Defined in: src/core/VMobject.ts:1055

Recompute handles so every segment is a straight line between its anchors (Manim CE's make_jagged). Applies to every family member that owns points. Chainable.

Returns​

this

this for chaining

Inherited from​

VGroup.makeJagged


makeSmooth()​

makeSmooth(): this

Defined in: src/core/VMobject.ts:1038

Recompute handles so the path is a smooth C1-continuous spline through its anchors (Manim CE's make_smooth). Applies to every family member that owns points. Chainable.

Returns​

this

this for chaining

Inherited from​

VGroup.makeSmooth


map()​

map<T>(fn): T[]

Defined in: src/core/VGroup.ts:473

Map over all vmobjects in the group.

Type Parameters​

T​

T

Parameters​

fn​

(vmobject, index) => T

Mapping function

Returns​

T[]

Array of mapped values

Inherited from​

VGroup.map


markGeometryDirty()​

markGeometryDirty(): void

Defined in: src/core/VMobjectRendering.ts:180

Mark geometry as needing rebuild on next render.

Returns​

void

Inherited from​

VGroup.markGeometryDirty


matchDepth()​

matchDepth(mob): this

Defined in: src/core/Mobject.ts:932

Scale uniformly so the depth matches mob's depth.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchDepth


matchHeight()​

matchHeight(mob): this

Defined in: src/core/Mobject.ts:928

Scale uniformly so the height matches mob's height.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchHeight


matchWidth()​

matchWidth(mob): this

Defined in: src/core/Mobject.ts:924

Scale uniformly so the width matches mob's width.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchWidth


matchX()​

matchX(mob): this

Defined in: src/core/Mobject.ts:936

Shift so the center x-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchX


matchY()​

matchY(mob): this

Defined in: src/core/Mobject.ts:940

Shift so the center y-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchY


matchZ()​

matchZ(mob): this

Defined in: src/core/Mobject.ts:944

Shift so the center z-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

VGroup.matchZ


moveCenterOfMassTo()​

moveCenterOfMassTo(target): this

Defined in: src/core/VMobject.ts:874

Parameters​

target​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.moveCenterOfMassTo


moveTo()​

moveTo(target, alignedEdge?): this

Defined in: src/core/Mobject.ts:362

Move to target position in world space.

Computes the delta from the current world-space center, converts it into this node's parent-local frame (the frame shift()/position live in), and applies it so the world-space center lands on the target. The parent-local conversion is what makes this correct when the node is parented under a scaled/rotated parent — a raw world delta fed to shift() would be scaled/rotated by the parent. For an unparented node the conversion is the identity, so behavior is unchanged.

Parameters​

target​

Vector3Tuple | Mobject

alignedEdge?​

Vector3Tuple

Returns​

this

Post​

result world center === target (within the parent's representable frame)

Pre​

!this.isEmpty() if needed (e.g., VGroup).

Inherited from​

VGroup.moveTo


moveToAligned()​

moveToAligned(target, alignedEdge?): this

Defined in: src/core/Mobject.ts:831

Parameters​

target​

Vector3Tuple | Mobject

alignedEdge?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.moveToAligned


nextTo()​

nextTo(target, direction, buff): this

Defined in: src/core/Mobject.ts:804

Parameters​

target​

Vector3Tuple | Mobject

direction​

Vector3Tuple = RIGHT

buff​

number = 0.25

Returns​

this

Inherited from​

VGroup.nextTo


normalizeTransform()​

normalizeTransform(worldMatrix): this

Defined in: src/core/VMobject.ts:443

Flatten this VMobject into absolute coordinates: bake worldMatrix into _points3D (translation, rotation and scale together — one matrix, no inverse), reset the local transform to identity, and recurse into children.

Seeds with this node's own matrix when called with no argument, so the bake preserves world appearance whether or not there are ancestors.

Parameters​

worldMatrix​

Matrix4 = ...

Returns​

this

Post​

!this.isEmpty() => old.getPoints()[i] === this.getPoints()[i] // world geometry preserved

Post​

this._computeOwnMatrix() === Identity

Inherited from​

VGroup.normalizeTransform


pointwiseBecomePartial()​

pointwiseBecomePartial(vmobject, a, b): this

Defined in: src/core/VMobject.ts:994

Replace this VMobject's points with the partial path of vmobject between arc-index proportions a and b. Port of Manim CE's pointwise_become_partial. Backs ShowPassingFlash on arbitrary VMobjects.

Parameters​

vmobject​

VMobject

Source VMobject to take the partial path from

a​

number

Start proportion in [0, 1]

b​

number

End proportion in [0, 1]

Returns​

this

this for chaining

Inherited from​

VGroup.pointwiseBecomePartial


prepareForNonlinearTransform()​

prepareForNonlinearTransform(numPieces): this

Defined in: src/core/Mobject.ts:1257

Parameters​

numPieces​

number = 50

Returns​

this

Inherited from​

VGroup.prepareForNonlinearTransform


proportionFromPoint()​

proportionFromPoint(point): number

Defined in: src/core/VMobject.ts:980

Arc-length proportion of the point on this curve nearest to point.

Monotone inverse of getPointFromProportion: for a point that lies on the curve it round-trips back to the same point at sampling resolution.

Parameters​

point​

Vector3Tuple

Query point [x, y, z] in local space

Returns​

number

Proportion in [0, 1]

Inherited from​

VGroup.proportionFromPoint


remove()​

remove(...mobjects): this

Defined in: src/core/VGroup.ts:143

Remove mobjects from this group (override from Mobject).

Parameters​

mobjects​

...Mobject[]

Mobjects to remove

Returns​

this

this for chaining

Inherited from​

VGroup.remove


removeUpdater()​

removeUpdater(updater): this

Defined in: src/core/Mobject.ts:1189

Parameters​

updater​

UpdaterFunction

Returns​

this

Inherited from​

VGroup.removeUpdater


removeVMobjects()​

removeVMobjects(...vmobjects): this

Defined in: src/core/VGroup.ts:122

Remove VMobjects from this group.

Parameters​

vmobjects​

...VMobject[]

VMobjects to remove

Returns​

this

this for chaining

Inherited from​

VGroup.removeVMobjects


replace()​

replace(target, stretch): this

Defined in: src/core/Mobject.ts:705

Parameters​

target​

Mobject

stretch​

boolean = false

Returns​

this

Inherited from​

VGroup.replace


restoreState()​

restoreState(): boolean

Defined in: src/core/Mobject.ts:1274

Returns​

boolean

Inherited from​

VGroup.restoreState


rotate()​

rotate(angle, axisOrOptions?): this

Defined in: src/core/Mobject.ts:412

Rotate the mobject by angle around an axis. Accepts aboutPoint or aboutEdge to specify the rotation center.

Parameters​

angle​

number

axisOrOptions?​

Vector3Tuple | AxisOrOptions

Returns​

this

Inherited from​

VGroup.rotate


rotateAboutOrigin()​

rotateAboutOrigin(angle, axis): this

Defined in: src/core/Mobject.ts:450

Parameters​

angle​

number

axis​

Vector3Tuple = ...

Returns​

this

Inherited from​

VGroup.rotateAboutOrigin


roundCorners()​

roundCorners(radius): this

Defined in: src/core/VMobject.ts:1078

Replace each sharp corner with a circular arc of the given radius (Manim CE's round_corners). Reads the path as a polygon through its anchors and inserts, at every corner, an arc tangent to both adjacent edges. The offset from each corner is clamped to half the shorter adjacent edge, so arcs on short edges never overlap. Convex and reflex corners both round correctly. A collinear corner and a non-positive radius leave the corner sharp. A closed path rounds every vertex; an open path keeps its two end vertices sharp. Applies to every family member that owns points. Chainable.

Parameters​

radius​

number

Corner radius; <= 0 is a no-op

Returns​

this

this for chaining

Inherited from​

VGroup.roundCorners


saveState()​

saveState(): this

Defined in: src/core/Mobject.ts:1269

Returns​

this

Inherited from​

VGroup.saveState


scale()​

scale(factor, options?): this

Defined in: src/core/Mobject.ts:535

Parameters​

factor​

number | Vector3Tuple

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.scale


scaleToFitDepth()​

scaleToFitDepth(depth): this

Defined in: src/core/Mobject.ts:906

Scale uniformly so the depth becomes depth.

Parameters​

depth​

number

Returns​

this

Inherited from​

VGroup.scaleToFitDepth


scaleToFitHeight()​

scaleToFitHeight(height): this

Defined in: src/core/Mobject.ts:900

Scale uniformly so the height becomes height.

Parameters​

height​

number

Returns​

this

Inherited from​

VGroup.scaleToFitHeight


scaleToFitWidth()​

scaleToFitWidth(width): this

Defined in: src/core/Mobject.ts:894

Scale uniformly so the width becomes width.

Parameters​

width​

number

Returns​

this

Inherited from​

VGroup.scaleToFitWidth


setBaseSubpathLengths()​

setBaseSubpathLengths(lengths): void

Defined in: src/core/VMobject.ts:469

Set base subpath-length metadata for this VMobject. Represents intrinsic topology (e.g. outer contour + holes from SVG parsing).

Parameters​

lengths​

number[]

Returns​

void

Inherited from​

VGroup.setBaseSubpathLengths


setBlendMode()​

setBlendMode(mode): this

Defined in: src/core/Mobject.ts:233

Set the blend mode for this mobject and its whole family.

The mode flows through to every three.js material of this mobject and its submobjects on the next sync. The default is 'normal' (standard alpha blending), which matches three.js's own default, so output is unchanged until a non-default mode is set.

Parameters​

mode​

BlendMode

One of normal, additive, multiply, subtractive, screen.

Returns​

this

this for chaining.

Inherited from​

VGroup.setBlendMode


setColor()​

setColor(color): this

Defined in: src/core/VGroup.ts:164

Set the color of all children.

Parameters​

color​

string

CSS color string

Returns​

this

this for chaining

Inherited from​

VGroup.setColor


setColorByGradient()​

setColorByGradient(...colors): this

Defined in: src/core/VMobject.ts:1099

Distribute colors across this object's submobjects along a gradient (Manim CE's set_color_by_gradient submobject variant). Each family member that owns points gets one interpolated color. With a single color this is equivalent to setColor.

Parameters​

colors​

...string[]

Two or more gradient colors

Returns​

this

this for chaining

Inherited from​

VGroup.setColorByGradient


setDepth()​

setDepth(depth): this

Defined in: src/core/Mobject.ts:920

CE set_depth (stretch=false default): alias of scaleToFitDepth.

Parameters​

depth​

number

Returns​

this

Inherited from​

VGroup.setDepth


setFill()​

setFill(color?, opacity?): this

Defined in: src/core/VGroup.ts:218

Set the fill color of all children.

Parameters​

color?​

string

CSS color string

opacity?​

number

Returns​

this

this for chaining

Inherited from​

VGroup.setFill


setFillOpacity()​

setFillOpacity(opacity): this

Defined in: src/core/VGroup.ts:203

Set the fill opacity of all children.

Parameters​

opacity​

number

Fill opacity (0-1)

Returns​

this

this for chaining

Inherited from​

VGroup.setFillOpacity


setHeight()​

setHeight(height): this

Defined in: src/core/Mobject.ts:916

CE set_height (stretch=false default): alias of scaleToFitHeight.

Parameters​

height​

number

Returns​

this

Inherited from​

VGroup.setHeight


setPoints()​

setPoints(points): this

Defined in: src/core/VGroup.ts:540

Distribute a flat point array back onto the children.

A VGroup stores no geometry of its own — getLocalPoints aggregates the children. The inherited VMobject.setPoints would write to the container's unused _points3D, so a read-modify-write (Homotopy, ApplyPointwiseFunction, ApplyWave, …) on a VGroup would be a silent no-op. This override partitions the array in the same order getCombinedPoints concatenated it and assigns each slice to its child, so the round-trip actually moves the children.

Parameters​

points​

number[][] | Point[]

Returns​

this

Pre​

points.length === sum over VMobject children of child.getLocalPoints().length

Post​

for each child i: child.getLocalPoints() === the i-th slice of points

Inherited from​

VGroup.setPoints


setPoints3D()​

setPoints3D(points): this

Defined in: src/core/VMobject.ts:116

Set the points defining this VMobject using 3D arrays (alias for setPoints with number[][])

Parameters​

points​

number[][]

Array of [x, y, z] control points for cubic Bezier curves

Returns​

this

this for chaining

Inherited from​

VGroup.setPoints3D


setPointsAsCorners()​

setPointsAsCorners(corners): this

Defined in: src/core/VMobject.ts:309

Set the points to form straight line segments between corner points. Each pair of consecutive corners becomes a cubic Bezier with linear handles. Matches Manim's set_points_as_corners.

Parameters​

corners​

number[][]

Array of [x, y, z] corner points

Returns​

this

this for chaining

Inherited from​

VGroup.setPointsAsCorners


setStroke()​

setStroke(color?, width?, opacity?): this

Defined in: src/core/VGroup.ts:239

Set the stroke of all children.

Parameters​

color?​

string

CSS color string

width?​

number

Stroke width in pixels

opacity?​

number

Stroke opacity (0-1)

Returns​

this

this for chaining

Inherited from​

VGroup.setStroke


setStrokeOpacity()​

setStrokeOpacity(opacity): this

Defined in: src/core/VGroup.ts:177

Set the opacity of all children.

Parameters​

opacity​

number

Opacity value (0-1)

Returns​

this

this for chaining

Inherited from​

VGroup.setStrokeOpacity


setStrokeWidth()​

setStrokeWidth(width): this

Defined in: src/core/VGroup.ts:190

Set the stroke width of all children.

Parameters​

width​

number

Stroke width in pixels

Returns​

this

this for chaining

Inherited from​

VGroup.setStrokeWidth


setStyle()​

setStyle(style): this

Defined in: src/core/Mobject.ts:198

Parameters​

style​

Partial<MobjectStyle>

Returns​

this

Inherited from​

VGroup.setStyle


setTransformSubpathLengths()​

setTransformSubpathLengths(lengths): void

Defined in: src/core/VMobject.ts:487

Set transform-time subpath lengths override. Used by Transform animations to preserve compound-path structure.

Parameters​

lengths​

number[]

Array of subpath lengths, or undefined to clear

Returns​

void

Inherited from​

VGroup.setTransformSubpathLengths


setUserId()​

setUserId(userId): this

Defined in: src/core/Mobject.ts:179

Set the user-defined string identifier used by Scene.getMobject. Chainable, so it fits factory and loop code: factory().setUserId('row-3'). The value need not be unique; the lookup returns the first match.

Parameters​

userId​

string

The identifier to assign

Returns​

this

Inherited from​

VGroup.setUserId


setVisiblePointCount()​

setVisiblePointCount(count): void

Defined in: src/core/VMobject.ts:275

Set visible point count for progressive creation animations. Use null to show all points.

Parameters​

count​

number

Returns​

void

Inherited from​

VGroup.setVisiblePointCount


setWidth()​

setWidth(width): this

Defined in: src/core/Mobject.ts:912

CE set_width (stretch=false default): alias of scaleToFitWidth.

Parameters​

width​

number

Returns​

this

Inherited from​

VGroup.setWidth


setX()​

setX(x): this

Defined in: src/core/Mobject.ts:871

Parameters​

x​

number

Returns​

this

Inherited from​

VGroup.setX


setY()​

setY(y): this

Defined in: src/core/Mobject.ts:875

Parameters​

y​

number

Returns​

this

Inherited from​

VGroup.setY


setZ()​

setZ(z): this

Defined in: src/core/Mobject.ts:879

Parameters​

z​

number

Returns​

this

Inherited from​

VGroup.setZ


shift()​

shift(delta): this

Defined in: src/core/Mobject.ts:340

Parameters​

delta​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.shift


stretch()​

stretch(factor, dim, options?): this

Defined in: src/core/Mobject.ts:567

Parameters​

factor​

number

dim​

number

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

VGroup.stretch


toCorner()​

toCorner(direction, buff, frameDimensions?): this

Defined in: src/core/Mobject.ts:973

Parameters​

direction​

Vector3Tuple = ...

buff​

number = 0.5

frameDimensions?​

[number, number]

Returns​

this

Inherited from​

VGroup.toCorner


toEdge()​

toEdge(direction, buff, frameDimensions?): this

Defined in: src/core/Mobject.ts:968

Parameters​

direction​

Vector3Tuple

buff​

number = 0.5

frameDimensions?​

[number, number]

Returns​

this

Inherited from​

VGroup.toEdge


update()​

update(dt): void

Defined in: src/core/Mobject.ts:1206

Parameters​

dt​

number

Returns​

void

Inherited from​

VGroup.update


_toLinewidth()​

static _toLinewidth(this, strokeWidth): number

Defined in: src/core/VMobjectRendering.ts:123

Convert Manim-compatible strokeWidth to LineMaterial linewidth in pixels. Python Manim uses cairo_line_width_multiple=0.01, so: linewidth_px = strokeWidth * 0.01 * (rendererWidth / frameWidth)

NOTE: This static method uses class-level statics. For multi-scene correctness, internal code should use the instance method _computeLinewidth().

Parameters​

this​

typeof VMobjectRendering

strokeWidth​

number

Returns​

number

Inherited from​

VGroup._toLinewidth