Browser-local · no installation · private by design

Stack your night. Keep it private.

Make star trails first, or switch to nightscape, deep sky, comet, planetary and calibration work when you need it. Nothing is installed or uploaded. Every frame is read on your own device. It runs in Safari, Chrome and Firefox, on a Mac as much as on Windows or Linux.

  • Clean before stackingMoving straight tracks are compared between neighbouring frames.
  • Six focused modesOnly the mode you choose is shown and run.
  • Useful output16-bit pictures and signed FITS where the mode supports them.

Try a sample night Use my own frames → Check formats →

380-frame Sony A7C star trail — stacked with this tool

Six kinds of night

The workspace keeps one stable shape and shows only the controls and file roles the selected result needs.

Stack a sequence

Start here Choose the picture or calibration master you want to make.

What are you making?

ChooseInspectConfigureRunReviewExport

Add your frames Choose the files for your result. Nothing is uploaded.

Best on desktop for large RAW or FITS sessions — processing uses this device’s memory. You can still continue here.

Lights required for a picture

0 files

Using a Drive, OneDrive or Dropbox folder?

A Drive, OneDrive or Dropbox folder that syncs to this computer is just a folder — choose it like any other. If its files are kept online-only, the first read of each one waits for your sync app to fetch it, so the first minutes run at your network's speed rather than your computer's.

Calibration, masters and masks

Choose the role explicitly. Names and previews never move it to another bucket.

Darks

0 files

Flats

0 files

Bias

0 files

Dark-flats

0 files

Masters

0 files

Reference

0 files

Mask

0 files

Light means sky, dark means fixed ground, and anything between is a soft edge. Greyscale only — a colour cannot say which side of the boundary it means, so a coloured mask is refused rather than guessed at. Choose Sky region → Imported mask to use it; you can brush corrections onto it afterwards.

What the sample night is Twelve exposures this page draws — a real star field turned at the real sidereal rate, 25 s each, 30 s apart. Not a photograph. Stacked by the same worker, on this device, with nothing uploaded.

Check the settings Review the settings, then press Start when you are ready.

Star trail controls

On by default. Neighbouring Lights are compared first; verified straight tracks are masked before their pixels enter the stack. No hidden second stack is built.

Recommended. The same reduced survey proposes where the sky ends. Ground, trees and buildings may be inspected, but automatic removal cannot change their pixels. If the boundary cannot be measured, removal stops safely instead of guessing.

How line removal works

No image pixels are decoded and no stack starts until you press Start stacking. A reduced-preview survey compares each Light with the frames immediately before and after it. One full-resolution pass then verifies optical width and persistence before masking a line. The first and last Light use their one available neighbour. Aircraft, satellites and meteors can all be one-frame straight tracks, so the receipt describes the measured line rather than guessing the object class. Every decision remains reviewable and a missed line can be drawn on the finished result. Watch how Review works in the video guide (2:56)

Advanced options detector tuning, tone, time-lapse, gap tuning, saving, and more

The additional model failed validation and is disabled. The ordinary moving-line search remains available. No model download or extra frame pass is performed.

Not what you wanted? Adjust how hard it looks

It is set to Balanced: adjacent frames propose moving lines and a second full-resolution check decides what can be removed. Careful keeps only the strongest lines and can miss a faint continuous satellite; Thorough searches widest and needs the closest review. The fixed foreground boundary and repair limits do not change with this choice.

Set the three numbers myself

Every measured number above stops applying to your run. The recall and false-positive figures were measured at the three named levels, not at yours, and this tool has no way to tell you what a triple it has never seen will do to your night. Leave a box empty to keep the level's own value for it. The result will say what it used.

Timing missing from PNG, TIFF or video frames?
When to state the timing yourself

Use this only when every frame has the same exposure and start-to-start interval. Files are processed in filename order. The tool still measures the stars and the sky axis; these two seconds are the only facts you supply.

Tone changes the picture, never the data
What the tone controls change, and what they cannot

These move the 16-bit PNG and what you see, and nothing else. Star trails has no other output; the time-lapse is encoded from the untoned stack, and where a mode writes a signed Float32 FITS it keeps the values the stack measured whatever you set here.

Resource plan transparent working size and admission ceiling

This changes only supported resource controls. Registration, rejection, calibration, masks, colour, tone and output type stay exactly as configured.

Plan for this device

Waiting for measured source dimensions.

Local project settings and source identities, never source bytes

Save this session as a small JSON manifest. Reopening it restores the mode, settings and decisions, then requires the same files again by name, size, modified time, media and role. No path, image data or browser storage is included.

Nothing is stored. Export reads metadata only; Import reads the JSON you explicitly choose.

Compare a private plan with current Lights or a FITS sequence, locally

Choose one private SkyPlanV1 JSON file, then bind the current Lights or explicitly choose a FITS comparison sequence. Header timing and shape are read before any pixel decode. A FITS comparison never enters or starts the Star Trails stack. Photos, the plan and the receipt are not sent; one property-free completion event may be counted.

Optional override for comparison only. These files do not change the current Lights, processing roles or stack.

Used for naïve DateTimeOriginal and required for every FITS DATE-OBS sequence. It is never inferred from the device, location, filename, file time or FITS convention.

Required exact pairing

Select the relationship, one session/capture identity, and measured deltas with tolerances. Device clock, GPS and orientation are never inferred.

Timing delta / tolerance (seconds)
Location deltas / tolerances (degrees)
Orientation deltas / tolerance (degrees)

Nothing is bound. Files stay on this device and no stack is started.

One local workflow

From a folder to a finished night

See how it works →
1

Choose the result

Pick trails, a fixed-ground nightscape, deep sky, comet, planetary or calibration. The workspace stays put.

2

Add and check files

Lights, calibration frames and masks have explicit places. Header checks happen before the expensive decode.

3

Press Start once

Nothing stacks on upload. The run names Prepare, Survey and Build, then gives you the picture and its receipt.

Visible difference

Your night, with the avoidable damage removed

Open the gallery →
A real light-polluted night sky photographed in Poland
Real night, difficult skyLight pollution and changing background are measured frame by frame.
Plain and equalised star-trail stacks compared side by side
Plain vs equalised stackThe comparison comes from the same source sequence, not a marketing mock-up.
Plan before dark

Four tools, no app install

All planning tools →
Learn one thing at a time

Practical guides for the next clear night

All guides →