Skip to content

Documentation / scene / MultiChainSpringSystem

Class: MultiChainSpringSystem

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:68

Physics engine for multiple spring chains with inter-chain constraints Suitable for cloth, skirts, capes, and other multi-chain simulations

Deprecated

Use the new JointDynamicsSystem class instead.

Constructors

Constructor

new MultiChainSpringSystem(options?): MultiChainSpringSystem

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:79

Parameters

options?

MultiChainSpringSystemOptions

Returns

MultiChainSpringSystem

Accessors

chains

Get Signature

get chains(): SpringChain[]

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:625

Gets the spring chains

Returns

SpringChain[]


interChainConstraints

Get Signature

get interChainConstraints(): InterChainConstraint[]

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:632

Gets the inter-chain constraints

Returns

InterChainConstraint[]


gravity

Get Signature

get gravity(): Vector3

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:639

Gets the current gravity

Returns

Vector3

Set Signature

set gravity(gravity): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:643

Parameters
gravity

Vector3

Returns

void


wind

Get Signature

get wind(): Vector3

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:650

Gets the current wind

Returns

Vector3

Set Signature

set wind(wind): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:654

Parameters
wind

Vector3

Returns

void


iterations

Get Signature

get iterations(): number

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:661

Gets the number of iterations

Returns

number

Set Signature

set iterations(count): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:665

Parameters
count

number

Returns

void


enableInertialForces

Get Signature

get enableInertialForces(): boolean

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:672

Gets whether inertial forces are enabled

Returns

boolean

Set Signature

set enableInertialForces(enabled): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:676

Parameters
enabled

boolean

Returns

void


centrifugalScale

Get Signature

get centrifugalScale(): number

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:683

Gets the centrifugal force scale

Returns

number

Set Signature

set centrifugalScale(scale): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:687

Parameters
scale

number

Returns

void


coriolisScale

Get Signature

get coriolisScale(): number

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:694

Gets the Coriolis force scale

Returns

number

Set Signature

set coriolisScale(scale): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:698

Parameters
scale

number

Returns

void


solver

Get Signature

get solver(): "verlet" | "xpbd"

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:702

Returns

"verlet" | "xpbd"

Set Signature

set solver(type): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:706

Parameters
type

"verlet" | "xpbd"

Returns

void

Methods

addChain()

addChain(chain): number

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:96

Adds a spring chain to the system

Parameters

chain

SpringChain

The chain to add

Returns

number

The index of the added chain


addInterChainConstraint()

addInterChainConstraint(constraint): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:105

Adds an inter-chain constraint

Parameters

constraint

InterChainConstraint

The constraint to add

Returns

void


createRadialConstraints()

createRadialConstraints(options): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:114

Creates radial constraints between adjacent chains Useful for skirts, capes, and other radial multi-chain structures

Parameters

options

Configuration options

stiffness

number

Constraint stiffness [0-1], used by Verlet solver

maxDistance

number

Maximum distance to create constraints (particles further apart are not connected)

skipRows?

number

Skip first N rows of particles (e.g., anchor points at waist)

connectDistance?

number

Connect to next N chains (default: 1, only adjacent chains)

compliance?

number

XPBD compliance in m/N (default: 0 = rigid). Only used when solver is 'xpbd'.

Returns

void


update()

update(deltaTime): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:164

Updates the physics simulation for all chains

Parameters

deltaTime

number

Time step in seconds

Returns

void


applyToNodes()

applyToNodes(weight?): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:550

Applies simulation results to scene nodes

Parameters

weight?

number = 1.0

Blend weight [0-1] (default: 1.0)

Returns

void


reset()

reset(): void

Defined in: libs/scene/src/animation/spring/multi_chain_spring_system.ts:616

Resets the simulation to initial state

Returns

void

Released under the MIT License.