<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Scroll Art Museum - Artwork</title><link href="/" rel="alternate"/><link href="https://scrollart.org/feeds/artwork.atom.xml" rel="self"/><id>/</id><updated>2026-09-29T23:59:59-04:00</updated><subtitle>Programmer art that begins in the terminal.</subtitle><entry><title>Percolate</title><link href="artwork/percolate/" rel="alternate"/><published>2026-09-29T23:59:59-04:00</published><updated>2026-09-29T23:59:59-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/percolate/</id><summary type="html">&lt;p&gt;Al Sweigart, 2026. Liquid seeps downward through porous rock.&lt;/p&gt;
&lt;p&gt;Depending on the density of the rock text characters, the liquid text characters may fill the entire area or quickly end up blocked entirely. Open the Customize section and experiment with the "porosity" setting: 0.0 means no blocking rocks while …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2026. Liquid seeps downward through porous rock.&lt;/p&gt;
&lt;p&gt;Depending on the density of the rock text characters, the liquid text characters may fill the entire area or quickly end up blocked entirely. Open the Customize section and experiment with the "porosity" setting: 0.0 means no blocking rocks while 1.0 means everything is a rock.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Maze Gen</title><link href="artwork/maze-gen/" rel="alternate"/><published>2026-09-29T23:59:58-04:00</published><updated>2026-09-29T23:59:58-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/maze-gen/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. An infinite perfect maze is carved one row at a time.&lt;/p&gt;
&lt;p&gt;This piece uses Eller's algorithm to generate the infinite maze that ensures that every region continues into the next row.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Redact</title><link href="artwork/redact/" rel="alternate"/><published>2026-09-29T23:59:57-04:00</published><updated>2026-09-29T23:59:57-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/redact/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. A classified report scrolls past with random words hidden beneath solid bars.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Brownian</title><link href="artwork/brownian/" rel="alternate"/><published>2026-09-29T23:59:56-04:00</published><updated>2026-09-29T23:59:56-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/brownian/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Large and small particles jitter through space, reminiscent of &lt;a href="https://en.wikipedia.org/wiki/Brownian_motion"&gt;Brownian motion&lt;/a&gt;, and leave fleeting tracks behind them.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Hourglass</title><link href="artwork/hourglass/" rel="alternate"/><published>2026-09-29T23:59:55-04:00</published><updated>2026-09-29T23:59:55-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/hourglass/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Sand drains through a narrow hourglass and accumulates in the chamber below. The series of hourglasses themselves create a larger pattern.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Rope</title><link href="artwork/rope/" rel="alternate"/><published>2026-09-29T23:59:50-04:00</published><updated>2026-09-29T23:59:50-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/rope/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Oscillating strands cross over and under one another to form an endlessly scrolling rope. Similar to the &lt;a href="artwork/proton-stream/"&gt;Proton Stream&lt;/a&gt; piece.&lt;/p&gt;
&lt;p&gt;Each strand follows a sinusoidal path with its own phase and drawing character. The woven braid appearance comes from changing the layer order of the strands.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Guilloche</title><link href="artwork/guilloche/" rel="alternate"/><published>2026-09-29T23:59:40-04:00</published><updated>2026-09-29T23:59:40-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/guilloche/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Overlapping spirograph curves form an intricate scrolling guilloche engraving.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Earthquake</title><link href="artwork/earthquake/" rel="alternate"/><published>2026-09-29T23:59:30-04:00</published><updated>2026-09-29T23:59:30-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/earthquake/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Layered terrain shudders through sudden earthquakes and gradually fading aftershocks. This piece experiments with irregular line production timings to create the sudden-quake effect.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Suspense</title><link href="artwork/suspense/" rel="alternate"/><published>2026-09-29T23:59:20-04:00</published><updated>2026-09-29T23:59:20-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/suspense/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. A tightening field of symbols compresses towards the center to build tension before bursting outward in a rapid release.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Tides</title><link href="artwork/tides/" rel="alternate"/><published>2026-09-29T23:59:10-04:00</published><updated>2026-09-29T23:59:10-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/tides/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Rolling ASCII waves advance and recede across a beach under a slower tidal rhythm.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Sandstorm</title><link href="artwork/sandstorm/" rel="alternate"/><published>2026-09-29T23:59:00-04:00</published><updated>2026-09-29T23:59:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/sandstorm/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Windblown grains of ASCII sand sweep across the terminal in overlapping, shifting gusts.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>DNA</title><link href="artwork/dna/" rel="alternate"/><published>2026-09-29T00:00:00-04:00</published><updated>2026-09-29T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/dna/</id><summary type="html">&lt;p&gt;Al Sweigart, 2026. A repeating double helix twists down the terminal with paired DNA bases between its strands.&lt;/p&gt;
&lt;p&gt;Carefully indented rows make the two sides of the helix appear to cross, separate, and reconnect. Letters representing adenine, cytosine, guanine, and thymine form the base pairs within the scrolling structure. Based …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2026. A repeating double helix twists down the terminal with paired DNA bases between its strands.&lt;/p&gt;
&lt;p&gt;Carefully indented rows make the two sides of the helix appear to cross, separate, and reconnect. Letters representing adenine, cytosine, guanine, and thymine form the base pairs within the scrolling structure. Based on &lt;a href="https://inventwithpython.com/bigbookpython/project21.html"&gt;Project 21&lt;/a&gt; in Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython/"&gt;The Big Book of Small Python Projects&lt;/a&gt;.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Password Cracker</title><link href="artwork/password-cracker/" rel="alternate"/><published>2026-09-29T00:00:00-04:00</published><updated>2026-09-29T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/password-cracker/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. A simulated password-cracking display gradually resolves random characters into a hidden message.&lt;/p&gt;
&lt;p&gt;Every column begins as a stream of changing letters and numbers. At random intervals, one column locks into place and reveals the corresponding character from the message until the complete phrase emerges.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Playing Cards</title><link href="artwork/playing-cards/" rel="alternate"/><published>2026-09-29T00:00:00-04:00</published><updated>2026-09-29T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/playing-cards/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Random ASCII art playing cards.&lt;/p&gt;
&lt;p&gt;Inspired by the structure of Ducklings, this piece assembles four-line card drawings.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Scroll Lightning</title><link href="artwork/scroll-lightning/" rel="alternate"/><published>2026-09-29T00:00:00-04:00</published><updated>2026-09-29T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/scroll-lightning/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Branching bolts of ASCII lightning flash across an endlessly scrolling sky.&lt;/p&gt;
&lt;p&gt;New bolts appear at random positions, zigzag toward the edges, and occasionally fork into separate paths. Their short lifespans keep the pattern in constant motion while the overlapping strokes build brief electrical storms.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Tsuro Scroll</title><link href="artwork/tsuro-scroll/" rel="alternate"/><published>2026-09-29T00:00:00-04:00</published><updated>2026-09-29T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-09-29:artwork/tsuro-scroll/</id><summary type="html">&lt;p&gt;Al Sweigart, 2026. Randomly selected and rotated tiles form a continuously scrolling network of convoluted routes.&lt;/p&gt;
&lt;p&gt;Each five-by-five tile contains several paths made from box-drawing characters. The program chooses tiles and orientations independently, but their edge connections let neighboring pieces join into a larger maze-like design. Inspired by the tiles …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2026. Randomly selected and rotated tiles form a continuously scrolling network of convoluted routes.&lt;/p&gt;
&lt;p&gt;Each five-by-five tile contains several paths made from box-drawing characters. The program chooses tiles and orientations independently, but their edge connections let neighboring pieces join into a larger maze-like design. Inspired by the tiles in the Tsuro board game.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Bund FC</title><link href="artwork/bund-fc/" rel="alternate"/><published>2026-02-19T00:00:00-05:00</published><updated>2026-02-19T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-02-19:artwork/bund-fc/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Inspired by the kinetic architecture of &lt;a href="https://en.wikipedia.org/wiki/The_Bund_Finance_Center"&gt;the Bund Finance Center&lt;/a&gt; in Shanghai.&lt;/p&gt;
&lt;p&gt;The BFC has three, overlapping, moving layers of vertical stainless steel pipes. These layers, inspired by theatre curtains, &lt;a href="https://www.youtube.com/watch?v=IS7L0YxVkgY"&gt;slowly rotate around the building&lt;/a&gt;.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Candlelight</title><link href="artwork/candlelight/" rel="alternate"/><published>2026-02-19T00:00:00-05:00</published><updated>2026-02-19T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2026-02-19:artwork/candlelight/</id><content type="html">&lt;p&gt;Al Sweigart, 2026. Flickering columns with random expansions and contractions.&lt;/p&gt;
&lt;p&gt;Candlelight was the result of Al Sweigart trying to create expanding and contracting columns that also shifted horizontally. He thought the end result had a flickering candle appearance.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Pipe Swap</title><link href="artwork/pipe-swap/" rel="alternate"/><published>2025-07-18T00:00:00-04:00</published><updated>2025-07-18T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2025-07-18:artwork/pipe-swap/</id><content type="html">&lt;p&gt;Al Sweigart, 2025. Vertical pipes that criss cross and swap places.&lt;/p&gt;
&lt;p&gt;"Pipe Swap" was a quick work made during a lunchtime creative computing workshop at the &lt;a href="https://recurse.com"&gt;Recurse Center&lt;/a&gt;. He wanted vertical lines that would randomly swap to a different column.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Towers and Towers</title><link href="artwork/towers-and-towers/" rel="alternate"/><published>2024-07-03T00:00:00-04:00</published><updated>2024-07-03T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-07-03:artwork/towers-and-towers/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Growing towers sprouting from the bottom of the screen.&lt;/p&gt;
&lt;p&gt;Towers and Towers was created for the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;. Al Sweigart wanted a piece with a start-and-stop feel, like a time-lapse of mushrooms erupting out of the ground.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Any Size Diagonal Maze</title><link href="artwork/any-size-diagonal-maze/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/any-size-diagonal-maze/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Random. A variation of &lt;a href="artwork/diagonal-maze/"&gt;Diagonal Maze&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While a random collection of the two diagonal characters forms the "maze", larger mazes can be created with 2 x 2, 3 x 3, or any arbitrary N x N size. This piece cycles through mazes of various size.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Forth and Back</title><link href="artwork/forth-and-back/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/forth-and-back/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A stripe knocking side to side, back and forth, against an increasing chaotic background.&lt;/p&gt;
&lt;p&gt;This piece was creating for the opening of the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;. The broad stripe accelerates to the opposite side of the screen while the background becomes increasing frenetic. The timing between …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A stripe knocking side to side, back and forth, against an increasing chaotic background.&lt;/p&gt;
&lt;p&gt;This piece was creating for the opening of the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;. The broad stripe accelerates to the opposite side of the screen while the background becomes increasing frenetic. The timing between movements is random, increasing the rapid, unpredictable feel of the piece.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>In and Out</title><link href="artwork/in-and-out/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/in-and-out/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Traveling lines come in and out from the sides.&lt;/p&gt;
&lt;p&gt;In and Out has several "travelers" that come in front the left or right side, fall vertically for a while, and then move back to their side of origin. The background is composed of periods and colons for …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Traveling lines come in and out from the sides.&lt;/p&gt;
&lt;p&gt;In and Out has several "travelers" that come in front the left or right side, fall vertically for a while, and then move back to their side of origin. The background is composed of periods and colons for light texture.&lt;/p&gt;
&lt;p&gt;This piece was a bit of an experiment, with mixed results. The code is highly configurable for number of travelers, length of travel, and overall scroll speed.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Moire</title><link href="artwork/moire/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/moire/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Mesmerizing &lt;a href="https://en.wikipedia.org/wiki/Moir%C3%A9_pattern"&gt;moiré patterns&lt;/a&gt; created from the &lt;a href="https://en.wikipedia.org/wiki/Midpoint_circle_algorithm"&gt;Bresenham circle algorithm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Moiré patterns come from the imperfections of drawing circles on a grid. The Bresenham circle algorithm yields the x, y Cartesian coordinates for a circle of a given radius. But drawing every circle of, say, radius 1 to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Mesmerizing &lt;a href="https://en.wikipedia.org/wiki/Moir%C3%A9_pattern"&gt;moiré patterns&lt;/a&gt; created from the &lt;a href="https://en.wikipedia.org/wiki/Midpoint_circle_algorithm"&gt;Bresenham circle algorithm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Moiré patterns come from the imperfections of drawing circles on a grid. The Bresenham circle algorithm yields the x, y Cartesian coordinates for a circle of a given radius. But drawing every circle of, say, radius 1 to 10 won't produce a filled circle. Instead, there will be slight gaps in the circle.&lt;/p&gt;
&lt;p&gt;This piece leans into these imperfections by also skipping circles, producing shapes reminiscent of Saturn's rings. These shapes form the backdrop of a sliding sine wave pattern in the foreground. This piece was created for an opening sequence of the Forbidden Zone music video.&lt;/p&gt;
&lt;p&gt;This piece is best viewed with a black background and white foreground.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Skybursts</title><link href="artwork/skybursts/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/skybursts/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Fireworks-like bursts spray downwards. The fireworks effect looks best on a black background to evoke a night sky.&lt;/p&gt;
&lt;p&gt;Skybursts was created for the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video's finale&lt;/a&gt;. Al Sweigart wanted something that evoked fireworks. The lines are generated from a &lt;a href="https://en.wikipedia.org/wiki/Bresenham's_line_algorithm"&gt;Bresenham line algorithm&lt;/a&gt; that he implemented …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Fireworks-like bursts spray downwards. The fireworks effect looks best on a black background to evoke a night sky.&lt;/p&gt;
&lt;p&gt;Skybursts was created for the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video's finale&lt;/a&gt;. Al Sweigart wanted something that evoked fireworks. The lines are generated from a &lt;a href="https://en.wikipedia.org/wiki/Bresenham's_line_algorithm"&gt;Bresenham line algorithm&lt;/a&gt; that he implemented in Python for the &lt;a href="https://pypi.org/project/PyBresenham/"&gt;PyBresenham package&lt;/a&gt;.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Stripeout</title><link href="artwork/stripeout/" rel="alternate"/><published>2024-05-26T00:00:00-04:00</published><updated>2024-05-26T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-26:artwork/stripeout/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Vertical stripe wipes.&lt;/p&gt;
&lt;p&gt;Stripeout is one of the simplest animations Al Sweigart has created, but also one of the most impactful. The cycling between individual columns and broad sweeps is a nice effect. Originally the sweep selection was completely random, but this had the negative side effect …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Vertical stripe wipes.&lt;/p&gt;
&lt;p&gt;Stripeout is one of the simplest animations Al Sweigart has created, but also one of the most impactful. The cycling between individual columns and broad sweeps is a nice effect. Originally the sweep selection was completely random, but this had the negative side effect of hitting only a handful of columns at a time as the screen filled, slowing down the complete wipe. Sweigart added code to ensure that the sweeps always cover as many columns as possible, keeping the animation from dragging out.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Skulls and Hearts</title><link href="artwork/skulls-and-hearts/" rel="alternate"/><published>2024-05-25T00:00:00-04:00</published><updated>2024-05-25T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-25:artwork/skulls-and-hearts/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A parallax experiment with scroll art with skulls and hearts.&lt;/p&gt;
&lt;p&gt;The use of parallax in this piece was discovered by accident. Al Sweigart created Skulls and Hearts as a sequence for the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;, but noticed that the hearts in the foreground seemed to move …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A parallax experiment with scroll art with skulls and hearts.&lt;/p&gt;
&lt;p&gt;The use of parallax in this piece was discovered by accident. Al Sweigart created Skulls and Hearts as a sequence for the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;, but noticed that the hearts in the foreground seemed to move faster than the skulls in the background. This is impossible; the output of all scroll art is just one stream. However, the illusion of parallax was achieved because the repeating skull pattern is eight lines in height, but by moving the animation nine lines at a time, the skulls appear to move only one line up. Meanwhile, the hearts do not repeat and therefore do look like they move up nine lines at a time.&lt;/p&gt;
&lt;p&gt;The difference makes the parallax effect appear. It was a serendipitous discovery that renewed Sweigart's interest in testing the limits of what is possible within the tight constraints of scroll art.&lt;/p&gt;
&lt;p&gt;The skull ASCII art is a modification of the one originally used in the Shining scroll art. This design was originally created for Project 41 - Lucky Stars in The Big Book of Small Python Projects , a clone of the game Zombie Dice .&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Twists</title><link href="artwork/twists/" rel="alternate"/><published>2024-05-25T00:00:00-04:00</published><updated>2024-05-25T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-25:artwork/twists/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Vertical columns that twist around each other.&lt;/p&gt;
&lt;p&gt;This piece shows vertical columns swapping places with each other, twisting around like bending bamboo poles. The twisting is an illusion: the program doesn't keep track of individual columns but reverts back to the same straight column state after each …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Vertical columns that twist around each other.&lt;/p&gt;
&lt;p&gt;This piece shows vertical columns swapping places with each other, twisting around like bending bamboo poles. The twisting is an illusion: the program doesn't keep track of individual columns but reverts back to the same straight column state after each twist.&lt;/p&gt;
&lt;p&gt;The twists aren't entirely random. The next twist is always adjacent to a previous twist.&lt;/p&gt;
&lt;p&gt;This piece was created for a closing sequence in the &lt;a href="news/forbidden-zone/"&gt;Forbidden Zone music video&lt;/a&gt;.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>PAC Wall</title><link href="artwork/pac-wall/" rel="alternate"/><published>2024-05-24T00:00:00-04:00</published><updated>2024-05-24T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-24:artwork/pac-wall/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Square tiles of directional flow, inspired by the design of the wall of the &lt;a href="https://en.wikipedia.org/wiki/Perelman_Performing_Arts_Center"&gt;Performing Arts Center&lt;/a&gt; in New York. The cube-shaped building has large square tiles with diagonal stripe designs.&lt;/p&gt;
&lt;p&gt;Take a moment to stare at a spot on the screen as this piece scrolls. After …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Square tiles of directional flow, inspired by the design of the wall of the &lt;a href="https://en.wikipedia.org/wiki/Perelman_Performing_Arts_Center"&gt;Performing Arts Center&lt;/a&gt; in New York. The cube-shaped building has large square tiles with diagonal stripe designs.&lt;/p&gt;
&lt;p&gt;Take a moment to stare at a spot on the screen as this piece scrolls. After creating PAC Wall, Al Sweigart noticed that viewing the full screen makes the tiles appear to scroll upwards. But when staring at an individual square, the lines seem to twist in place while peripheral vision registers the upward movement of the surrounding tiles. This paradox inspired Sweigart to explore other configurations of the code.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Torn Textile</title><link href="artwork/torn-textile/" rel="alternate"/><published>2024-05-24T00:00:00-04:00</published><updated>2024-05-24T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-24:artwork/torn-textile/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A shredded design reminiscent of a ship's tattered sails.&lt;/p&gt;
&lt;p&gt;Torn Textile came out of Al Sweigart's experiments to create a piece that looked like earthworm tunnels through dirt. The screen begins filled with text characters, while several "earthworms" randomly move left and right across the columns, deleting …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A shredded design reminiscent of a ship's tattered sails.&lt;/p&gt;
&lt;p&gt;Torn Textile came out of Al Sweigart's experiments to create a piece that looked like earthworm tunnels through dirt. The screen begins filled with text characters, while several "earthworms" randomly move left and right across the columns, deleting the text characters of the background. The background text reforms after a while, and the pattern caused by multiple earthworms moving across the columns looked more like shredded cloth than dirt tunnels, so Sweigart changed the name and posted it.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Vertical Struts</title><link href="artwork/vertical-struts/" rel="alternate"/><published>2024-05-24T00:00:00-04:00</published><updated>2024-05-24T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-24:artwork/vertical-struts/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Vertical lines that appear like beams across floors of an under-construction skyscraper.&lt;/p&gt;
&lt;p&gt;The fast speed and screen-spanning horizontal lines in Vertical Struts give the feeling of an elevator quickly falling through an incomplete skyscraper. Al Sweigart wanted a more cardinal version of the diagonal lines in Triangle …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Vertical lines that appear like beams across floors of an under-construction skyscraper.&lt;/p&gt;
&lt;p&gt;The fast speed and screen-spanning horizontal lines in Vertical Struts give the feeling of an elevator quickly falling through an incomplete skyscraper. Al Sweigart wanted a more cardinal version of the diagonal lines in Triangle Hall and found that this simple pattern worked well. The random height of the floors keeps the pattern from becoming too predictable, so the positions of the vertical struts and horizontal floors remain a constant surprise.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Diagonal Sweep</title><link href="artwork/diagonal-sweep/" rel="alternate"/><published>2024-05-23T00:00:00-04:00</published><updated>2024-05-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-23:artwork/diagonal-sweep/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A basic left-to-right or right-to-left sweep transition animation.&lt;/p&gt;
&lt;p&gt;Starting from one end of and moving to the other, the columns are set from an empty space to a transition character, followed by an empty space again. This creates a diagonal sweep animation that could be useful for …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A basic left-to-right or right-to-left sweep transition animation.&lt;/p&gt;
&lt;p&gt;Starting from one end of and moving to the other, the columns are set from an empty space to a transition character, followed by an empty space again. This creates a diagonal sweep animation that could be useful for transitions.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Triangle Hall</title><link href="artwork/triangle-hall/" rel="alternate"/><published>2024-05-23T00:00:00-04:00</published><updated>2024-05-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-23:artwork/triangle-hall/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Diagonal lines spawning from their horizontally moving predecessors, creating a hallway effect of triangular passages. Inspired by the music video of &lt;a href="https://www.youtube.com/watch?v=0J2QdDbelmY"&gt;Seven Nation Army&lt;/a&gt; by the White Stripes.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Inchworm</title><link href="artwork/inchworm/" rel="alternate"/><published>2024-05-06T00:00:00-04:00</published><updated>2024-05-06T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-05-06:artwork/inchworm/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A little inchworm that moves across the screen.&lt;/p&gt;
&lt;p&gt;This is a one-line variant of scroll art, where the \b backspace character is used to erase text on the current line. Snail Trail is another example of this effect. This erasure technically violates one of the constraints of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A little inchworm that moves across the screen.&lt;/p&gt;
&lt;p&gt;This is a one-line variant of scroll art, where the \b backspace character is used to erase text on the current line. Snail Trail is another example of this effect. This erasure technically violates one of the constraints of scroll art, but inchworms are cute.&lt;/p&gt;
&lt;p&gt;In Inchworm, a string of letter O's do a simple inchworm crawling animation until it reaches the right edge, at which point, another inchworm begins on the left edge. The speed and length of the worms are adjustable and randomly set for each worm in this animation.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Thorns</title><link href="artwork/thorns/" rel="alternate"/><published>2024-04-22T00:00:00-04:00</published><updated>2024-04-22T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-04-22:artwork/thorns/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A rapid pattern that looks like thorns or audio waves.&lt;/p&gt;
&lt;p&gt;For Thorns, Al Sweigart wanted a fast-scrolling piece that looked like a frequency-range visualizer for stereos. He originally used complicated sine-wave calculations but got poor results. He then increased the speed and made the lengths randomly selected …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A rapid pattern that looks like thorns or audio waves.&lt;/p&gt;
&lt;p&gt;For Thorns, Al Sweigart wanted a fast-scrolling piece that looked like a frequency-range visualizer for stereos. He originally used complicated sine-wave calculations but got poor results. He then increased the speed and made the lengths randomly selected from a list. This was another case of overthinking; simplicity made for better scroll art.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Hex Portals</title><link href="artwork/hex-portals/" rel="alternate"/><published>2024-04-18T00:00:00-04:00</published><updated>2024-04-18T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-04-18:artwork/hex-portals/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Hexagon-shaped portals against a scratchy, space-like background.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Snail Trail</title><link href="artwork/snail-trail/" rel="alternate"/><published>2024-04-14T00:00:00-04:00</published><updated>2024-04-14T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-04-14:artwork/snail-trail/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Snails gliding across the screen.&lt;/p&gt;
&lt;p&gt;Snails glide across the screen in this one-dimensional, or 1D, scroll art. By "printing" the \b backspace character, the program can erase previously printed text on the current line. It prints the @V snail ASCII art, erases it with two backspaces, and …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Snails gliding across the screen.&lt;/p&gt;
&lt;p&gt;Snails glide across the screen in this one-dimensional, or 1D, scroll art. By "printing" the \b backspace character, the program can erase previously printed text on the current line. It prints the @V snail ASCII art, erases it with two backspaces, and then continues to draw a longer and longer trail.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Orbital Travels</title><link href="artwork/orbital-travels/" rel="alternate"/><published>2024-04-11T00:00:00-04:00</published><updated>2024-04-11T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-04-11:artwork/orbital-travels/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A collection of random points moving in sine waves.&lt;/p&gt;
&lt;p&gt;Several of Al Sweigart's attempts to make scroll art are built from complex ideas and complicated code that produce mediocre results. Orbital Travels was an absurdly simple idea that turned into one of his favorite pieces of scroll …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A collection of random points moving in sine waves.&lt;/p&gt;
&lt;p&gt;Several of Al Sweigart's attempts to make scroll art are built from complex ideas and complicated code that produce mediocre results. Orbital Travels was an absurdly simple idea that turned into one of his favorite pieces of scroll art: showing multiple characters moving back and forth in sine waves at different rates. Using different characters for each wave (one of @ O 0 o * . , v V) gives the final output a nice texture. The results delighted Sweigart and reminded him of an orbiting moon following the Earth. With a fixed Earth, the moon's orbit looks circular. But when the movement of the Earth is followed, the Moon can be seen moving in a helix path. Sweigart therefore named the piece Orbital Travels.&lt;/p&gt;
&lt;p&gt;You can configure the characters used in the sine waves by adjsuting the ALL_CHARS constant.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Connected Pipes</title><link href="artwork/connected-pipes/" rel="alternate"/><published>2024-03-23T00:00:00-04:00</published><updated>2024-03-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-23:artwork/connected-pipes/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Random squiggles that form a sort of connected pipework. There are some isolated sections but no dead ends.&lt;/p&gt;
&lt;p&gt;Al Sweigart wanted to use box-drawing characters to form a random but connected shape, something like the old Pipe Dream game (originally called &lt;a href="https://en.wikipedia.org/wiki/Pipe_Mania"&gt;Pipe Mania&lt;/a&gt; when released in 1989 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Random squiggles that form a sort of connected pipework. There are some isolated sections but no dead ends.&lt;/p&gt;
&lt;p&gt;Al Sweigart wanted to use box-drawing characters to form a random but connected shape, something like the old Pipe Dream game (originally called &lt;a href="https://en.wikipedia.org/wiki/Pipe_Mania"&gt;Pipe Mania&lt;/a&gt; when released in 1989).&lt;/p&gt;
&lt;p&gt;Ensuring that there are no dead ends is a constraint satisfaction problem: Sweigart builds the pipes one row at a time from left to right. For each space in the row, he considers the adjacent spaces to the left and above. Only the current and previously printed rows need to be kept in memory. The space to the right and below the current space always has both possibilities of connection or no connection. When there are connections from the left and from above, the chosen box-drawing character needs to connect to the left and above, but random chance determines whether it also connects to the right and below.&lt;/p&gt;
&lt;p&gt;There are two forms of this piece, configurable by the VERTICAL_STYLE_FACTOR variable. When set to 1.0, the program never sets the space to have a right-connecting pipe. This should mean that there are only straight vertical lines, because how could there be left-right horizontal connections if there's never a right connection?&lt;/p&gt;
&lt;p&gt;Sweigart was surprised by this result. He then realized that when a space has only one dead-end connection from the left or above, it randomly includes connections down and right. He had added this behavior earlier for more variation, and by good fortune it produced the "elongated" vertical effect.&lt;/p&gt;
&lt;p&gt;Sweigart also features the squarish form (where VERTICAL_STYLE_FACTOR is set to 0.0) for comparison. This value can be set anywhere within the 0.0 to 1.0 range to control the effect.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Diamond Sky</title><link href="artwork/diamond-sky/" rel="alternate"/><published>2024-03-23T00:00:00-04:00</published><updated>2024-03-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-23:artwork/diamond-sky/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A star- and diamond-filled sky.&lt;/p&gt;
&lt;p&gt;This piece is based on &lt;a href="https://inventwithpython.com/bigbookpython/project16.html"&gt;Project 16 - Diamonds&lt;/a&gt; from Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython/"&gt;The Big Book of Small Python Projects&lt;/a&gt;, which creates ASCII art diamonds of various sizes. Sweigart made Diamond Sky before &lt;a href="artwork/full-of-squares/"&gt;Full of Squares&lt;/a&gt;, but the two share similar styles.&lt;/p&gt;
&lt;p&gt;This is the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A star- and diamond-filled sky.&lt;/p&gt;
&lt;p&gt;This piece is based on &lt;a href="https://inventwithpython.com/bigbookpython/project16.html"&gt;Project 16 - Diamonds&lt;/a&gt; from Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython/"&gt;The Big Book of Small Python Projects&lt;/a&gt;, which creates ASCII art diamonds of various sizes. Sweigart made Diamond Sky before &lt;a href="artwork/full-of-squares/"&gt;Full of Squares&lt;/a&gt;, but the two share similar styles.&lt;/p&gt;
&lt;p&gt;This is the first piece where the code has a rows array that contains the next few rows to display. If the program randomly generates a diamond that is 12 rows high, the rows array is expanded to fit the next 12 rows. Sweigart calls this form of scroll art a row buffer. It is a bit more advanced than the wallpaper style of a repeating static pattern, and he finds the effect much more interesting to view.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Full of Squares</title><link href="artwork/full-of-squares/" rel="alternate"/><published>2024-03-23T00:00:00-04:00</published><updated>2024-03-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-23:artwork/full-of-squares/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Squares of various sizes.&lt;/p&gt;
&lt;p&gt;The box-drawing characters are used to draw squares of various sizes. Al Sweigart created this shortly after Diamond Sky, and it is similar in theme: the same shape of varying sizes floating upwards. He intends to explore what else is possible in this …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Squares of various sizes.&lt;/p&gt;
&lt;p&gt;The box-drawing characters are used to draw squares of various sizes. Al Sweigart created this shortly after Diamond Sky, and it is similar in theme: the same shape of varying sizes floating upwards. He intends to explore what else is possible in this style.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Proton Stream</title><link href="artwork/proton-stream/" rel="alternate"/><published>2024-03-23T00:00:00-04:00</published><updated>2024-03-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-23:artwork/proton-stream/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Lightning streams energetically jittering, like a Ghostbuster's proton pack.&lt;/p&gt;
&lt;p&gt;This piece features five "streams" randomly move back and forth. However, they're constrained to be within twenty spaces of each other, moving as a loose group. The fast scroll speed gives an impression of a Ghostbuster's proton pack …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Lightning streams energetically jittering, like a Ghostbuster's proton pack.&lt;/p&gt;
&lt;p&gt;This piece features five "streams" randomly move back and forth. However, they're constrained to be within twenty spaces of each other, moving as a loose group. The fast scroll speed gives an impression of a Ghostbuster's proton pack firing.&lt;/p&gt;
&lt;p&gt;The number of streams and distance are configurable with the NUM_STREAMS and MAX_DISTANCE constants in the source code. You can also change how jittery the streams move left and right by adjusting the MOVE_CHANGE constant. The characters for the streams are drawn from the STREAM_CHARS constant while the background is set by the character in EMPTY_CHAR constant.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Shining</title><link href="artwork/shining/" rel="alternate"/><published>2024-03-23T00:00:00-04:00</published><updated>2024-03-23T00:00:00-04:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-23:artwork/shining/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. The hexagon pattern of the carpet in the Overlook Hotel in the 1980 movie, &lt;a href="https://en.wikipedia.org/wiki/The_Shining_(film)"&gt;The Shining&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This piece is based on &lt;a href="https://inventwithpython.com/bigbookpython/project35.html"&gt;Project 35 - Hex Grid&lt;/a&gt; and &lt;a href="https://inventwithpython.com/bigbookpython/project65.html"&gt;Project 65 - Shining Carpet&lt;/a&gt; from Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython"&gt;The Big Book of Small Python Projects&lt;/a&gt;. The "wallpaper" style of scroll art displays a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. The hexagon pattern of the carpet in the Overlook Hotel in the 1980 movie, &lt;a href="https://en.wikipedia.org/wiki/The_Shining_(film)"&gt;The Shining&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This piece is based on &lt;a href="https://inventwithpython.com/bigbookpython/project35.html"&gt;Project 35 - Hex Grid&lt;/a&gt; and &lt;a href="https://inventwithpython.com/bigbookpython/project65.html"&gt;Project 65 - Shining Carpet&lt;/a&gt; from Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython"&gt;The Big Book of Small Python Projects&lt;/a&gt;. The "wallpaper" style of scroll art displays a static, forever-repeating pattern. While the simplicity makes it less exciting than other forms of scroll art, it is approachable and forces creativity in design. The same short program can display any wallpaper pattern; only the wallpaper data needs to change:&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Cube Wall</title><link href="artwork/cube-wall/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/cube-wall/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. A subtle 3D look by adding random shading to the drawn cubes.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Diagonal Maze</title><link href="artwork/diagonal-maze/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/diagonal-maze/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. The classic Commodore 64 pattern.&lt;/p&gt;
&lt;p&gt;"Diagonal Maze" is a simple random distribution of the diagonal line characters. These are different from the / forward slash and \ backslashes because they connect the actual corners of the text cell boundaries. By randomly printing them, they naturally form a maze-like pattern …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. The classic Commodore 64 pattern.&lt;/p&gt;
&lt;p&gt;"Diagonal Maze" is a simple random distribution of the diagonal line characters. These are different from the / forward slash and \ backslashes because they connect the actual corners of the text cell boundaries. By randomly printing them, they naturally form a maze-like pattern. This is not a literal, solveable maze.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Ducklings</title><link href="artwork/ducklings/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/ducklings/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Cute combinatorial explosion of ASCII art ducks.&lt;/p&gt;
&lt;p&gt;"Ducklings" generates duckling ASCII art. The ducklings have different possible directions (left or right), eyes (aloof, happy, or wide), bills (open or closed), wing direction (out, up, or down), and body size (chubby and very chubby) for 24 different styles …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Cute combinatorial explosion of ASCII art ducks.&lt;/p&gt;
&lt;p&gt;"Ducklings" generates duckling ASCII art. The ducklings have different possible directions (left or right), eyes (aloof, happy, or wide), bills (open or closed), wing direction (out, up, or down), and body size (chubby and very chubby) for 24 different styles.&lt;/p&gt;
&lt;p&gt;This program was originally &lt;a href="https://inventwithpython.com/bigbookpython/project22.html"&gt;Project 22&lt;/a&gt; in Sweigart's &lt;a href="https://inventwithpython.com/bigbookpython/"&gt;The Big Book of Small Python Projects&lt;/a&gt;&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Math Function</title><link href="artwork/math-function/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/math-function/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Bitmap patterns based on Cartesian coordinate inputs to a math function.&lt;/p&gt;
&lt;p&gt;"Math Function" is a highly configurable, deterministic piece that paints a bitmap based on the output of a mathematical function given the X and Y coordinates as inputs. Sweigart's blog post, &lt;a href="https://inventwithpython.com/blog/2021/08/02/algorithmic-art-with-the-bitfielddraw-module/"&gt;"Algorithmic Art with the BitFieldDraw …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Bitmap patterns based on Cartesian coordinate inputs to a math function.&lt;/p&gt;
&lt;p&gt;"Math Function" is a highly configurable, deterministic piece that paints a bitmap based on the output of a mathematical function given the X and Y coordinates as inputs. Sweigart's blog post, &lt;a href="https://inventwithpython.com/blog/2021/08/02/algorithmic-art-with-the-bitfielddraw-module/"&gt;"Algorithmic Art with the BitFieldDraw Module"&lt;/a&gt; features the output of several functions. The function featured here is (x ^ y) % 5 . This blog post was based on ideas from &lt;a href="https://threadreaderapp.com/thread/1378106731386040322?refresh=1627428184"&gt;Martin Kleppe's social media posts&lt;/a&gt;, which were covered in a M&lt;a href="https://www.metafilter.com/192164/Patterns"&gt;etafilter post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bit Art Bot by https://freeradical.zone/@suetanvil has a collection of similar images and was also based on the same source.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Matrix Screensaver</title><link href="artwork/matrix-screensaver/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/matrix-screensaver/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Hacker-themed trails of ones and zeros.&lt;/p&gt;
&lt;p&gt;The Matrix is a 1999 hacker movie that had an iconic "digital stream" of green alphanumerics scrolling down the screen like trails of rain down a window. Several screensavers were created to mimic this design. This scroll art follows suit, though …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Hacker-themed trails of ones and zeros.&lt;/p&gt;
&lt;p&gt;The Matrix is a 1999 hacker movie that had an iconic "digital stream" of green alphanumerics scrolling down the screen like trails of rain down a window. Several screensavers were created to mimic this design. This scroll art follows suit, though streaming upwards due to the limitations of scroll art.&lt;/p&gt;
&lt;p&gt;In the fullscreen page for this piece, you can set the background color to black and foreground text color to green to give it the hacker vibes of the original animation.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Sine Message</title><link href="artwork/sine-message/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/sine-message/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Text moving in a sine wave pattern.&lt;/p&gt;
&lt;p&gt;"Sine Message" is a simple text message that moves in a sine wave across the screen. The message, scroll speed, and wave speed are customizeable.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Spike</title><link href="artwork/spike/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/spike/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. A simple spike pattern.&lt;/p&gt;
&lt;p&gt;While "Spike" is a quickly repeating pattern, the exponential movement gives the impression of rythmic growth and retraction.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Starfield</title><link href="artwork/starfield/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/starfield/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. Asterisks in cycles of density.&lt;/p&gt;
&lt;p&gt;"Starfield" creates a simple field of asterisks that cycle in density from completely empty to completely full and back again. The speed, asterisk character, and density change rate can be customized.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Striped Triangles</title><link href="artwork/striped-triangles/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/striped-triangles/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Striped triangles in cyclic densities.&lt;/p&gt;
&lt;p&gt;"Striped Triangles" follows the increasing/decreasing density cycles of Starfield and a triangular grid structure like &lt;a href="artwork/tri-grid-scaffolding/"&gt;Tri Grid Scaffolding&lt;/a&gt;. However, the triangles are one of four striped designs using the back and forward slashes. Notice how the triangles taken on a woven …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Striped triangles in cyclic densities.&lt;/p&gt;
&lt;p&gt;"Striped Triangles" follows the increasing/decreasing density cycles of Starfield and a triangular grid structure like &lt;a href="artwork/tri-grid-scaffolding/"&gt;Tri Grid Scaffolding&lt;/a&gt;. However, the triangles are one of four striped designs using the back and forward slashes. Notice how the triangles taken on a woven, wood-knot look at certain densities.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Toggler</title><link href="artwork/toggler/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/toggler/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Triangular patterns toggled between two characters.&lt;/p&gt;
&lt;p&gt;Each column prints one of two characters. Randomly, a "toggler" appears and switches which character the column prints and then moves to the left or right. This creates triangle-shaped regions of toggled values. As more togglers spawn and overlap, the implied …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Triangular patterns toggled between two characters.&lt;/p&gt;
&lt;p&gt;Each column prints one of two characters. Randomly, a "toggler" appears and switches which character the column prints and then moves to the left or right. This creates triangle-shaped regions of toggled values. As more togglers spawn and overlap, the implied shapes become more chaotic and inscrutable.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Toggler 2</title><link href="artwork/toggler-2/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/toggler-2/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. Paired togglers travel in opposite directions to form expanding triangular patterns.&lt;/p&gt;
&lt;p&gt;Toggler 2 begins each shape by placing two togglers in the same column. One travels left while the other travels right, switching columns between two characters as they move. Changing the distance traveled on each step …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. Paired togglers travel in opposite directions to form expanding triangular patterns.&lt;/p&gt;
&lt;p&gt;Toggler 2 begins each shape by placing two togglers in the same column. One travels left while the other travels right, switching columns between two characters as they move. Changing the distance traveled on each step alters the angles and texture of the overlapping triangles.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Tri Grid Scaffolding</title><link href="artwork/tri-grid-scaffolding/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/tri-grid-scaffolding/</id><summary type="html">&lt;p&gt;Al Sweigart, 2024. A triangular grid in cyclic densities.&lt;/p&gt;
&lt;p&gt;Tri Grid Scaffolding presents a grid of triangles that is slowly filled in and then dismantled each cycle. The full pattern looks like this:&lt;/p&gt;
&lt;p&gt;This program removes one side of the triangles at random with increasing and decreasing probability, creating a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al Sweigart, 2024. A triangular grid in cyclic densities.&lt;/p&gt;
&lt;p&gt;Tri Grid Scaffolding presents a grid of triangles that is slowly filled in and then dismantled each cycle. The full pattern looks like this:&lt;/p&gt;
&lt;p&gt;This program removes one side of the triangles at random with increasing and decreasing probability, creating a pattern that looks like the following:&lt;/p&gt;
&lt;p&gt;Notice that two slashes or underscores are removed together, so there is never a "half-filled" side of a triangle.&lt;/p&gt;</content><category term="Artwork"/></entry><entry><title>Zig-zag</title><link href="artwork/zig-zag/" rel="alternate"/><published>2024-03-04T00:00:00-05:00</published><updated>2024-03-04T00:00:00-05:00</updated><author><name>Al Sweigart</name></author><id>tag:None,2024-03-04:artwork/zig-zag/</id><content type="html">&lt;p&gt;Al Sweigart, 2024. A simple back and forth animation.&lt;/p&gt;
&lt;p&gt;"Zig-zag" is just about the simplest scroll art you can have, and was one of the first ones Al Sweigart wrote. It was originally written for his &lt;a href="https://inventwithpython.com/bigbookpython"&gt;The Big Book of Small Python Projects&lt;/a&gt; but was later cut.&lt;/p&gt;</content><category term="Artwork"/></entry></feed>