Stardome draws the sky that is actually over you. The stars stand where they stand tonight for your latitude and the current minute, with the horizon at the rim of the screen and the point straight above you at the centre. Four of the constellations on it are not real. They are the digits of the time, and their corners are real stars.

It came out of the same idea as the labyrinth: a dial that looks like a picture until you know where the time is. The first drawing of the sky, from July 2026, already had the time as four constellations. My note on it was "bolder stars, meaningful sky".
The way I put it in the launch post: "I like cryptic watch faces where the time is hidden. This one started as a challenge. What if there is a sky full of stars, and when you look at your watch, the time appears in it as a set of constellations?"

Before I started I wrote down what it had to do. It had to read when the screen is awake, and in always-on too, the dim frame the watch shows when your wrist is down. And the sky had to mean something rather than random dots. The real stars for the date and the place, and the real planets with them.
That brief took four rounds of renders. At a glance the four are the same picture. They are not. Each round moved one thing clear of another.
The first round already found the fault I spent longest on. The digit 1 was reading as a plain diagonal stick, so it got a foot bar to stand on. That foot bar caused the next problem.
A digit on this dial is a shape drawn through four to nine points, and each point moves to the nearest real star. So the digit comes out a little different every time, because a different sky is under it.
A point can land a long way from where the shape put it. Close to a fifth of the digit's width. I call that travel the wobble.
One evening I looked at my own wrist at 21:41, and both 1s could have been 2s. The foot bar was the cause. Put a long flag, the short top stroke of the 1, over a full-width foot bar and the wobble only has to tilt the stem. Then it is a 2, and allowing the points less travel does not help.

So I drew the shapes I was considering on one sheet, all under the same wobble, with a real 2 beside them drawn the same way. The sheet was blunt. With a foot bar the digit read as a 2, whatever the flag length. Extra points down the stem give it two places to bend, and the digit turns into a snake.
A second sheet tested only the length of the flag. Shorter than a fifth of the digit and the wobble hides the flag. What is left is a bare stroke. Any longer than about a quarter and it flattens into the top bar of a 7.
What shipped is four points, no foot bar, and a flag near the short end of that range. Fixing one digit can break another, so the last sheet redrew all ten under the same wobble, to check the new 1 had not become a 7 or a 4.

At rest the stars that make the digits sit unlit among all the others, so the dial reads as a plain sky. On a wrist raise the real constellations draw themselves star to star first. Then the four digits fade in whole over them and hold. That is the reveal, and those unlit stars are the camouflage dots.

I wore the first always-on frame for an evening, and wrote in my notes that it was "crazy bad" and that "modes must blend into each other". It had been built as a picture of its own, so the watch changed dial when it went to sleep. What replaced it is the awake scene made quiet: the sky gradient at a fraction of the brightness, the stars with their halos off, the figures a step thinner, and the time in the same stroke.
Four more things changed after that evening. I cut back the faintest stars, because half of the small ones is enough.
The readouts stopped sliding around to dodge whatever was under them. It was meant to help. It did the opposite.
The boxes the digits sit in grew, and I dropped the search for the best position of each one, so a digit only looks for new stars when it changes. An hour digit then costs nothing for an hour at a time.
Body Battery had been dimming the whole sky, so a tired body meant fainter stars. It reads well written down. It is wrong when you wear it. You want the stars whatever your body is doing.

