Retro Plasma

retro-plasma is a full-screen animation demo that renders a classic retro plasma effect directly in the terminal. The application continuously updates the screen using an animated buffer and allows you to switch between multiple color palettes while it is running.

Besides being visually fun, the demo also illustrates how to build responsive terminal applications that react to keyboard input and terminal resize events.

../../_images/retro-plasma.jpg

Run the Demo

Start the demo from the build directory:

$ ./cmake-build-debug/demo-apps/retro-plasma

The animation runs continuously and can be controlled using the keyboard.

Features Shown

This demo demonstrates several aspects of animated terminal rendering:

  • Full-screen rendering using Buffer together with Terminal::updateScreen().

  • A timed animation loop combined with keyboard input using Input::Mode::Key.

  • Palette-based color animation implemented with ColorSequence.

  • Resize-aware rendering using custom UpdateSettings with minimum size handling.

  • Dynamic footer prompts composed from colored String elements.

Relevant Source Files

If you want to explore how the effect is implemented, start with:

  • demo/retro-plasma/src/RetroPlasmaApp.cpp

  • demo/retro-plasma/src/PlasmaRenderer.cpp

The application file contains the main event loop and terminal interaction logic, while the renderer implements the plasma effect itself.