Open source

Terminal scenes

Zacess Scenes draws calm animated scenes in your terminal in the colours of your Zacess theme. It also watches your Rust build: a calm scene while it passes, a storm while it fails, with short sounds of our own. 39 scenes and 8 sound sets, version 0.5.1.

InstallZacess Scenes on GitHubTerminal games

See it move

A few scenes recorded at 80 by 24 in Zacess Deep Contrast Dark. The animation starts paused when your device asks for reduced motion.

koi-pond (pass scene)
The koi-pond scene: A garden pond from above, with koi gliding on slow curves under lily pads, drifting flecks and a slow ripple now and then

Watch a build

zacess-scenes watch runs bacon in a Rust project and shows the state of the build as a scene. Every state is written on screen as well as shown, so colour or sound is never the only signal.

Passing
Watch mode passing: the waves scene with a large ALL GOOD banner, a caption and a status bar reading passing with no warnings

A calm scene, ALL GOOD, a short caption and any warnings.

Failing
Watch mode failing: a storm with a large BUILD FAILED banner, two errors and a warning with their file locations and a status bar reading failing

A fail scene, BUILD FAILED and the first errors with their locations.

  • Recovered

    When a failing build is fixed, the pass scene opens out from the middle over the fail scene and the status bar says recovered.

  • Keys

    n next scene, b the one before, m next sound set, + and - volume, 1 to 4 switch the job, r rerun, p pause and q quit.

  • Notifications

    With --notify a desktop notification says when a build fails or is fixed, which screen readers announce.

The original scenes

Ten scenes that run on their own and also show while a build passes. 10 scenes.

  • sea
    The sea scene: Fish of several sizes, bubbles, seaweed, a boat on the surface and, now and then, a whale crossing the deep water

    Fish of several sizes, bubbles, seaweed, a boat on the surface and, now and then, a whale crossing the deep water

    Reduced motion: Everything swims at half speed and fewer bubbles rise

  • rain
    The rain scene: Drops at two depths, ripples where they land and a distant bolt of lightning every few seconds at most

    Drops at two depths, ripples where they land and a distant bolt of lightning every few seconds at most

    Reduced motion: No lightning at all, slower rain

  • snow
    The snow scene: Flakes at two depths drifting down and settling into a bank along the bottom

    Flakes at two depths drifting down and settling into a bank along the bottom

    Reduced motion: Slower snow

  • starfield
    The starfield scene: Stars that brighten and fade slowly, a crescent moon and, now and then, a slow shooting star

    Stars that brighten and fade slowly, a crescent moon and, now and then, a slow shooting star

    Reduced motion: Stars take twice as long to change, shooting stars are rarer and slower

  • code-rain
    The code-rain scene: Columns of characters falling in the theme's syntax colours, each with a bright head

    Columns of characters falling in the theme's syntax colours, each with a bright head

    Reduced motion: Columns fall at most three rows a second and their characters are never swapped

  • fireflies
    The fireflies scene: A dark meadow with lights that wander and pulse slowly

    A dark meadow with lights that wander and pulse slowly

    Reduced motion: Slower, longer pulses and slower wandering

  • aurora
    The aurora scene: Slow waves of colour across the top of a starry sky over a mountain ridge

    Slow waves of colour across the top of a starry sky over a mountain ridge

    Reduced motion: The waves move at half speed

  • campfire
    The campfire scene: Flames whose rows take a new shape one at a time, each at most once every 0.6 seconds, embers that rise and a steady glow on the ground

    Flames whose rows take a new shape one at a time, each at most once every 0.6 seconds, embers that rise and a steady glow on the ground

    Reduced motion: Each row changes at most once every 1.5 seconds, fewer and slower embers

  • waves
    The waves scene: A calm sea to the horizon under a sun, with gulls crossing the sky

    A calm sea to the horizon under a sun, with gulls crossing the sky

    Reduced motion: Slower swell and slower wing beats

  • zacess
    The zacess scene: The Zacess mark drifting slowly and bouncing gently off the edges

    The Zacess mark drifting slowly and bouncing gently off the edges

    Reduced motion: It drifts at half speed

