Overview
The demoscene topic renders classic Amiga 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.
Both 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.
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.
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.
| Option | Required | Default | Description |
|---|---|---|---|
--frames | No | 200 | Number 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.
The ball bounces off all four walls and its checkerboard pattern rotates continuously. The grey grid background echoes the original demo's distinctive aesthetic.
| Option | Required | Default | Description |
|---|---|---|---|
--frames | No | 200 | Number of animation frames to render before exiting |
Command Reference
| Command | Description |
|---|---|
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 |