A free Nebula voice orb for ambient assistant, with idle, listening, thinking and speaking states. Download the .bexode and use it in React.
Updated October 2026
A soft core surrounded by uneven dots. In thinking the particles spread and spin; in listening they gather closer to the edge. The .bexode file includes the four states, the animation tracks and a state machine. Change the primary and accent colours in the gallery, then download the file and render it with ExodeUICanvas.
Every orb in this set is a .bexode file. It packages the four states, the animation tracks and a state machine for the ExodeUI runtime. The gallery draws the motion in the browser, and you can switch the primary colour, accent colour, stage, size, speed, intensity and stroke before you download. The same file works with the React package and the other runtimes ExodeUI ships.
A slow breath and a quiet centre. This is the resting state when the assistant is open but not working.
A brighter centre and wider ripples. Use it while the microphone is open so the voice input is obvious.
A faster orbit and a tighter breath. Use it while a model is reasoning or waiting on a tool result.
The largest ripples and the strongest glow. Use it while audio is playing back or a response is streaming.
Open the gallery above, pick an orb and select a state to preview it. Adjust the colours and motion until it fits your interface, then download the .bexode. The file contains the four states and a state machine, so your app only has to pass the current assistant state. The React example below uses ExodeUICanvas from the exodeui package.
import { ExodeUICanvas } from 'exodeui';
export function VoiceOrb({ state = 'idle', size = 200 }) {
return (
<ExodeUICanvas
src="/ai/nebula.bexode"
autoPlay
interactive
inputs={{ state }}
style={{ width: size, height: size }}
/>
);
}