Skycruncher logo Skycruncher experiment, October 2026

First nights from a remote Seestar S50 at a dark-sky observatory. The square stars were our stacker's fault, not the telescope's.

We put our own Seestar S50 at a remote dark-sky observatory and call it the Outpost. On its first two nights, 8 and 9 October 2026, it took 4,202 subs (the single short exposures a Seestar stacks) of seven targets. The short answer: nearly every sub plate-solved, the telescope collects 85 to 93 % as much starlight as another S50 we compared it with (green pixels, light-pollution filter), and once we fixed a flaw in our own stacking code, the square star cores came out round and about a fifth sharper. Not everything was the stacker: on the first night 23 to 37 % of each target's subs were trailed, and the optics stretch stars slightly on one side of the sensor. Those, and what is still open, are covered below.

Exploratory Every check here was made within these two nights. Nothing has yet been confirmed on a fresh night.

4,199 / 4,202subs plate-solved (their exact sky position found from the stars)
0.85–0.93starlight collected, relative to a community S50 (green pixels, light-pollution filter)
5.0–5.7″star width in six deep-sky stacks, down from 6.4–7.1″ with our old stacker
1.0 e−camera read noise; 10 s subs cost little depth per hour
Two nights, six fields

What the Outpost saw

Each picture is the full stack of one target from the new stacker, shown with one plain stretch for all six (exactly what was done): no noise reduction, no sharpening, no star reduction. North is up and east is left; each frame is about 42 by 75 arcminutes, at 2.375″ per stack pixel. Choose a target.

Read the stars, not the faint outer glow

The faint, large-scale light in these stacks, such as M 31's outer disk or the broad glow around the Heart, is uncertain in its shape by roughly 10 to 60 %. The Outpost's mount runs in equatorial mode, so the sky does not turn on the sensor during the night, and a fixed glow from the sensor then looks the same to our background model as a smooth gradient in the sky. The model cannot tell them apart, so don't read faint outer shapes or gradients here as measured. For the Heart, a joint fit of the second night's targets supports the background we used (not yet validated); for M 31 the first night's fit didn't settle it. Stars, star widths, galaxy cores, bright nebula and the comet are not affected.

The blue-violet halos around bright stars are real: the lens does not bring violet light to quite the same focus as the rest (strongest with the UV/IR-cut filter). They are in every single sub, so they stay in the stack.

Comet 161P/Hartley-IRAS: hold the comet still, not the stars

On the evening of 9 October the Outpost followed comet 161P/Hartley-IRAS for about an hour, starting in evening twilight. A comet moves against the stars: this one moved about 368″ per hour, so over the hour it slid 157 stack pixels across the frame. Stack on the stars and the comet smears. So we stacked a second time on the comet itself, shifting every sub by where JPL Horizons, NASA's ephemeris service, says the comet was at that moment, and gave zero weight to each sub's pixels that sat on a star, so the stars don't smear into lines instead.

Star field with the comet as a faint greenish smear across the middle
Stars held still. 187 subs of 10 s. The comet is the faint green-gray smear across the middle.
The comet held still: a small round coma in the middle of an empty field
Comet held still. 185 of the same subs, star pixels left out. Same stretch, same 16-arcminute square.
Close-up of the comet's head: a soft round glow with a brighter center
The head, close up. Enlarged 2 times without smoothing, same stretch.

