Chloé’s avatar · behaviour lab

Avatar Playground

Chloé is a cloud of dots joined by a shifting web — not a face, not an orb. This is the real engine she runs on, with every state, gesture and rule one click away, so you can feel what each one does and take the call or the tuning patch with you.

Loading

Loading the page

If this line stays, the page script did not load. The cloud starts only when you ask for it.

State

0.50

Expression

Symbol

Keys 1–7 switch state in the order above, S toggles the synthetic envelope, M the microphone, Esc stops sound and scripts.

Drive the cloud with sound

Amplitude only

None of these is Chloé’s voice. They feed the same number her TTS does — a 0–1 level, every frame — so you can watch amplitude move the cloud without any key. Nothing here is uploaded or recorded.

Chloé’s voice

Checking

Her own cloned voice, through each engine that can serve it, so you can hear the same line twice and watch the cloud react to each. She is never given another voice — not as a placeholder, not on error. If an engine cannot serve her, this panel says so and plays nothing.

Checking which engines can serve her voice…

0 / 200

Tune

idle

Sliders rewrite the live rule set for the state on stage, through the same setTuning Chloé’s brain would call. Changed rules turn periwinkle; the patch panel below collects only those.

Cloud

Rules of the state on stage

Take it with you

The last thing you did, as the engine call that does it; and your tuning as the patch setTuning accepts — the shape TUNING.md asks Chloé to persist.

Last call

// nothing yet

Tuning patch

{}
Idle

Settled presence

Slow drift through the noise field, a four-second breath, a soft web. Every few seconds a faint long-range bond flickers between distant dots — heat lightning.

Listening

Leaning in

The cloud tightens and stills, turns teal, and incoming sound sends ripples inward. This is the state the microphone driver uses.

Thinking

Fire along the web

The cloud contracts and dots fire in Poisson bursts. Each fire can excite neighbours inside line range, so activation travels along the proximity web; two fires within 100 ms flash the line between them white.

Excited

Lit up

Two and a half times the speed, twice the noise, a wider field and a denser web. Streamed audio blends every state toward this one, so she visibly energises while speaking.

Wandering

Not sure yet

Thirty percent speed, loose cohesion, and after about a second the dots migrate into a sustained question mark that holds until the state changes.

Speaking

Outward and vocal

The cloud spreads wide and moves with energy; amplitude rides on top as breath and motion kicks radiating from a wandering speak-point. Words can fade through the centre one at a time.

Transmitting

Something sent

A green wave radiates from the centre over 1.2 seconds, dots brighten, and the cloud returns to the previous state by itself. A one-shot, not a posture.

AmplitudeImplemented

Real audio level

The engine takes a 0–1 level per frame. On this page it comes from an analyser on whichever source is playing — the microphone, a local file, or her own voice from the narration service.

ColourPartly

State and expression, not prosody

Every state and expression carries its own palette, and the palette of any state is tunable above. There is no prosody input yet: nothing on this page reads emotion out of the voice. When that lands it will arrive through setExpression, which already exists.

ThinkingImplemented

Propagation, not blinking

Fires cascade only to dots within line range, with decaying probability and a subcritical cap, so bursts of three to fifteen dots run along the web and never strobe the whole cloud. Turn the fire rate up in Tune to see the avalanches.

SymbolsImplemented

Sketched, never typeset

Six glyphs. Slots are paired with the nearest free dots, a spring pulls them in over half a second, and every formation gets a random tilt, scale and roughness so no two are alike.

EngineVerbatim

The one the fleet runs

The engine on stage is ChloeAvatar.js v1.1.0 from the public chloe-avatar repository, copied byte for byte and pinned to its commit. What you tune here is what she runs. Three.js is the site’s shared copy.

VoiceBy key

No live session, no stand-in

Clips come from the same narration proxy the Voice Playground uses: one click, one short clip, key forwarded and never stored. This page opens no live voice session and never plays a voice that is not hers.