Compare • Logic
Rive State Machine Alternative: Logic Compared
If you are looking for a Rive state machine alternative, the question is how much logic you want inside the animation file. Rive and ExodeUI both have visual state machines, and they extend them in different directions.
Updated October 2026 · We make ExodeUI
Direct Answer
Rive state machines use layers, inputs, listeners and conditions, with data binding to view models and Luau scripting for custom behaviour. ExodeUI has states, transitions, entry conditions and layers, plus logic nodes (maths, comparisons, sensors, springs), expressions, flow rules and API variables that fetch live data. Rive is stronger for scripted, character-style interaction. ExodeUI is aimed at UI logic: forms, multi-step flows and components that react to data.
Logic in Rive
A Rive state machine moves between animation states on layers, using inputs, conditions and listeners that respond to pointer events and property changes. Data binding connects elements to view models your code can update, and Luau scripting adds custom logic, including listener action scripts.
For version control, Rive's CLI can now keep a project as text (Rive Markup Language), and the editor keeps a revision history.
Logic in ExodeUI
ExodeUI state machines have states, transitions, entry conditions and layers. Beside them, logic nodes handle values, maths (add, subtract, multiply, divide), comparisons and boolean logic, sensors such as mouse position and scroll, and spring helpers. Expressions and variable binding can drive any property, and API variables can fetch data with polling.
- Input types: boolean, number, string, trigger, number and string arrays, and API
- Object interactions: click, hover and pointer events that play animations or set inputs
- Flow rules for multi-step sequences and navigation between screens
- The logic is stored in the open .exode JSON file, and the CLI can diff it
Rive vs ExodeUI: logic
Rive data from rive.app/docs, checked October 2026.
| Feature | Rive | ExodeUI |
|---|---|---|
| State machines | Layers, inputs, conditions, listeners | States, transitions, entry conditions, layers |
| Data | Data binding with view models and lists | Variables, expressions, API variables with polling |
| Custom code | Luau scripting | Logic nodes; JavaScript animation presets |
| Multi-screen flows | Artboards and nested components | Screens with navigation triggers and flow rules |
| Source format | Editor file; text via the Rive CLI | Open .exode JSON |
Frequently Asked Questions
What is a good alternative to Rive state machines?
For interactive UI, ExodeUI has state machines plus logic nodes, expressions and API data. For animations that switch between a few states, dotLottie state machines are a lighter option.
Does ExodeUI have state machines like Rive?
Yes: states, transitions, entry conditions and layers, driven by boolean, number, string and trigger inputs from your code.
Can Rive state machines use live data?
Yes, through data binding. Your code updates view model properties and the bound elements respond.
Can I review animation logic in a pull request?
With ExodeUI, the logic is in a JSON file you can commit and diff. With Rive, the CLI can keep projects as text files, which also works with version control.