Plate Solver
Star trails

Choose a few photos taken from one spot

A propped-up phone and an interval (time-lapse) app are enough. Every photo's stars are joined into gap-free star trails, or stacked into one cleaner sky, with the ground kept sharp. Two photos work; ten or more give the cleanest result.

Runs entirely in your browser — your photos are never uploaded.
JPEG · HEIC · PNG · camera RAW · needs WebGPU (Chrome, Edge, Safari 26) · Privacy · How to shoot

Turned the camera between the photos? Panorama stitches them on the stars.
One photo to identify? Plate Solver labels every star in it.

Star trails from a phone or camera, without uploading anything

Point a phone or camera at the night sky from one spot and take a series of photos: thirty seconds apart for half an hour, or all night. Choose them here and the stars' paths across the sky are drawn as continuous arcs, the way a single hours-long exposure would record them, but without the glow and noise a long exposure collects. The gaps between your photos are filled from the measured turning of the sky, so the arcs are unbroken. The same photos also give one stacked sky: the stars aligned on each other, the noise averaged down, and trees, hills or buildings kept where they were.

It works by plate-solving one of the photos (finding exactly where it points and how the lens draws the sky, the same engine as Plate Solver), fitting each photo's rotation about the celestial pole on hundreds of stars, and separating sky from ground automatically. Everything runs on your own device.

How to shoot

  1. Prop the phone up and don't touch it: a tripod, a wall, a rolled-up jacket. A photo that moved a little is turned back to line up with the others, but a camera that stays put gives the sharpest ground.
  2. Use an interval app (or your camera's built-in intervalometer) to take a photo every 10–60 seconds, each as long an exposure as the phone allows. Night mode is fine. Turn the flash and HDR off.
  3. Take as many as you can; ten or more is where it gets good. Two photos already give a result. From four, passing planes, satellites and people are rejected (that needs four samples of each pixel); from a handful, the sky and the ground are told apart more surely and the noise drops with the square root of the count. For trails it's the time span that counts: thirty minutes gives short arcs; two hours gives the classic circles around the pole.
  4. Keep the originals: the capture time in each photo's EXIF data is what orders them and fills the gaps. Screenshots and edited copies lose it.

What you get

  • Star trails: each pixel keeps its brightest moment above the static sky background, so hot pixels and lit ground don't streak. The gaps between photos are filled along the measured rotation.
  • Stacked sky: the photos aligned on the stars and averaged with outliers rejected (planes, satellites, meteors), with the foreground stacked in place.
  • Natural or Vivid: two finishes. Vivid adds Milky Way contrast, star reduction and saturation.
  • Labels: the constellations and named stars from the plate solve, switchable on and off.
  • Star brightness (camera RAW): one star's V magnitude measured in every photo against the catalogue stars in it, with its mean, a check star and a table to download: for variable stars and novae.
  • Export a JPEG straight to your share sheet on a phone, or download it.

What photos work

  • JPEG, HEIC (iPhone), PNG or camera RAW (NEF, CR2, CR3, ARW, DNG and more) from the same phone or camera, all the same size, taken from one spot: on a tripod, propped up, or on a star tracker.
  • Wide and normal lenses: phone main cameras, 14–50 mm on a full-frame camera, fisheyes.
  • Some open sky with sharp stars in at least one photo, so it can be plate-solved.
  • On a phone, the work is done at 2400 px across to fit in memory (RAW binned to half size); on a computer at up to 4096 px, and RAW at its full size. A hundred phone photos take a few minutes; thirty 36 MP RAW files about three and a half minutes on a fast computer.

Private, free, works offline

Your photos are read and processed in your browser and never uploaded. After the first visit the page works offline. Anonymous usage counts are collected; never photos or locations (privacy).

Questions

Why does it need WebGPU?

Aligning and combining a hundred photos is a lot of arithmetic; the graphics chip does it in seconds where the processor alone would take many minutes. Chrome and Edge (Android, Windows, Mac), and Safari 26 and later, have WebGPU.

The camera moved a little. Is that a problem?

No: each photo whose camera turned (a bumped tripod, a phone picked up and put back) is turned back to line up with the others, the ground included, so the trails and the stacked sky still work, and so do photos from a star tracker. With fewer than four such photos the ground is taken from one photo instead of being averaged, and the page says so. Photos pointing somewhere else entirely are left out: for those, Panorama stitches them.

What if a plane or a car's headlights crossed a photo?

In the stacked sky, outliers are rejected, so a plane's streak disappears. In the star trails, anything that moved across the sky is kept, since that's what trails are; a plane leaves its dashed line.

Can I use RAW files?

Yes: NEF, CR2, CR3, ARW, DNG, RAF, ORF, RW2, PEF and more are decoded on your device (the decoder, 1.4 MB, loads once, only when needed). On a computer the mosaic is stacked at full size and demosaiced on the graphics chip; on a phone it's binned to half size to fit in memory. On a computer you can also save the stack as a 16-bit TIFF, unstretched, to develop like a RAW. A set of RAW photos also gets Star brightness with the stacked sky. Dark frames aren't used (the desktop version, skystack, takes them).

Can it measure how bright a star is?

With camera RAW photos, yes. Under Star brightness, tap a star on the stacked sky (or name it, or type its RA and Dec): every photo is calibrated against the hundreds of catalogue stars in it, the star is measured in each, and you get its mean V magnitude with an error, a nearby check star of similar brightness and colour beside its catalogue value, and a CSV of every photo's value with its time and airmass. Thirty 10-second photos at 14 mm give about ±0.03 mag for stars brighter than V 8. Cloudy photos, and photos where the star is saturated or has a close neighbour, are left out with the reason. JPEG isn't offered: the camera's tone curve leaves it at about ±0.12 a photo.

Why didn't it work?

Usually no photo could be plate-solved: clouds, very few stars, a street-lit sky, or photos that differ in size. Try a set with more open sky, and make sure the photos are the originals.