charm-harmonica

Provide spring and projectile animation primitives for Go terminal UIs.

12|2|Updated Mar 17, 2026
One-click install
npx skills add https://github.com/alxxpersonal/forge --skill charm-harmonica
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: charm-harmonica
Source: https://github.com/alxxpersonal/forge/tree/main/skills/charm-harmonica
Command: npx skills add https://github.com/alxxpersonal/forge --skill charm-harmonica

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides physics-based animation primitives (spring and projectile) for Go terminal UIs to produce smooth, natural motion.

Core Features & Use Cases

  • Spring-based motion: damped harmonic oscillator for UI animations.
  • Projectile motion: simple kinematic motion with gravity constants for TUIs.
  • Use Case: integrate into a TUI to produce responsive, physics-driven components like panels, sliders, or draggable items.

Quick Start

Initialize a spring with NewSpring and advance per frame to drive positions.

Frequently Asked Questions about charm-harmonica

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add physics-based animations to a Go TUI?

You add physics-based animations to a Go TUI by applying spring and projectile primitives that model damped harmonic oscillators and kinematic motion for smooth UI transitions. This Skill provides NewSpring and NewProjectile functions to drive component animations predictably.

What is spring-based motion for terminal UI animations?

Spring-based motion for terminal UI animations is a damped harmonic oscillator model that produces smooth, natural movement. You initialize it using NewSpring with a deltaTime, angularFrequency, and dampingRatio to precompute coefficients for responsive UI transitions.

How do I model projectile motion with gravity in a Go terminal app?

To model projectile motion with gravity in a Go terminal app, you initialize a kinematic model using NewProjectile with deltaTime, position, velocity, and acceleration. Built-in TerminalGravity and Gravity constants provide realistic downward movement for TUI components.

Can I use these physics primitives for interactive elements in Go TUI apps?

Yes, you can use these physics primitives for interactive elements in Go TUI apps. They are designed to integrate into terminal interfaces to produce responsive, physics-driven components like panels, sliders, or draggable items requiring predictable physics behavior.

What's the best way to animate UI transitions naturally in a Go TUI?

The best way to animate UI transitions naturally in a Go TUI is using precomputed spring coefficients. By advancing a damped harmonic oscillator per frame with NewSpring, you achieve smooth, natural motion without manual easing function calculations.

Do I need external dependencies to run physics animations in my Go TUI?

No, you do not need external dependencies to run physics animations in your Go TUI. This Skill operates without any listed dependencies, providing standalone spring and projectile primitives with built-in gravity constants for terminal UI development.