Skip to main content

EXODEUI EDITOR MANUAL

Logic & State Machine Studio

Visual state graphs, event triggers, logic gates, interactive canvas components, and zero-loss React SDK runtime integration.

LIVE STATE MACHINE SIMULATOR

Interactive Node Graph & Event Pipeline

Active: IDLE
GRAPH: auth_flow.machine LIVE SIM
STATE
01 Idle State
STATE
02 Loading Spinner
STATE
03 Confetti & Check
STATE
04 Shake & Red Alert
Trigger: pointer_idleLayer: Root Layer
Fire State Machine Inputs:
Generated React SDK Call:fireTrigger("idle");

Inputs & Logic Gates

The communication bridge between user interaction and state animation.

Input Variable Types

Click the [+] icon in the Logic Inspector to define state inputs:

Input TypeValue DomainCommon Use Cases
TriggerOne-shot impulse signalButton clicks, download complete, celebrate confetti
Booleantrue / falseHover active, dark mode toggle, modal visible
NumberContinuous float / integerHealth bars, progress percentage, scroll offset
Text / StringDynamic UTF-8 stringUser badges, live currency values, ticker copy

Boolean Logic Gates (AND, OR, NOT)

AND Gate

Outputs true only if every connected socket input evaluates to true (e.g. formValid AND acceptedTerms).

OR Gate

Outputs true if at least one socket input is true (e.g. enterKeyPressed OR submitButtonClicked).

NOT / Math Nodes

Inverts signals or applies arithmetic (Add, Subtract, Multiply, Remainder) for procedural dynamics.

States & Visual Transitions

Wire animations into discrete state nodes and define mathematical transition rules.

State Nodes (Entry, Idle, Anim, Blend)

State NodeBehavior
Entry NodeThe initialization point executed when the scene loads.
Animation StatePlays a dedicated timeline track (e.g., walk cycle, button hover, error shake).
Blend State (1D / 2D)Mixes two or more timelines smoothly based on numeric parameters.
Any StateAllows transitions from any currently running state without wiring manual spaghetti lines.

Transition Conditions & Easing

Drag a connector wire from one state node to another. In the Inspector, attach one or more logical conditions:

Duration & Mix Time

Controls the cross-fade duration (e.g. 200ms) between outgoing and incoming skeletal/vector keyframes.

Exit Time

Specifies whether the state must complete its current timeline cycle before the transition is allowed to fire.

Interactive Canvas UI Components

Drop pre-built interactive UI widgets onto the canvas with native runtime communication.

Buttons, Toggles & Sliders

tsx
import { ExodeUICanvas } from 'exodeui';

export function InteractiveToolbar() {
  return (
    <ExodeUICanvas
      src="/artboards/dashboard_ui.exode"
      onComponentChange={(event) => {
        // Automatically receives clicks, slider updates, and toggle changes
        if (event.variant === 'button' && event.componentName === 'SubmitBtn') {
          console.log('User submitted form!');
        }
        if (event.variant === 'slider' && event.componentName === 'VolumeSlider') {
          console.log('Volume adjusted to:', event.value);
        }
      }}
    />
  );
}

React / Next.js SDK API

The full runtime API reference for embedding ExodeUI graphics into web applications.

<ExodeUICanvas /> Component Props

PropTypeDescription
artboardExodeProjectJSONDirect inlined project JSON data.
srcstringRemote URL path to .exode binary asset.
autoPlaybooleanStarts timeline immediately on load (default: true).
fit'contain' | 'cover' | 'fill'Canvas viewport scaling behavior.
onReady(engine) => voidCallback fired when WebGL/WASM engine is initialized.
onComponentChange(event) => voidUnified event pipeline for all interactive canvas UI.

useExodeUI() Hook Methods

Method SignatureDescription
fireTrigger(triggerName: string)Fires a one-time trigger pulse into the active state machine.
setInputBool(name: string, value: boolean)Updates a boolean state input switch.
setInputNumber(name: string, value: number)Sets a numeric variable value.
setInputText(name: string, text: string)Updates dynamic text bound on the canvas.
updateObjectOptions(id: string, options: object)Mutates component properties (e.g. disabled, text, color).

2D Rigid Body Physics Engine

Real-time collision, restitution, and gravitational dynamics.

Body Types (Dynamic, Static, Kinematic)

Dynamic Body

Affected by gravity, mass, linear velocity, and collisions.

Static Body

Unaffected by forces; acts as solid walls and boundary floors.

Kinematic Body

Moves via keyframe animations, pushing dynamic objects realistically.

Diagnostics & Troubleshooting

Quick solutions for common runtime and editor scenarios.

Why isn't my state transition firing?

Verify that the Input variable name defined in the Logic Panel matches the string passed in code exactly (case-sensitive). Also check if 'Exit Time' is preventing immediate switching.

Dynamic text bound to variable is blank?

Ensure the Text layer on canvas has the VAR toggle enabled in the Typography Inspector, and that the default fallback string is configured.

How do I optimize WebGL rendering performance on mobile?

Group complex static backgrounds into a single cached layer, and ensure unused parallel state machine layers are paused.

ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →