~ art.py

terminal art club

animated art that lives in a terminal

characters, colors, math — no pixels. new piece every monday.

this week

what is this?

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.

█▓▒░

art

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.

░ ▒ ░

atmosphere

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.

◆ ◆ ◆

ritual

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.

the collection

the medium

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
# 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.