← The Dark Shark — the image

Processing log · September 2026

The Dark Shark (LDN 1235)

How the final was made

The Dark Shark, LDN 1235 — a grey-brown dust cloud shaped like a shark across a star field in Cepheus, with two small blue reflection nebulae

Target: LDN 1235, the Dark Shark, in Cepheus. Solved centre 22h04m43.5s +73°06′09″, 2.0112″/px.

Rig: Askar 80/384 at solved FL 386.0 + ZWO ASI2600MM Pro, gain 100 / offset 50, −5 °C.

Data: 15.39 h over four nights, 15–18 September 2026 — L 311 × 90 s (7.78 h) · r 181 (3.02 h) · g 162 (2.70 h) · b 114 (1.90 h), plus 1 s short sets per filter for star cores.

Where it was shot: my backyard site at The Star Farm in Camden, South Carolina — Bortle 4.5.

Linear

  1. Per-night stacking in Siril, each night on its own calibration, then merged by inverse variance (tools/combine_nights.py).
  2. Crop to true common coverage, 6248×4176 → 6158×4082 (offset dy 45, dx 37), Gaia plate solution attached.
  3. SPFC — Antlia V-Pro R/G/B, IMX455 QE, Generic UV-IR-CUT for luminance.
  4. MGC at gradient scale 1536, not the 768 inherited from Wolf's Cave. Measured over 24 trials: at 768 the ~2048 px band loses 10% of its signal and on a dark nebula that band is the dust; at 1536 it loses 2%. Scale is the only MGC control that matters — the scale factor k, including per-channel values, changed nothing.
  5. SPCC — limit magnitude 15 with Automatic OFF, min detection SNR 25.
  6. Star cores repaired from the 1 s shorts (tools/pm_star_cores.py), k per channel R 52.9 / G 38.1 / B 57.9 / L 100.5, then rescaled so nothing clips.
  7. Gradient polish — tools/sky_flatten.py degree 3, sky found by iterative sigma clipping. Luminance 1.79% → 0.92%, colour 1.21/1.61/2.06% → 1.09/1.09/1.22%, 92.7% of object contrast kept. This is what makes the large MGC scale free.
  8. BlurX (correct-only off) then MLDenoise 0.90 colour / 0.60 luminance.

Stretch

  1. GHS on each: SP at the measured sky, b 2, D 7; black point; then HistogramTransformation to land the sky exactly on 0.15. A GHS result is only reproducible from the same file with the same settings — never carry a midtone between sessions.
  2. StarX on BOTH the colour and the luminance. Both sides of a CIELab combine must be starless; the stars go back at the end and the colour star layer already carries their luminance.
  3. CIELab combine, NoiseX (colour + frequency separation, scale 2), four curves on L and S, BlurX non-stellar 0.25 / stars 0.00.

Colour — nothing subtracted

  1. tools/hue_boost.py — amber, centre 30°, width 30, gain 3.5; then blue, centre 220°, width 45, gain 4.0 with protect=0.999. A raised-cosine hue window with a hard guard that forces the green band to zero weight, so green and magenta finish exactly where the data left them. The blue pass is headroom-limited per pixel, which kept its colour while dropping blown cores from 13,345 to 417.
  2. tools/local_contrast.py — radius 600, strength 1.0, luminance only, channels rescaled equally so hue and saturation survive.
  3. Stars screened back: 1 − (1−starless)(1−stars).

No SCNR and no Selective Colour. SCNR was tried and dropped: it does not remove a tint, it converts green into magenta (green 0.39% → 0.14% of the dust, magenta 0.04% → 0.34%). My rule — scale a whole effect back rather than subtract a component.


What the audit says was lost

Measured with tools/process_audit.py, stretch against final: every hue band gained, but unevenly — yellow +1616%, orange +972%, against cyan +166% and azure +149%. The reflection-nebula colours were outvoted rather than removed. 4,938 pixels (0.0196% of the frame) clipped to black, from the contrast pass having a ceiling guard but no floor guard. Star core colour rose from 0.002 to 0.037. Detail up at every scale.

Known and accepted: chroma mottle at 64 px, green 0.37% and magenta 0.10% of the lit dust. Six approaches failed to remove it; the cure is more blue integration — b had 1.90 h against r's 3.02 h.

Dark Shark processing log · serial 870191 · September 15–18, 2026

The image → The Dark Shark — full size, with the story of the object