An aurora that
actually flows.
Aurora Glass paints a live fluid simulation across the menu bar of your Mac. Not a looping video or a crossfading gradient — an incompressible fluid solve, recomputed every single frame on the GPU.
Free, signed and notarized. macOS 26 Tahoe or later.
This is the default: it lights the menu bar and spills a little onto the desktop. Move your pointer across it.
It lives in the menu bar. No window, no Dock icon, and it never takes focus or swallows a click — so the top of your screen stays exactly as usable as it was, and quietly becomes the nicest part of your desk.
This is a recording of it running
The animation at the top of this page is a web approximation. This is the real app, captured on a MacBook Pro — the menu bar, the notch masked out, and your own menus and status icons sitting crisply on top of it.
The simulation is the point
Ambient-light apps usually animate a gradient and hope you don't look closely. Aurora Glass runs Jos Stam's stable fluids method on a velocity grid sized to your display, as seven Metal compute kernels. The order matters, so here it is in order.
-
Advection
Every cell traces backwards along the flow and samples where its fluid came from a moment ago. Semi-Lagrangian, so it stays stable no matter how large the timestep or how fast the field is moving.
-
Curl-noise forcing
The wind comes from the curl of a noise field, which is divergence-free by construction. That means turbulence can be injected without inventing fluid out of nowhere or draining it away.
-
Vorticity confinement
A grid quietly smears out small eddies. This step measures the vorticity it's losing and feeds that energy back into the swirl, which is why the filaments stay sharp instead of dissolving into haze.
-
Pressure projection
A Jacobi solve for pressure, then subtract its gradient. This is the step that makes the field incompressible — and the reason the aurora drifts and folds instead of piling up at one end of the bar.
The colour you see is a second pass that reads the velocity and density fields and ramps them through the palette. The CPU spends its time asleep.
Tune it, or pick a look and forget it
Nine palettes ship with the app. Pick one here and the aurora at the top of this page changes with it.
Showing Classic Aurora
Seven whole-look presets
Northern Lights, Geomagnetic Storm, Glacier Drift, Deep Nebula, Flurry, Whisper, and Rave. One click sets speed, scale, bloom, vorticity and palette together, so you don't have to understand a solver to get something you like.
Five pointer modes
Leave it inert, have a soft light follow the pointer, push the fluid around, spin up a vortex, or run Calm — which smooths the flow to stillness wherever your pointer goes.
It knows about the notch
On a MacBook Pro the camera housing can be masked out cleanly, traced with light so the aurora wraps it, or simply ignored. The strip geometry is read from the display, not guessed.
Four places to put it
Over the menu bar, behind the menu bar, behind every window, or across the whole screen as a living wallpaper. The app also links straight to the System Settings panes that control menu bar transparency.
Real HDR on XDR displays
On a Pro Display XDR or a Liquid Retina XDR MacBook Pro, the brightest filaments are drawn above SDR white. The aurora glows rather than just being pale.
It can react to things
Leave it on its own, or point it at an input: Music drives the fluid from an FFT of your system audio, AI agent from whatever your agents are doing, Weather and Wind speed from outside. Custom script hands the whole thing over to you.
Colours from your wallpaper
Rather than pick a palette, let it read the one already behind your windows. There is also a Flurry preset, which is a nod to the screensaver a certain generation of Mac user will remember.
Idles when you're busy
It stops drawing entirely when the display sleeps, when the screen is locked, and when you’re in a full-screen app — and on battery too, if you ask it to. A pretty menu bar is not worth your fans spinning up.
Pricing
One tier, and it is free. Everything the app does today, it does for everyone.
Aurora Glass
Freeforever
- The full fluid simulation
- All nine palettes and seven presets
- All five pointer modes
- Notch handling and all four layer placements
- Every visualiser mode, including Music and Weather
- The
auroraCLI and the scene language - HDR glow on XDR displays
- Colours sampled from your wallpaper
A paid tier may come later, once there is something worth charging for. Nothing that works today will move behind it.
Your agents already have a status light
The aurora command ships with the app. It writes
channels into a JSON file that the app watches, which means there is no client library to
install, no socket to open and no daemon to keep alive. If a thing can write a file, it
can drive the aurora.
It lives inside the app bundle, so install through Homebrew and it is
linked onto your PATH for you:
$ brew install --cask gourneau/tap/aurora-glass
Installing from the disk image instead leaves the command
present but not on your PATH; the app's settings panel shows
the one line that fixes it.
# tell the menu bar what the agent is doing
$ aurora busy
# green when the suite passes, red when it doesn't
$ npm test && aurora ok || aurora fail
# or just hand it colours
$ aurora palette "#ff0055" "#ffcc00" "#00ddff"
Drop those two words into a git hook, a watch script or an agent's tool list and the top of your screen becomes the build light.
Or wire the physics to something real
Underneath the settings popover there is a small scene language. It is
line-oriented and takes #, ; or
// comments — deliberately close to the
LEDS.LED files SidePulse uses, so one habit covers both.
set fixes a parameter. bind is the
interesting one: it re-evaluates its expression every frame, against whatever is
coming in live.
# react to whatever is playing
palette #0dff8c #26f2cc #5a8cff #d94df2
set speed 0.6
bind exposure = 0.75 + level * 1.4 + bass * 1.1
bind curl = 1.8 + mid * 5.0
bind raysharp = 1.3 + treble * 2.6
Music
level bass
mid treble beat
An FFT of whatever the system is playing.
Weather
temp wind
gust cloud rain
The sky outside, driving the sky above your windows.
Agents
busy ok
err a0–a3
Whatever the CLI last wrote. Four spare channels are yours.
Time
t
Seconds, for when you only want it to breathe.
The same light, off the screen
SidePulse is a separate piece of hardware: a small light-based status indicator for coding agents, so you can tell at a glance whether yours are working, waiting on you, or finished. SidePulse Pro has eight lights and sits in the SD card slot of a 14- or 16-inch MacBook Pro. SidePulse Dot has two and plugs into a USB-C port. Both are driven by writing a plain-text animation file, which means anything that can write a file can control them.
Including a fluid simulation. Aurora Glass already speaks that dialect —
its scene files and SidePulse's LEDS.LED files are the same
shape of small text format on purpose. The plan is to close the loop: Aurora Glass
samples its own strip at eight points and hands those colours to SidePulse, so one script
lights the menu bar and the hardware beside your keyboard together.
Eight samples across the menu bar, eight lights on a SidePulse Pro. Pick a palette above and this changes too.
The sync is planned, not shipped. SidePulse hardware works today on its own — sidepulse.io.
Put it at the top of your screen
Download for macOSFree. Signed and notarized by Apple, so it opens without a warning. macOS 26 Tahoe or later, Apple silicon.
or with Homebrew
$ brew tap gourneau/tap
$ brew install --cask aurora-glass
Homebrew also puts the aurora command on your
PATH. With the disk image, the app's settings panel installs it
for you.