animated ascii art for web pages

[github]

208 animated ascii pieces for web pages: 15 full-colour scenes like the one above, loaders, charts, type, 27 language logos, 14 company logos and 23 Linux distros in colour or one ink, and 3D shapes, physics and creatures. Each is a small, typed TypeScript module with no dependencies, for React, Next.js, Astro, or a plain HTML page, and free to use and change under the MIT license.

Or play any of them in your terminal: npx ascii.rest donut

use one

html

<script type="module" src="https://ascii.rest/ascii.js"></script>

<ascii-art piece="donut"></ascii-art>

No install and no build step. ascii.js defines the <ascii-art> tag, loads the piece from ascii.rest, plays it while it is on screen, and holds the first frame for anyone who prefers reduced motion.

react

// npm install ascii.rest
import { Ascii } from "ascii.rest/react";
import { donut } from "ascii.rest/pieces";

<Ascii piece={donut} />

A client component, so it works in the Next.js app router as it is. Pass the name instead, piece="donut", to fetch the piece only when it mounts.

astro

---
// npm install ascii.rest
import Ascii from "ascii.rest/astro";
---

<Ascii piece="donut" />

Renders the first frame on the server, so the page is whole before any script runs, then plays the piece once it loads.

typescript

// npm install ascii.rest
import { mount } from "ascii.rest";
import { donut } from "ascii.rest/pieces";

const el = document.querySelector<HTMLPreElement>("pre")!;
const stop = mount(el, donut);

mount plays a piece in a <pre>, or on a <canvas> for the coloured ones, and returns a function that stops it. Every piece, option and frame is typed.

terminal

npx ascii.rest donut

Plays it in your terminal until you press a key. Add --light for a light terminal. Add --seconds 5 to stop it on its own; npx ascii.rest list shows every piece. In a CLI of your own, play("donut", { seconds: 2 }) from ascii.rest/terminal shows it as a splash screen.

scenes

15
alpine dawn snow peaks catching first light above a still, misty mountain lake
aurora fjord aurora curtains rippling over a still fjord, a cabin lit on the shore
deep reef light shafts, swaying kelp and a turning school of fish over a reef
desert night the milky way over a lone acacia on moonless dunes, meteors falling
earthrise the earth rising over a cratered lunar horizon in long low sunlight
kyoto dusk a pagoda at dusk behind a cherry tree lit by a stone lantern
lantern lake new sky lanterns rising over a still mountain lake, one let go from a boat
marine drive mumbai's queen's necklace at night, lamps curving round the bay
misty forest pine ridges fading into morning fog, sunbeams slanting through
night coast a lighthouse turning its beam under moonlit clouds over a dark sea
ocean sunset the sun sets past a pine headland, lit cloud, glitter on rolling sea
storm plains an anvil thunderhead at dusk flickering over a wheat field
taj dawn the taj mahal at sunrise, mirrored in its pool through morning haze
tokyo rain new a tokyo side street in the rain, neon signs shining on the wet road
varanasi ghats dusk aarti on the ganga, lamps on the steps and diyas on the water

sponsors

ascii.rest is free and MIT licensed. Sponsor it and your logo goes here.

[sponsor on github] Buy Me a CoffeePayPal

ui

12
boot log a self test counts memory, then the boot log scrolls by
box frames twelve frame styles to copy, each one labelled
calendar this month like cal, today bracketed, time ticking below
digital clock the local time in seven-segment digits, colon blinking
dividers rules and ornaments for between sections, plain to fancy
file tree a tree listing opened folder by folder, then closed again
form controls a terminal style form being filled in, field by field
not found a block-letter 404 with a small ghost drifting beneath it
progress bar five bar styles filling at uneven paces, percent at right
skeleton a loading card in shade blocks with a shimmer passing over
spinners twelve loading spinners side by side, each with its name
terminal a shell session: typed commands, output, scrolling, clear

data

10
bar chart bars easing between three datasets, values riding on top
candlesticks hollow up candles, solid down ones, the last one forming live
cpu meters htop-style core, memory and swap meters over a process list
equalizer spectrum bars bouncing to a beat, peak caps falling slowly
gauge semicircle dial, the needle overshoots each new reading
heartbeat an ecg trace sweeping over its last pass, with a bpm readout
heatmap contribution calendar, a day at a time, weeks scrolling left
radar rotating sweep with afterglow, contacts fade between passes
sparkline three live block sparklines scrolling left, values at right
uptime bar 60-day uptime bars for three services, a new day slides in

type

9
big text a block-letter banner with a line shadow and a passing glint
dissolve words that crumble to dust and condense into the next
glitch a pixel word that tears into sliding slices in short bursts
marquee a scrolling led sign framed by chasing bulbs
morse a lamp keying morse, the marks on a tape, letters decoded
scramble phrases decoding left to right out of flickering glyphs
split-flap a departures board whose flaps riffle to each new line
typewriter phrases typed and deleted in turn behind a blinking cursor
wave text a swell running through a line of text, left to right

