Making art in the terminal window

Mona Lisa in the Console

© Lead Image © Gennadiy Poznyakov, 123RF.com

© Lead Image © Gennadiy Poznyakov, 123RF.com

Article from Issue 305/2026
Author(s):

You can create living, breathing art using nothing but C++ code, 16.7 million colors, and the Linux console.

This article invites readers into the world of generative art – but not the kind rendered by GPUs or displayed through glassy GUI frameworks. In this case, the canvas is the Linux terminal, and the brush is pure C++ code. You'll learn how to breathe life into grids of characters, how patterns emerge from logic, and how randomness itself can become rhythm. I don't have the space to print all the code used for this article, but you'll find it all at my GitHub site [1].

Using a text terminal, and a deep respect for the expressive power of simplicity, I'll construct living systems made entirely of text and shades of color. By the end, your terminal will have transcended its humble role as a command prompt, becoming a living canvas of color, movement, and form. From oscillating plasma to self-replicating cellular automata, you'll watch as computation turns into motion, emotion, and art.

The Canvas

Before you can draw, you must understand the medium. The Linux terminal, often dismissed as a relic of textual computing, is actually a grid-based display system, capable of far more nuance than it first appears. At its heart, every terminal window is a matrix of character cells, each with a foreground and background color.

[...]

Use Express-Checkout link below to read the full article (PDF).

Buy this article as PDF

Download Article PDF now with Express Checkout
Price $2.95
(incl. VAT)

Buy Linux Magazine

Related content

  • Animation with OpenToonz

    OpenToonz is a professional animation tool for comic and manga artists.

  • FOSSPicks

    Graham has just recorded a one-off podcast featuring the wonderful open source VCV Eurorack emulator, often written about here. He's now strongly considering doing a more regular synth-related podcast.

  • Next Steps in Vector Graphics

    What are vector graphics and how could we make them better?

  • Graphics in Python with Cairo

    Build graphic elements into your Python programs with the Cairo graphics library. We'll show you how to draw an analog clock face that displays the current time.

  • FOSSPicks

    This month Graham looks at Plasma System Monitor, projectM audio visualizer, yt-dlg downloader GUI, and more.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News