THREE.JS / FOUNDATIONS 100

Let events decide what happens next.

Separate playback from policy: mixers report what happened, actions control how motion runs, and an intent layer decides which transition is allowed next.

Initializing -

Preparing mixer events, intent policy, and a controllable action timeline.

Last event
-
Controller
-
Actions
-
Clips
-
Mixer event streamwaiting
  1. No loop or finished event yet.

AnimationMixer dispatches loop and finished events with the action, loop delta, and direction.

Intent-gated locomotionqueue
0.25s
Locomotion intent
One-time action
Requested
-
Active
-
Queued
-
Fades stopped
-

Click an emote, then request another locomotion state to see the policy gate in action.

Action timelinerunning
0.00s
1.00x
Mixer time
-
Action time
-
Effective scale
-
Scheduled
-

setTime() scrubs the mixer; warp() and halt() schedule action time-scale changes.

Playback versus policy
intent->policy gate->action fade/warp->mixer event->next intent

The mixer reports facts; the controller owns the meaning of those facts.

Try a quick interrupt: play Punch, click Run, then switch the policy and repeat. Add ?forceWebGL=1 for a WebGL2 comparison.

Back to the study index ->
LAB 100 / ANIMATION EVENTS + INTENT