Pass scenes

Calm scenes for a passing build: nature, the city, space, water, the seasons, cosy rooms and two abstract pieces. 16 scenes.

  • koi-pond
    The koi-pond scene: A garden pond from above, with koi gliding on slow curves under lily pads, drifting flecks and a slow ripple now and then

    A garden pond from above, with koi gliding on slow curves under lily pads, drifting flecks and a slow ripple now and then

    Reduced motion: Koi swim at half speed with still tails, fewer and slower ripples

  • harbour
    The harbour scene: A harbour town at night, with lamps on the quay, their long shimmering reflections, moored boats swaying at their masts, a lighthouse and a passing ferry

    A harbour town at night, with lamps on the quay, their long shimmering reflections, moored boats swaying at their masts, a lighthouse and a passing ferry

    Reduced motion: Masts stay still, the shimmer changes half as often, the ferry is slower

  • lanterns
    The lanterns scene: Paper lanterns rising slowly from a dark lake at three depths, each with a reflection that slides down the water as it climbs

    Paper lanterns rising slowly from a dark lake at three depths, each with a reflection that slides down the water as it climbs

    Reduced motion: Lanterns rise, sway and drift at half speed

  • balloons
    The balloons scene: Hot air balloons in three sizes lifting from behind three ridges of rolling hills under drifting clouds

    Hot air balloons in three sizes lifting from behind three ridges of rolling hills under drifting clouds

    Reduced motion: Balloons rise and drift at half speed

  • countryside
    The countryside scene: A steam train crossing open country, with hills, hedgerows, trees, the track and a fence sliding past at their own speeds

    A steam train crossing open country, with hills, hedgerows, trees, the track and a fence sliding past at their own speeds

    Reduced motion: Every layer slides at half speed and smoke puffs half as often

  • winter-cabin
    The winter-cabin scene: A log cabin in the snow at night, with a lit window, chimney smoke, pines and gently falling snow

    A log cabin in the snow at night, with a lit window, chimney smoke, pines and gently falling snow

    Reduced motion: Snow and smoke move at half speed

  • autumn
    The autumn scene: A tree in autumn colour dropping leaves that turn as they drift down and gather in a pile, with geese crossing now and then

    A tree in autumn colour dropping leaves that turn as they drift down and gather in a pile, with geese crossing now and then

    Reduced motion: Leaves fall at half the rate without turning

  • blossom
    The blossom scene: A flowering branch letting petals go on a breeze, down to a stream that carries them away, with a bird on the branch

    A flowering branch letting petals go on a breeze, down to a stream that carries them away, with a bird on the branch

    Reduced motion: Petals fall and float at half speed without turning, the bird looks about half as often

  • city-night
    The city-night scene: A night skyline where windows light and darken one at a time, a moon, a river and a train that crosses a bridge now and then

    A night skyline where windows light and darken one at a time, a moon, a river and a train that crosses a bridge now and then

    Reduced motion: Windows change half as often and the train is slower and rarer

  • orbit
    The orbit scene: A banded, shaded planet circled by a ring that passes behind it and in front of it, with a moon on a slow 40 second orbit

    A banded, shaded planet circled by a ring that passes behind it and in front of it, with a moon on a slow 40 second orbit

    Reduced motion: The moon takes 80 seconds to go round

  • constellations
    The constellations scene: Stars joined slowly into named figures of our own, one group at a time, held and then faded

    Stars joined slowly into named figures of our own, one group at a time, held and then faded

    Reduced motion: Lines are drawn at half speed and fade more slowly

  • tea
    The tea scene: A mug of tea with curling steam, books, a plant and a lamp, with rain or snow at the window

    A mug of tea with curling steam, books, a plant and a lamp, with rain or snow at the window

    Reduced motion: Fewer, slower puffs of steam and slower weather

  • cat-nap
    The cat-nap scene: A cat asleep on a cushion, breathing slowly, with drifting z's, wool on the rug and a night window

    A cat asleep on a cushion, breathing slowly, with drifting z's, wool on the rug and a night window

    Reduced motion: Breaths, the tail and the z's take twice as long

  • garden
    The garden scene: Seeds that sprout, grow and bloom over a season of about two minutes, with butterflies, before the bed starts again

    Seeds that sprout, grow and bloom over a season of about two minutes, with butterflies, before the bed starts again

    Reduced motion: The season takes twice as long and wings beat half as often

  • tiles
    The tiles scene: A grid of small pages with the Zacess fold, one tile changing colour at a time

    A grid of small pages with the Zacess fold, one tile changing colour at a time

    Reduced motion: Tiles change half as often

  • ribbons
    The ribbons scene: Ribbons of contour lines flowing slowly across a faint grid of dots

    Ribbons of contour lines flowing slowly across a faint grid of dots

    Reduced motion: The ribbons flow at half speed

