THREE.JS / FOUNDATIONS 104

A crowd is not one animation.

Compare a shared skinned group, independent skinned clocks, and a batched InstancedMesh proxy crowd. The visual shortcut is not the same as skeletal animation.

Initializing -

Preparing the glTF source, animation clips, and instance buffer.

Skinned
-
Mixers
-
Group members
-
Instances
-
Choose the animation topology-

A shared group requires compatible animated properties across all objects.

Clip metadata / derived-
Duration
-
Tracks
-
Animated nodes
-
Root motion
-

AnimationClip tracks are reusable data; semantic contacts still need authored metadata or an application policy.

Crowd decision surface
load GLB->clone skinned->bind mixer+setMatrixAt->render

Shared skinning reduces duplicated binding work. Instancing reduces draw calls only when one geometry/material can represent the visual.

What each lane provesthree routes

Shared group: compatible clones share one mixer and binding cache.

Independent: every clone owns its own mixer and local clock.

Instanced proxy: one draw-friendly mesh gets per-instance matrices, not glTF bone tracks.

Detach/reattach is enabled for the shared topology. Add ?forceWebGL=1 for a WebGL2 comparison.

Return to the study index ->
LAB 104 / CROWD BATCHING