Create fluid, professional animations for your embedded display — directly in Flint's visual timeline editor. Keyframe curves, state-triggered transitions, and sequenced animation chains. No animation code to write — Sparklet's execution engine handles everything at runtime.
An embedded GUI animation designer is a visual tool that lets developers and UI designers create smooth widget animations — position sweeps, fade effects, colour transitions, progress bar fills — for embedded displays, without writing animation interpolation code by hand. Flint UI Designer, Sparklet's PC-based WYSIWYG design tool, includes a fully integrated animation designer with a keyframe timeline, easing curve editor, state-triggered animation hooks, and sequenced animation chains. The animations are compiled into compact C tables and executed at runtime by Sparklet's execution engine, with zero per-frame calculation required in application code.
Embedded GUI animations serve both functional and usability purposes. A smooth needle sweep on instrument cluster startup signals system readiness. A fade-in on screen navigation gives the user a sense of hierarchy and direction. A spinning loader on a long operation communicates that the system is working, not frozen. In competitive embedded product categories — automotive clusters, wearables, home appliances, medical monitors — animation quality is a direct proxy for product quality in the customer's perception.
Flint's animation designer removes the barrier that previously forced embedded teams to choose between animation quality and development time. With the Flint UI Designer, animation is designed visually and executed automatically by Sparklet's widget engine.
Flint supports three complementary animation approaches suited to different interaction patterns in an embedded GUI.
The keyframe timeline editor works similarly to animation tools in the mobile and web domain — but outputs to embedded C, not JavaScript or CSS. For any widget property (position X/Y, width, height, opacity, rotation angle, colour, or numeric value), you place keyframes at time positions on the timeline and define the value at each keyframe. Flint interpolates between keyframes using the easing curve assigned to each segment: linear, ease-in, ease-out, ease-in-out, or a custom cubic Bezier.
Once designed, the animation previews in Flint's live simulator panel. On export, the animation compiles into a compact C animation table — a fixed array of keyframe descriptors and timing data. At runtime, Sparklet's execution engine walks the table, interpolating property values each frame. No heap allocation, no malloc, no per-frame application callback required.

State transition animations are triggered automatically by Flint's state machine editor. Every state in the Flint state machine can have an entry animation and an exit animation. When the state machine transitions — triggered by a touch event, timer, or data threshold — Sparklet automatically plays the exit animation of the departing state and the entry animation of the arriving state.
This decouples animation from application logic. The application code sends an event to the state machine; the state machine handles the transition; Sparklet plays the animations. No application code needs to call an animation start function, track animation state, or handle animation completion. It is entirely declarative.

Sequenced animations allow multiple animations to be chained together with configurable delays and parallel or sequential execution. A sequence can run Animation A, wait 200 ms, then start Animation B and Animation C in parallel, then on their completion trigger Animation D. The entire sequence is defined visually in Flint and compiled to a sequence descriptor table in C.
Sequenced animations are ideal for orchestrating complex startup and multi-screen scenarios where individual widgets must animate in a specific order and timing to create a cohesive experience.


Plays when a widget or screen becomes visible. Typically a fade-in, slide-in, or scale-up. Assigned to state machine entry events in Flint; Sparklet plays them automatically on every relevant state transition with zero application code involvement.

Plays when a widget or screen is about to become hidden. A fade-out, slide-out, or shrink-and-disappear sequence. Runs before the state machine completes the transition, ensuring the leaving state is visually dismissed before the arriving state appears.

A continuously repeating animation — a BusyIndicator spinning, a status LED pulsing, an idle screen clock hand ticking. Defined with a loop flag in Flint's timeline editor. Runs indefinitely until cancelled by a state machine transition or an explicit application API call.

A one-shot animation bound to a specific transition in the state machine diagram. Plays exactly once when that transition fires, covering effects like a button press ripple, a confirmation check-mark draw, or a value-update highlight flash. Defined in Flint's animation panel alongside the transition arrow.
| Capability | Manual C Code | Flint Animation Designer |
|---|---|---|
| Easing curves | Custom cubic Bezier — implement from scratch | Built-in presets + cubic Bezier editor |
| Floating-point arithmetic | Developer avoids on Cortex-M0 — complex | Pre-calculated fixed-point tables at design time |
| Per-frame timer callback | Required — developer writes and maintains | None — Sparklet engine manages all frames |
| Multi-object sequencing | Manual state flags and delay counters | Visual sequence chain — no code |
| State-triggered animations | Manual integration with UI state flags | Automatic via state machine — fully declarative |
| RAM usage per animation | Varies — depends on developer approach | Fixed small context struct; Flash-stored tables |
| Preview before hardware flash | Flash and test device each iteration | Instant preview in Flint PC Simulator |
| Iteration speed | Minutes per easing change | Seconds — adjust and preview live |
With Flint UI Designer, you add animations to an embedded GUI by opening the animation timeline for a widget, placing keyframes at desired time positions, setting the property value at each keyframe, and selecting an easing curve. Flint compiles the animation to a C table that Sparklet's execution engine runs at runtime. No interpolation code or timer callbacks are written in application code.
Download the Sparklet evaluation package — includes Flint UI Designer with the full animation editor, PC simulator, and sample projects with animated screens. No hardware required to get started.