What it shows: a compact, round coma (the comet's cloud of gas and dust) with a brighter condensation at its center, and no tail visible at this depth, which is what we expected for a small, faint comet in a 50 mm telescope. Two checks: the coma's peak sits within 1 pixel of where the ephemeris puts it, and its peak above the sky is more than twice what it is in the star-held stack (about 69 against 30 counts, in green), because its light is no longer spread along a smear. Leaving the star pixels out did not change the coma (peak within 1 %). Near the comet, each stack pixel still has at least 32 and typically 67 of the 185 subs behind it (the drizzle drops are small, so even without the mask it is about 70).

What went wrong: square stars, and they were ours

The first stacks from these nights had square star cores, dark rings and black holes in the brightest stars. That looked like a bad camera or bad optics. The squares, rings and holes were neither: they were our own stacking code.

A bright star in M 35 from the old stacker: a black square hole in its core
The same star from the new stacker: a round core
The brightest star in the middle of M 35, old stack (first) and new stack (second) of the same night, enlarged 3 times without smoothing. Both use one plain stretch (black at the sky's median, white at the 99.9th percentile), not this page's main recipe.

A Seestar's sensor has a color filter over each pixel, in a repeating 2 × 2 pattern of red, two greens and blue. Our old stacker separated the four colors into four quarter-size images and resampled each one with a smooth curve. Star images here are only about two of those quarter-size pixels wide, too sharp for that curve: it overshoots and leaves dark rings, and its square shape stays in the star. On an alt-az mount the field turns and blurs the squares away. Here it never did, because the mount runs in equatorial mode and the field held the same angle all night. The black holes came from a third choice: the old stacker threw away every saturated (overexposed) pixel.

The new stacker drops each colored pixel where it actually sits on the sky, as a small round drop (a method called Bayer drizzle), keeps saturated pixels and flags them, and rejects trailed subs. The result: round cores, no holes, no rings, and star brightnesses within 1.5 % of the old stacks. Part of the gain in width comes from dropping the trailed subs: in M 35 the new method alone took stars from 6.77″ to 5.46″, and rejecting trailed subs to 5.20″.

Star width per target, old and new stacker

Median star width with the old and the new stacker (FWHM: the width at half the peak brightness, a circular fit on isolated stars in green), and the subs kept. Sh2-129: the 30 s subs; 161P: the star-held stack.

TargetNightOldNewSubs kept
M 318 Oct6.94″5.44″469 of 612
M 338 Oct7.02″5.30″43 of 68
M 358 Oct6.77″5.20″168 of 234
Sh2-1298 Oct7.10″5.69″228 of 316
NGC 69929 Oct6.58″5.16″862 of 953
IC 18059 Oct6.45″5.00″1,595 of 1,636
161P field9 Oct7.71″6.55″187 of 261

The comet field was shot lower in the sky than the others, starting in evening twilight, so its stars are softer; 28 of its subs were also dropped for a poor background fit. The single subs' star cores are sharper still. What limits the new stacks now is the size of the drizzle drops, an optical elongation on one side of the sensor, and small tracking jitter.

How much light it collects: a healthy unit

To compare telescopes we use the photometric zero point: how bright a star must be, in Gaia catalog magnitudes, to give one count per second. Measured on every sub against Gaia stars and compared with the same measurement on 200 subs of Sh2-129 from a community S50 (another owner's unit), it says how much starlight the whole system, including the air above each site, turns into signal. The community frames were taken through the light-pollution filter, so only our sets through that filter compare like for like. We compare green only: red reads 1.1 to 1.3 and blue 0.8 to 0.9, because the camera rescales red and blue before saving (see inside the subs).

0.87Sh2-129, 30 s, 8 Oct
0.93NGC 6992, 10 s, 9 Oct
0.85IC 1805, 10 s, 9 Oct
0.64first 13 minutes, 8 Oct

An earlier, quicker check had put the Outpost at about half the community unit (0.54), which would have meant dew, focus or a filter problem. It came from the first 13 minutes of the first night, the only light-pollution-filter data on hand then, when the zero point was wandering by ±0.14 mag, for a reason we haven't pinned down (haze or late twilight are candidates). The rest of both nights reads 0.85 to 0.93. Two units are not a fleet: this says the Outpost is not the weak unit the early check suggested, not how S50s compare in general.

10 s or 30 s subs? Little difference per hour

A longer sub helps when the camera's read noise (the noise added each time a frame is read out) matters, because an hour of short subs pays it more often. We measured this S50's read noise at 1.0 electron, which is very low. Through the light-pollution filter the noise in a 10 s sub is mostly read noise and the warm sensor's own dark current, not sky; dark current grows with exposure just as sky does, so 10 s subs give up little. From the noise budget we estimate about 0.15 mag per hour against 30 s (0.1 to 0.2 across these sets), which is smaller than this comparison across different fields and nights can resolve. (The only same-field 10 s set, 10 minutes of Sh2-129 in late twilight, reached 22.5 per hour.)

23.1Sh2-129, 30 s subs, 8 Oct
23.0NGC 6992, 10 s subs, 9 Oct
23.1IC 1805, 10 s subs, 9 Oct

Faintest smooth glow detected at 3 sigma over 10″ boxes, scaled to one hour of exposure, in magnitudes per square arcsecond. It comes from each stack's two independent halves, in an instrumental blue-green band tied to Gaia, so it compares our own sets with each other; it is not a standard sky brightness. Measured on the first stacks, with one method for all three. The fields and nights differ, so this is a like-for-like check of sub length only within that limit. For stars, the new stacks reach a signal-to-noise ratio of 5 at Gaia G 18.9 (M 31), 18.1 (M 35) and 17.4 (IC 1805, 10 s subs through the filter), measured at the stars' catalog positions.

For an S50 owner: on a dark site, 10 s subs cost little depth per hour and lose less to a gust of wind or a tracking hiccup.

Trailed subs, mostly on the first night

A trailed sub has stars stretched into short dashes because the telescope moved during the exposure. The new stacker measures every sub's star shape at full resolution and rejects any sub whose stars are more than 1.4 times longer than wide. Most trailed subs were stretched along the sensor's rows (76 to 96 % of them within 20° of the rows), which points at the mount's tracking or wind rather than the optics.

25 of 68M 33, 8 Oct
139 of 612M 31, 8 Oct
90 of 953NGC 6992, 9 Oct
38 of 1,636IC 1805, 9 Oct

Also rejected as trailed: M 35 64 of 234 and Sh2-129 87 of 316 on 8 October, the comet field 46 of 261 on 9 October. A handful more were rejected by the older, coarser shape rule. Separately, the optics stretch stars slightly on the sensor's right side (about 1.4 to 1.55 times longer than wide there), and with the field fixed on the sensor that stays in the stack.

Inside the subs: the Seestar processes them before saving

A Seestar sub is not a raw camera frame, and that matters only if you want to measure with it. From the Seestar subs alone, with our own dark and bias frames from the same camera to compare, we infer three things. The first two look like deliberate processing; the third may be the sensor itself rather than processing.

  1. Dark-subtracted. The camera's own dark frame is already taken off, so the sky sits below the camera's fixed offset (its bias, the level a zero-light pixel reads). That is why the absolute sky brightness cannot be read from these subs: the zero point of the dark subtraction moves from session to session.
  2. Red and blue rescaled. At the same signal, the red and blue pixels' noise is 1.5 to 2.5 times the green pixels', which is what a color-balancing scale factor does.
  3. Light shifted between even and odd rows. A star's brightness in each green pixel set swings by about ±0.18 mag with the star's exact vertical position on the sensor. The light moves between rows, so what one green set loses the other gains, and adding the two cancels it: bright stars then repeat to about 0.03 mag.

The first two are reasonable choices for a smart telescope whose job is a clean, color-balanced live picture. For measurement it means: add both green pixel sets for star brightnesses, don't trust a single color set in a single sub to better than about 8 to 20 %, and don't read the sky's absolute brightness from the subs. On 10 October the Outpost was set to take raw frames through the camera's Alpaca interface (a standard remote-control interface) beside its own subs, field by field; they are not yet landed or analyzed, so the three findings above still wait for that direct check.

What is still open

How dark the sky really is

Unconfirmed. Because the camera subtracts its own dark before saving, the zero moves from session to session, and the absolute sky brightness cannot be read from these subs. An earlier estimate of the sky being about 1.4 mag darker than a community site is not confirmed. Raw frames, once landed and analyzed, should settle it.

The in-camera processing, checked directly

The three findings above come from the Seestar subs alone. The raw frames planned for 10 October, which would test them star by star, are not yet landed or analyzed.

Faint large-scale shapes

A fixed sensor glow and a sky gradient look alike to the background model here, which leaves faint outer shapes uncertain by roughly 10 to 60 %. A joint fit over several targets of the same night supports the Heart's background but didn't settle M 31's. Twilight frames, the raw frames, or deliberately moving the field a long way between subs would.

Trailing

Up to 37 % of the first night's subs on some targets were trailed, mostly along one direction. Whether that is the mount, its balance or wind is for the observatory side to look at.

Nothing confirmed on fresh data

Every number here was found and checked within these two nights. That is why this page is exploratory.

How the pictures were made

One recipe for every target, in a script committed with this page. It only changes how the data are displayed; the stacks themselves are untouched.

  1. Take the stack's red, green (the mean of the two green sets) and blue images as stacked. Flip so north is up and east is left.
  2. Trim to the rectangle where nearly every pixel (97 % per edge row and column) has at least a quarter of the full sub coverage, then center-crop to a 9:16 shape. The few thinly covered pixels left inside are painted at the sky level.
  3. For each color, subtract one constant: the sky level, taken as the 10th percentile of 32-pixel block medians.
  4. Balance the colors on the stars: one gain each for red and blue so that the median unsaturated star comes out neutral. That makes the field's average star white, not a Sun-like star.
  5. Stretch every color with the same inverse hyperbolic sine curve: soft at 4 times the stack's own noise (measured from its two independent halves), white at the 99.95th percentile, and the sky lifted a little above black so its noise is not clipped.
  6. Resize to 900 × 1600 pixels; save as JPEG at quality 85 with no metadata.

The comet-held stack has no stars to balance or set white on, so it uses the star-held stack's color gains and stretch: the two comet views share one stretch. No noise reduction, no sharpening, no star reduction, no filling of star cores, no local contrast. The close-ups are the same pixels enlarged without smoothing. No flat frames were applied to the stacks (none exist for this unit yet).

What we expected, and what we found

Written down before any new pixel was opened:

Fixed in advance, and measured

Fixed in advance

  • The expectations above, written before looking.
  • Star positions and magnitudes: the Gaia DR3 catalog (plate solving, zero points, the comet stack's star mask).
  • The comet's path: JPL Horizons, 161P/Hartley-IRAS, the orbit solution of 9 October 2026.
  • The reference for throughput: the community S50's zero point, measured with the same code on that unit's own frames, taken before these nights.

Measured on these two nights

  • Plate solutions: 4,199 of 4,202 subs.
  • Zero points and throughput (0.85 to 0.93; 0.64 in the first 13 minutes).
  • Read noise 1.0 e− and dark current, from our own bias and dark frames of the same camera; depth per hour, and the noise-budget estimate for 10 s against 30 s.
  • Star widths, the trailed-sub counts and their direction.
  • The in-camera processing (from the subs alone).
  • The comet's coma position and brightness.

Chosen on these nights, not in advance: the new stacker's settings, including the 1.4 trailing limit, and the picture recipe, which was set by looking at these stacks. No night other than 8 and 9 October was used for any claim on this page, apart from bias and dark frames taken with the roof closed on 10 October.

Data

Our own Seestar S50 at a remote dark-sky observatory, on its built-in mount in equatorial mode. Night of 8 October 2026: Sh2-129 (light-pollution filter), M 31, M 33 and M 35 (UV/IR-cut filter). Night of 9 October: comet 161P (UV/IR-cut filter), NGC 6992 and IC 1805 (light-pollution filter). 4,202 subs of 2 to 30 s, 2.375″ per stack pixel. The M 31 frames are held back for a separate, pre-registered test on Hubble's Cepheid variable V1, so nothing here measures variable stars in them. Comparison: 200 light-pollution-filter subs of Sh2-129 from one community S50; none of its pixels are shown.

Star positions and magnitudes: ESA Gaia DR3. Comet ephemeris: JPL Horizons, NASA Jet Propulsion Laboratory.