Harmonica
Physics-based animation primitives for terminal UIs and time-based motion.
Role in the charmed_rust (FrankenTUI) stack
Harmonica sits at the bottom of the stack as the motion engine. It provides
deterministic physics helpers that higher-level crates can use to animate UI
state over time without depending on any UI framework directly. In practice,
bubbletea uses harmonica helpers for animation timing, bubbles components
use it to animate progress and transitions, and charmed-demo-showcase uses it
to demonstrate smooth, spring-like motion in the overall system.
Crates.io package
Package name: charmed-harmonica
Library crate name: harmonica
What it provides
Springfor damped harmonic motion.Projectilefor simple ballistic motion.fps(...)helper for fixed-timestep updates.
Typical usage
use ;
let spring = new;
let = ;
= spring.update;
Where to look next
crates/harmonica/src/spring.rscrates/harmonica/src/projectile.rs