Demoscene demoscene

Classic Amiga and IBM PC demoscene effects rendered in the terminal using half-block ANSI characters
Pixelbadger Toolkit — pbtk demoscene — ← all topics

Overview

The demoscene topic renders classic Amiga and IBM PC demoscene effects directly in your terminal. It uses the Unicode upper half block character ▀ (U+2580) with 24-bit ANSI colour codes to double the effective pixel density: the foreground colour paints the top half of each character cell and the background colour paints the bottom half, giving two pixel rows per terminal row.

All effects animate in real time, running for a configurable number of frames at ~20 fps before returning to the shell. Press Ctrl+C at any time to stop early.

A terminal that supports 24-bit (true colour) ANSI codes is required for full colour fidelity. Most modern terminals (iTerm2, Windows Terminal, GNOME Terminal, Alacritty) support true colour.

kefrens

Renders a Kefrens-style effect — multiple vertical colour bars that scroll across the screen following independent sine wave paths. Each bar has a distinct hue and a soft brightness falloff from its centre, giving the classic glowing-bars look of the Amiga demo era.

$ pbtk demoscene kefrens
$ pbtk demoscene kefrens --frames 400

The effect fills the full terminal window and runs until the requested frame count is reached. Eight bars covering the rainbow spectrum are rendered simultaneously, each moving at a different phase so they weave across and through one another.

OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render before exiting

boing

Renders the classic Amiga Boing Ball — a red-and-white checkered sphere bouncing around a grey grid background. The checkerboard pattern rotates as the ball moves, giving the impression of spin. This effect was famously used to demonstrate the graphical capabilities of the original Amiga 1000 in 1984.

$ pbtk demoscene boing
$ pbtk demoscene boing --frames 400

The ball bounces off all four walls and its checkerboard pattern rotates continuously. The grey grid background echoes the original demo's distinctive aesthetic.

OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render before exiting

plasma

Renders the classic IBM PC plasma — several sine fields are summed per pixel and looked up in a smoothly cycling rainbow palette.

$ pbtk demoscene plasma
$ pbtk demoscene plasma --frames 400
OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render before exiting

fire

Renders the classic IBM PC fire effect — random embers on the bottom row are averaged upward each frame and cooled, mapped through a black-red-yellow-white palette.

$ pbtk demoscene fire
$ pbtk demoscene fire --frames 400
OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render before exiting

copper

Renders classic Amiga copper bars — shaded horizontal raster bars with metallic highlights that weave in front of and behind each other.

$ pbtk demoscene copper
$ pbtk demoscene copper --frames 400
OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render before exiting

showcase

Plays every demoscene effect in sequence (boing, plasma, kefrens, fire, copper), alternating Amiga and IBM PC classics.

$ pbtk demoscene showcase
$ pbtk demoscene showcase --frames 300
OptionRequiredDefaultDescription
--framesNo200Number of animation frames to render for each effect

Command Reference

CommandDescription
pbtk demoscene kefrens [--frames N] Animate Kefrens-style sine wave colour bars across the terminal
pbtk demoscene boing [--frames N] Animate the classic Amiga Boing Ball bouncing on a grey grid
pbtk demoscene plasma [--frames N] Animate the IBM PC sine-field plasma
pbtk demoscene fire [--frames N] Animate the IBM PC fire effect
pbtk demoscene copper [--frames N] Animate Amiga copper raster bars
pbtk demoscene showcase [--frames N] Play all demoscene effects in sequence