SkyCruncher

Note · Reading your frames

Why bright stars turn green or purple

The brightest stars in a Seestar picture often have purple or green centers. The tint comes from the camera and your software, not from the star: in the raw frames, green stops counting before red and blue do (measured).

Updated

A thin line beside a passage says how far its claim is proven: measured, illustrative, inferred. Colored numbers carry the same mark. A passage with no line is stated. How claims are marked.

The symptom

You stack a night, stretch it, and the biggest stars in the field have a magenta or green middle inside a halo that looks normal, while the fainter stars look fine. It shows up most on fields with a few very bright stars and on longer subs (a sub is one single exposure).

A star whose core is below the ceiling: a white center Below the ceilingwhite center, true color
A star whose core is full in every color, with one white level: a purple center Full corethe camera's balance kept: purple
A full core after software lifts green: a green center Full coresoftware lifts green: green
Drawn for this Note, not a measurement (illustrative). The halo, where no pixel is full, keeps the star's color; only the full core changes. The bright-star Experiment has an interactive version built from its measured ceilings.

Why: each color stops at a different number

A Seestar's sensor sits under a grid of color filters: in every 2×2 block of pixels, one red, two green and one blue, a layout called a Bayer pattern. Each pixel records its light as a number, a code, from 0 to 65,535 in the 16-bit raw files a Seestar saves for each sub, which are FITS files, the standard astronomy image format. A pixel that can't record any more light is full, also called clipped or saturated, and the lowest code at which it stops is its ceiling.

In my Experiment on bright-star colors (dated 9 October 2026, marked Exploratory), I looked at raw frames from 8 Seestars of four models: 3 S30s, 1 S30 Pro (mine), 3 S50s and 1 S50 Pro. The other seven came from community contributors who shared their frames. Its short answer, quoted exactly:

“Red and blue run all the way to 65,535, the largest number the file can hold. Green stops lower: between 49,808 and 54,288 on every unit with normal color handling we measured.” (measured)

The conditions that go with that range:

Why green? Before writing the file, the camera scales its colors so that ordinary light comes out roughly balanced: on the units I measured, red and blue get 1.3 to 2.4 times as many codes per electron (the charge light frees in a pixel) as green (measured). That pushes red and blue to 65,535, the file's top number, first. Green, scaled least, runs into a limit inside the camera while it is still under 65,535. My data fits the colors all stopping at one shared limit before the scaling, but I haven't pinned down which part of the camera sets it (inferred).

What a full core turns into after color balance and a stretch

Once a star's core is full in every color, its pixels are frozen near 65,535 red, a green somewhere in its full band (about 53,500 on an S50) and 65,535 blue, however bright the star really is. The steps below are arithmetic on those ceilings, not a test of any program (illustrative).

StepRedGreenBlueThe core looks
As the file holds it65,53553,50065,535faintly lilac
Divided by one white level (65,535)1.000.821.00purple, once stretched and boosted
Software lifts green 1.4×1.001.141.00green
All three clipped at green's ceiling1.001.001.00white

The first row is a little purple because a full core holds about 1.2 times as much red and blue as green. A stretch and any color or saturation boost make that tint much stronger (illustrative). If your software's white balance lifts green by more than that ratio (the Experiment puts it at about 1.15 to 1.3 times on units with normal color handling), the full core flips to green instead (inferred). I haven't tested what any particular program does.

It isn't only about looks. Software that decides a pixel is full by looking for 65,535 lets a star that is full in green alone through as good data. Over the Experiment's nights that was 251 of 1,576 full star images on the S50 Pro and 94 of 465 on my S30 Pro, and my own tools made the same mistake (measured).

What to do

In my own words, the usual cures, by where you are in processing:

To find your own green ceiling, open a raw frame with some bright stars in a program that shows the red, green and blue pixels separately, and look at green's histogram near the top: full green pixels bunch up in a band about 1,000 to 5,000 codes wide, and the bottom of that band is your ceiling (measured). Check again after a firmware update. The Experiment's "What to do about it" goes through this in more detail.

Below the ceiling, the response stays straight

A common worry is that a sensor's response bends over before it fills, so the brightest unsaturated stars read too faint. How calibration works reports that on the S30, S30 Pro and S50, every color stays within about 5 % of a straight line up to 90 % of its clip level, then clips (measured). The Experiment's star-by-star check is a little less tidy: up to 0.9 of the ceiling, green stayed within 5 % on those three models, while red and blue, with fewer stars to go on, scattered more, mostly a little low; the last stretch from 0.9 to the ceiling can't tell a real bend from stars already over it (measured). The one S50 Pro in the Experiment is the exception: from 0.4 of the ceiling up, its green and red read 5 to 8 % low and its blue 10 to 23 % low, and I don't know why. That is one unit on one night, so I treat it as an open question, not a property of the model (measured).

Where these numbers come from

The lines beside passages mark how far each claim is proven; see how claims are marked. More Notes and guides are on the Learn page.