Fail scenes

Slow, serious scenes that read as something gone wrong without ever flashing, shaking or spinning. 13 scenes.

  • storm
    The storm scene: Twice the rain of rain, slanting in a strong wind under two rows of cloud, with a bolt of lightning every 5 to 9 seconds at most and never in the first five

    Twice the rain of rain, slanting in a strong wind under two rows of cloud, with a bolt of lightning every 5 to 9 seconds at most and never in the first five

    Reduced motion: No lightning at all, slower rain

  • flood
    The flood scene: A street where the water rises slowly past the doors and holds with a gentle swell, debris drifting along the surface and a warning sign going under

    A street where the water rises slowly past the doors and holds with a gentle swell, debris drifting along the surface and a warning sign going under

    Reduced motion: The water rises, swells and drifts at half speed and the drizzle is halved

  • listing-ship
    The listing-ship scene: A cargo ship on a grey sea that settles by the bow over a minute as its waterline creeps up past the portholes, then rolls gently while a lifebuoy drifts away

    A cargo ship on a grey sea that settles by the bow over a minute as its waterline creeps up past the portholes, then rolls gently while a lifebuoy drifts away

    Reduced motion: It lists, rolls and drifts at half speed

  • corrosion
    The corrosion scene: Riveted steel plates where rust creeps out from the rivets cell by cell to half the wall, darkening as it ages, with slow drips

    Riveted steel plates where rust creeps out from the rivets cell by cell to half the wall, darkening as it ages, with slow drips

    Reduced motion: Rust spreads and drips at half speed and each stage takes twice as long

  • tangle
    The tangle scene: Cables hanging from a patch panel that slowly wander, cross and knot into a swaying snarl with a warning tag

    Cables hanging from a patch panel that slowly wander, cross and knot into a swaying snarl with a warning tag

    Reduced motion: The cables tangle and sway at half speed

  • wilt
    The wilt scene: Potted plants on a sunny sill whose stems droop over, leaves dry and fall onto the sill and soil cracks

    Potted plants on a sunny sill whose stems droop over, leaves dry and fall onto the sill and soil cracks

    Reduced motion: The plants wilt, sway and drop leaves at half speed

  • fog
    The fog scene: A road with signs, lamps and pines where a fog bank rolls in and the signs fade from view, glimpsed through gaps

    A road with signs, lamps and pines where a fog bank rolls in and the signs fade from view, glimpsed through gaps

    Reduced motion: The fog rolls in and drifts at half speed

  • broken-bridge
    The broken-bridge scene: A bridge over a flowing river with its middle span gone, girders hanging, the fallen span in the water, a barrier, a warning sign and a waiting car

    A bridge over a flowing river with its middle span gone, girders hanging, the fallen span in the water, a barrier, a warning sign and a waiting car

    Reduced motion: The river and clouds move at half speed and fragments fall half as often

  • leak
    The leak scene: A cracked pipe dripping into a bucket that fills over a minute and then overflows into a puddle that spreads and holds, with a sinking pressure gauge and a wet floor sign

    A cracked pipe dripping into a bucket that fills over a minute and then overflows into a puddle that spreads and holds, with a sinking pressure gauge and a wet floor sign

    Reduced motion: Drips come half as often and fall at half speed

  • blackout
    The blackout scene: A night skyline whose lit windows go dark one at a time beside a snapped power line, leaving a few candles and windows on their own power

    A night skyline whose lit windows go dark one at a time beside a snapped power line, leaving a few candles and windows on their own power

    Reduced motion: The windows go dark at half the rate and the clouds drift at half speed

  • traffic-jam
    The traffic-jam scene: Cars queued bumper to bumper before a stop line, cones and a signal stuck on red, with exhaust puffs drifting up

    Cars queued bumper to bumper before a stop line, cones and a signal stuck on red, with exhaust puffs drifting up

    Reduced motion: Cars roll in at half speed and puffs come half as often

  • erosion
    The erosion scene: A cliff edge crumbling into the sea, stones tumbling and splashing and a fence left hanging over the drop until the face reaches harder rock

    A cliff edge crumbling into the sea, stones tumbling and splashing and a fence left hanging over the drop until the face reaches harder rock

    Reduced motion: Pieces break away half as often and fall at half speed

  • drought
    The drought scene: Cracked earth spreading edge by edge under a heavy sun, a dry riverbed whose last puddle shrinks away, a withered tree and drifting dust

    Cracked earth spreading edge by edge under a heavy sun, a dry riverbed whose last puddle shrinks away, a withered tree and drifting dust

    Reduced motion: The cracks spread and the puddle dries at half the rate