logos

27 [request a logo]
c a c on a blue hexagon, glinting now and then
c# c# on a purple hexagon, glinting now and then
c++ c++ on a blue hexagon, glinting now and then
clojure a lambda in a green and blue circle, glinting now and then
css the blue shield with a 3, glinting now and then
dart the dart, in blue and teal, glinting now and then
elixir the purple drop, glinting now and then
erlang the red e in brackets, glinting now and then
go go with its speed lines, glinting now and then
haskell an angle, a lambda and an equals sign, glinting now and then
html the orange shield with a 5, glinting now and then
java the steaming cup, glinting now and then
javascript js on a yellow square, glinting now and then
julia three dots, green, red and purple, glinting now and then
kotlin the k, in violet and pink, glinting now and then
lua a planet and its moon, glinting now and then
ocaml the camel on an orange square, glinting now and then
perl the onion, glinting now and then
php php in its purple oval, glinting now and then
python two snakes, blue and yellow, glinting now and then
r a blue r over a grey ring, glinting now and then
ruby the cut red gem, glinting now and then
rust the r in its cog, in ferris orange, glinting now and then
scala the red spiral stair, glinting now and then
swift the swift on an orange square, glinting now and then
typescript ts on a blue square, glinting now and then
zig the slanted z in brackets, glinting now and then
[request a logo]
missing one? ask for a company, language or distro you'd like drawn like these

companies

14 [request a logo]
apple new the apple with a bite out of it, glinting now and then
cloudflare new the orange cloud, glinting now and then
coderabbit new the rabbit in its orange disc, glinting now and then
command code new the command key in a rounded square, glinting now and then
databuddy new the databuddy bunny, glinting now and then
greptile new the g folded into a cube, in green, glinting now and then
helium new the six-point asterisk, in blue, glinting now and then
mintlify new the leaf within a leaf, in mint green, glinting now and then
orchid new the five-petal flower, glinting now and then
planetscale new the disc cut by two strokes, glinting now and then
playstation new the p standing on a flat s, in blue, glinting now and then
polar new the half star, bar and arc, glinting now and then
supabase new the green bolt, glinting now and then
vercel new the vercel triangle, glinting now and then
[request a logo]
missing one? ask for a company, language or distro you'd like drawn like these

distros

23 [request a logo]
almalinux five coloured figures in a ring, scanned now and then
alpine linux the mountain in a hexagon, scanned now and then
arch linux the blue arch, scanned now and then
centos four coloured squares in a star, scanned now and then
debian the red swirl, scanned now and then
deepin the swirl in a blue ring, scanned now and then
elementary os the e in a ring, scanned now and then
endeavouros the violet sail, scanned now and then
fedora the f in its blue bubble, scanned now and then
gentoo the lavender g, scanned now and then
kali linux the blue dragon, scanned now and then
linux mint lm in a green circle, scanned now and then
manjaro three green blocks, scanned now and then
nixos the snowflake of lambdas, scanned now and then
omarchy new the square o of brackets, in green, scanned now and then
opensuse the green chameleon, scanned now and then
pop!_os the p! in a teal circle, scanned now and then
red hat the man in the red hat, scanned now and then
rocky linux the mountain in a green circle, scanned now and then
tux tux the penguin, scanned now and then
ubuntu the circle of friends, in orange, scanned now and then
void linux the green ring, cut through, scanned now and then
zorin os the z in blue stripes, scanned now and then
[request a logo]
missing one? ask for a company, language or distro you'd like drawn like these

shapes

12
cube a stippled hidden-line cube turning a quarter at a time
dna helix a double helix with base pairs, turning about its axis
donut a lit torus turning on two axes, after donut.c
glxgears three meshing gears turning, after glxgears
gyroscope gimbals swing round a spinning rotor whose axle holds still
heart a glossy 3d heart swaying and beating lub-dub
icosahedron a wireframe icosahedron turning, its hidden edges dotted
mobius strip a mobius strip turning and nodding, lit from above
spring a weight bouncing on a coil spring, its coils bunching
tesseract a 4d hypercube turning, its cubes passing through each other
torus knot a trefoil knot drawn as a lit tube, turning slowly
twisted ring a square ring twisted three quarters, so it has one face

space

11
black hole a black hole, its lensed disk turning, one side brighter
earth a lit globe turning, continents from a five-degree map
eclipse the moon slides over the sun; diamond ring, then corona
galaxy a tilted spiral galaxy turning, its inner stars the fastest
moon phases the moon waxing and waning, its maria darker in the light
planet a banded ringed planet turning, with shadows both ways
rocket a rocket lifting off its pad at night, then landing back
saptarishi the big dipper at true positions in a twinkling sky
solar system four planets on dotted orbits, periods by kepler's third law
starfield stars rush out from the centre and streak at the edges
three-body three equal masses sharing one figure-eight orbit