Stardome never talks to a server, so the whole sky ships inside the app. The named catalogue is 333 stars, and each one is packed into a single 32-bit number: right ascension in the bottom twelve bits, declination in the next ten, brightness in six more, colour in three, and the top bit left clear so the value never comes out negative when it is unpacked. The coordinates are the Yale Bright Star Catalogue's, and the 53 constellation figures that join them are mine, stored as 290 line segments of one number each. Under the named stars lies a faint tier of 401 more, which brings the sky to 734.
That faint tier is never in the app's working memory. It sits in the resource file as three lists of up to 150 numbers, and the sky model loads one list, projects it and lets it go again. The catalogue is that size because the first one held the northern summer only, and a February evening in Sydney, which should be the richest sky on Earth, drew as a bare dot field. Going to the whole sphere more than doubled the stars and the face's peak memory went down by a kilobyte, because that is the change that moved the faint tier out.
Putting a star on the screen starts with sidereal time, which is the clock the sky keeps. It tells you which way the Earth is facing at this moment, and from it and the wearer's longitude the face knows how far each star stands from due south. The wearer's latitude turns that into a height above the horizon and a compass bearing, and anything below the horizon is dropped for that minute. The rest goes through a stereographic projection, which flattens a dome without bending the constellations out of shape: straight overhead is the centre of the dial, the horizon is the rim, north is up and east is to the left.
All of that runs once a minute, for the stars, the Milky Way, the dust along it, the ecliptic, the planets and the Moon. Two things do not. The Milky Way's own sample set, 250 blobs scattered along the galactic plane with a broader wash every third one, is worked out once when the app starts and only re-projected afterwards. The faint tier is frozen for ten minutes at a time, and a digit constellation looks for new stars only when its digit changes, so an hour digit costs nothing for an hour.
The dial itself is three layers. The deep one is opaque and holds everything soft: the sky gradient, the twilight glow over the point where the sun went down, the Milky Way band. The map lies over it on a clear ground and holds everything with an edge, which is the faint stars, the figures, the bright stars and their halos, the planets, the Moon, the names, and the dark pools the data values sit in. Both are drawn once a minute into pictures the face keeps, and the third layer is drawn fresh on every frame: the horizon arc, the readouts, the cardinal points, and the reveal that brightens the four digits.

Two pictures rather than one, because a frame has room to redraw one of them and not both, and because the map needs a clear ground and full alpha blending where the deep layer is solid. A wrist raise copies both onto the screen and draws the live layer over them. None of the sky is redrawn live, because it cannot be. Laying it down is well over a thousand circles and lines.
The watch counts the statements a frame executes rather than the time it takes, and it kills a frame that runs too long. The figure the SDK publishes is 240,000 statements on nearly every watch Stardome ships to, and that is not the figure that matters in practice. Frames I put at a third of it have been killed, so I build to about twenty thousand. The sky is therefore made in slices, one heavy job per frame, each asking for another frame when it is done, and they run in this order.
| slice | what it does | when it runs |
|---|---|---|
| boot frame | the brightest 70 named stars, the Sun, the Moon, the planets and any shower inside its peak window; in the dim mode it also sweeps the named catalogue a quarter at a time | at startup, and once a minute while the screen is dim |
| readouts | the complications, the date and every string the interface prints | once a minute |
| stars, first half | sidereal time, the first half of the 333 named stars, and the grid the digit points snap to | once a minute, and no sooner than four hundred milliseconds after the boot frame |
| stars, second half | the rest of the named catalogue | the next frame |
| Milky Way | the 250 band samples | the next frame |
| dust and ecliptic | 170 dust grains along the band, and the line the planets travel on | the next frame |
| Sun, Moon, planets, shower | their positions, the Moon's phase and which way its lit edge faces | the next frame |
| the digits | a glyph snaps its points to real stars | the next frame, and only for the digits that changed |
| deep picture | the gradient, the twilight glow and the band, drawn into the kept picture | the next frame |
| map picture | everything with an edge, drawn into the other kept picture | the frame after that |
| faint tier | 150 faint stars from one resource list, projected and dropped | three frames, once the frozen tier is more than ten minutes old |
One family never fit. The Forerunner 255 trips the limit at startup, while it is scattering those Milky Way samples, and it did so long before the current version. The Forerunner 955 runs the same code in the same place without trouble, so this is that watch's budget rather than a bug I could go and find. Cutting the startup work finer would have been real work on the sky model for one family, so Stardome is not offered to them.
Ember is one of four sky colours. It is the sky in night red. It is for anyone who has spent an hour getting their eyes dark-adapted, and would rather a watch did not undo it. There is no blue anywhere in it.
The same wearer usually wants the other setting too. It is called Sky only. It takes the star time off the dial altogether, so there are no camouflage dots and nothing to reveal.
The clock moves into the pill instead, the small readout at the top of the dial. If that pill was showing something else, it is pushed back to the time, so the face always shows the time somewhere.


Stardome is on this site, and on the Connect IQ store.
The author builds the My Day 24 watch face family. Published 2026-09-10.