Sound sets

Every set plays the same short phrase for each event, so the meaning carries over when the set changes: a rising triad for a pass, a falling fourth for a failure, the triad an octave up for a fix and a rising minor third for new warnings. The tones are made by the program as it runs and levelled so no set is louder than another. --no-sound turns them off.

SetSounds like
bellsSoft bells with a little shimmer, the original tones
marimbaWarm wooden bars, short and round
kalimbaPlucked metal tines with a gentle ring
padA soft synth pad that swells in and fades out
chipGentle 8-bit square waves, rounded so they never buzz
glassSlow glassy tones like a wet finger on a rim
pianoA soft grand piano, felt hammers and a warm low ring
rainWater droplets over a quiet bed of rain

Make it yours

  • A settings file

    zacess-scenes config init writes scenes.toml with every option explained: your pass and fail scenes, rotation, motion level, sound set, volume, quiet hours and notifications.

    [scenes]
    theme = "deep-contrast-dark"
    pass = ["koi-pond", "lanterns", "tea"]
    fail = ["flood", "fog"]
    rotation = "shuffle"
    motion = "calm"
    
    [sound]
    set = "marimba"
    volume = 40
    quiet_hours = "22:00-07:00"
    
    [notifications]
    enabled = true
  • Your own scenes in Lua

    zacess-scenes scene new <name> writes a starter scene. Scenes draw with theme roles rather than colours, so they stay readable in every theme. They run in a sandbox with no file or network access.

    return {
      name = "drift",
      kind = "pass",
      summary = "A small wave drifting across the screen",
      captions = { "Calm water, clean build." },
      frame = function(ctx)
        local x = math.floor((ctx.time * 4 * ctx.speed) % ctx.width)
        put(x, math.floor(ctx.height / 2), "~~~", "accent")
      end,
    }

    The Lua scene reference

  • Snapshots

    zacess-scenes snapshot <scene> renders a still as an SVG, the way every picture on this page was made. zacess-scenes list shows every scene and sound set.

Install

  1. With Cargo

    From the release tag on GitHub. Needs Rust 1.85 or later and a C compiler, since Lua is built in.

    cargo install --locked --git https://github.com/zacesshq/scenes --tag v0.5.1 zacess-scenes
  2. Or a release build

    Builds for Apple silicon and Intel Macs, Linux on x86-64 and ARM64 and Windows are on the latest release, each with a checksum.

  3. For watch mode, bacon

    cargo install --locked bacon

    Then run zacess-scenes watch in a Rust project.

No scene flashes more than three times a second, shakes or spins fast, at any motion level and in your own Lua scenes too. Every colour keeps the Zacess contrast floors. The full statement is in the Zacess Scenes accessibility statement.

Original games in the same themes: Zacess Games