physics

14
bouncing balls rubber balls bouncing lower each time, squashing on landing
chladni plate sand travelling to the nodal lines of a ringing plate
double pendulum a chaotic double pendulum; its tip leaves a fading trail
falling sand sand pouring into a heap, then draining through the shelf
flag a striped flag rippling on a pole, folds catching the light
fountain arcs of water from a nozzle falling as drops into a basin
harmonograph a pen on two decaying pendulums winding a figure inward
lorenz attractor one lorenz trajectory looping both wings, older loops fading
newton's cradle five steel balls on strings passing one knock back and forth
pendulum wave a row of pendulums drifting in and out of step, from above
plucked string a plucked string, slowed down, its harmonics fading
pond ripples raindrops opening rings that cross and fade on a pond
smoke incense smoke rising straight, then curling and thinning
wave interference two sources in a ripple tank, still lines fanning out

nature

16
aurora an aurora curtain rippling over a treeline under stars
bonsai a potted tree that sheds its leaves and leafs out again
campfire a log fire flickering, sparks rising; denser ink is hotter
cherry blossom a flowering cherry branch shedding petals on the wind
contour map an island in contour lines, its hills slowly reshaping
fern barnsley's fern filling in point by point, then swaying
fireflies fireflies over night grass, a flash spreading through them
fractal tree a recursive branching tree swaying in the wind
landscape a range and a lake under the sun or moon of the local hour
lightning a forked bolt striking out of a storm cloud in the rain
rain slanting rain in three depths, crowns and puddle rings
ruled mountains ruled lines with a range rising from them, drifting forward
sea swell a long swell lifting a small sailboat as it rolls under
snowfall snow swaying down, building drifts on the ground and a fence
sunrise the sun lifting off a sea horizon, its path glittering
wind gusts streaming along bending lines, curling at the head

creatures

10
aquarium fish swimming and turning in a tank, bubbles and weed
butterfly a butterfly flapping and gliding along a wandering path
cat a tabby asleep on its paws, breathing slowly
fox a fox asleep on its tail, breathing, peeking now and then
jellyfish a jellyfish pulsing upward, its tentacles trailing late
owl an owl on a branch, blinking slowly and turning its head
snake a snake slithering along an s-curve, flicking its tongue
spider a spider lowering itself on silk, then climbing back up
starlings a murmuration wheeling about, split by a passing falcon
whale a whale blows, arches its back and dives, fluke last

objects

14
analog clock a round clock face showing the local time, seconds ticking
candle a flickering candle burning down in its holder, then renewed
coffee steam curling up from a cup of coffee on its saucer
ferris wheel a wheel turning on its a-frame, cabins hanging upright
hawa mahal jaipur's palace of winds at night, lamps behind the jali
hourglass sand running through the neck, then turned over
kite a diamond kite riding the wind, its string sagging in lulls
lava lamp wax blobs rising, merging and sinking in a lit glass
lighthouse a beam sweeping over night sea from a lighthouse on rocks
skyline a city at night, windows going on and off, a blinking mast
sundial jaipur's samrat yantra, its shadow set by your local time
train a steam train crossing on its track, smoke puffing behind
vinyl a record turning under the tonearm, seen from above
windmill four lattice sails turning on a dutch mill, clouds passing

generative

13
epicycles a chain of turning circles whose tip traces a star
flow field particle trails gathering into winding, merging streams
glider gun gosper's gun firing a glider every 30 generations
hilbert curve a closed loop of two hilbert curves, with two lit runners
julia set a julia set changing shape as its constant c goes round
langton's ant order, then chaos, then the ant builds its highway
mandelbrot a slow zoom into seahorse valley and back out again
maze a maze carved by backtracking, then solved, then remade
plasma soft interference blobs drifting and pulsing
reaction diffusion gray-scott spots and stripes dying back and growing out
rule 30 one cell grows a row at a time under rules 30, 90 and 110
sierpinski the chaos game filling a sierpinski triangle point by point
voronoi cells of ground nearest each drifting seed

effects

8
doom fire the psx fire spread, tongues climbing off a white-hot bed
fireworks shells climb and burst as peonies, rings, willows and palms
matrix rain streams of glyphs falling, heavy at the head, thin behind
rotozoomer a brick wall texture turning and zooming about the centre
sparks an angle grinder throwing sparks that arc, skip and cool
synthwave a grid rolling toward a striped sun behind a mountain ridge
tunnel flying down a tiled tube that bends and twists
tv static snow on an old set that tunes into a test card and loses it