animated art that lives in a terminal
characters, colors, math — no pixels. new piece every monday.
A terminal, quietly rendering. Animated pieces in a medium of ASCII and Unicode — painterly, ambient, meant for the long loop. Every monday, a new one.
ASCII and Unicode that moves, breathes, and glows. Northern lights ripple over mountains. Rain trickles down a coffee shop window. A 3D castle orbits in the terminal. Every piece is a tiny world made of characters.
Deep palettes, slow drifts, night-dominant moods. Pieces that could loop for an hour without annoying. Nothing that demands your attention — made for the long glance, the deep scroll, the screen you leave on.
One new piece every monday. Collected into volumes. A quiet weekly drop — something small to look forward to, the same time each week, the same medium, a new world.
Each piece is a single Python file. Click any card to read the source.
One file. One canvas. Eighty columns of Unicode.
No pixels. No framework. No frames per second beyond what the terminal can draw.
The constraint is the art. Every palette is a choice among sixteen million RGB colors; every motion is a choice of math. What survives is atmosphere.
# waves.py — a complete screensaver import math for frame in range(200): canvas.clear() for y in range(height): line = Text() for x in range(width): t = math.sin(x * 0.1 + frame * 0.05 + y * 0.08) char = "░▒▓█"[int((t + 1) * 1.99)] hue = int(140 + t * 80) line.append(char, style=f"rgb({hue},{255 - hue},200)") canvas.write(line) await sleep(0.05)
Thirteen lines. A wave of colored blocks. The medium, rendering.