Deterministic State Machine Progress Loader
An animated state machine loader orchestrates deterministic transitions between connecting, indeterminate progress, percentage completion, and success confirmation without asynchronous animation glitching or visual flicker.
Technical Specifications
Interaction Phases
The scene keeps one Idle state. These phases are driven by its inputs and pointer events; the same values appear in the code below.
Use the scene
import { ExodeUICanvas } from 'exodeui';
// animated-loader.bexode goes in /public
export function AnimatedLoader() {
return (
<ExodeUICanvas
src="/animations/react-loader.bexode"
fit="Layout"
autoPlay
interactive
inputs={{
progress: -1,
label: 'Loading assets',
speed: 1,
accent: '#7c5cff',
accent2: '#22d3ee',
bg: '#0b0b12',
}}
onTrigger={(name) => {
// fires: 'complete'
}}
style={{ width: '100%', height: 440 }}
/>
);
}This snippet loads /animations/react-loader.bexode with the same inputs shown in the live stage.
Architectural Breakdown
Generic spinners loop indefinitely and offer zero meaningful feedback to users.
An ExodeUI state loader explicitly models system status transitions: connecting, streaming bytes, and completing with an organic checkmark morph.
The ring and orbit dots are drawn directly on the scene canvas, so the loader stays crisp at any size.
Frequently Asked Questions
Explore Related Motion Guides & Tooling
Build your next living interface today.
Design fluid physics and visual logic in ExodeUI and export directly to React, Swift, and Flutter.