00
Idle
The rest state, and the look the sliders describe. Slow motion, the calm palette, the orb waiting. The editor opens here.
One orb, three states
An agent orb is one shader with three motions. The host writes a phase, the shader shapes its voice envelope from it, and a small set of parameter targets does the rest. You do not ship three effects and cross-fade between them; you ship one and tell it what the agent is doing.
Field maths after Orbkit, MIT. Parameters, ports and phase wiring are ours.
00
The rest state, and the look the sliders describe. Slow motion, the calm palette, the orb waiting. The editor opens here.
01
The search. Motion speeds up and turns inward: churn, scroll, a nervous net. The palette cools. Nothing in it looks finished, which is the point. Every card in the library shows this phase.
02
The answer. Amplitude and glow come up on a pulse tied to a voice envelope; the palette goes warm. The orb reads as talking even with the sound off.
Each opens in the editor on its rest state; the tabs above the stage switch the other two.
Assistant Indigo
A dense cobalt, cyan and violet assistant mark over a near-black body, with crisp modelling and a restrained magenta edge.
Assistant Listening
A cool aqua and mint listening state over a deep teal body, clearly separated from the default indigo palette.
Assistant Ember
A high-contrast ember state in vermilion, orange and gold over a dark wine body, with a brighter voice ripple.
Hydrogen
A quantum-orbital orb in rainbow chroma over dark metal. Idle is a slow lobe; thinking smears the wave function; speaking races the flow and tightens the zoom.
Nimbus
A back-lit cloud in a ball. Idle is an amber lamp behind electric-blue shadow; thinking goes violet over azure and churns harder; speaking burns hot pink over violet with the light on the move.
Solar Current
Broad solar currents fold around a dark amber core, gathering into hot flare seams and a soft corona as the agent becomes active.
Eclipse Bloom
Two petalled plasma fields orbit inside an opaque eclipse-dark sphere, flaring where they overlap and breathing with the agent state.
01Open an orb in the editor
Every orb's stage carries Idle / Thinking / Speaking tabs on the trailing edge, where an avatar's Single / Roster switch sits. Press one and the stage eases into that phase; the sliders stay on the rest state. The phase rides in the URL, so a shared link opens on the phase you were looking at.
02Tune the rest state, then check the other two
The agent orbs declare their own targets for thinking and speaking, so those phases are consistent whatever you do to idle. Any other orb gets a shared remap of its motion knobs, so the tabs still change what happens inside it. A phase never moves the ball itself.
03Export, and drive it from your agent
The download carries a phase argument (0, 1, 2, fractions crossfade) and the three targets as data. Set the phase from your agent's status: listening or connected is idle, generating is thinking, streaming a reply is speaking.
The exported component takes a phase prop and ships the three targets as data. Spread the one that matches your agent.
const phase =
status === "generating" ? "thinking"
: status === "streaming" ? "speaking"
: "idle";
<Hydrogen {...HYDROGEN_PHASES[phase]} />SwiftUI gets the same three as HydrogenView.phase(.speaking). A fractional phase crossfades the voice envelope, so you can ease between states.
Try it in the editor