Skip to content

Releases: MichaelLevAstro/DeAstroStacker-ci

DeAstroStacker 0.11.6

Choose a tag to compare

@github-actions github-actions released this 30 Sep 12:22

DeAstroStacker 0.11.6. Everything since 0.11.5.

New

  • Sous-chef. A chat column in The Season. Tell an agent already on this computer what is wrong with the picture - Claude Code, or any Agent Client Protocol agent such as Codex - and it changes the Line on screen. Every change is a card you can compare, go to or undo on its own. Messages can carry pictures, and the conversation is saved with the project. No API key: each agent signs itself in.
  • Camera raws. DSLR and mirrorless raws come in like any frame: NEF, ARW, CR2, CR3, DNG, RAF, ORF, RW2, PEF and the rest, read by LibRaw. Everything written from them is XISF and carries their ISO, black and white levels and white balance. Camera black level, a Cook box, stands in for a bias nobody shot.
  • Starters. Fifteen ready-made Lines on the Line's row: RGB, LRGB, HaRGB, SHORGB, SHO, HOO, dual-band HOO and a single mono filter, from a colour camera or mono filters, plus a planet, the Moon and the Sun. A starter uses the tools installed here (RC-Astro, Seti Astro Suite Pro, StarNet, GraXpert) and goes on the picture on screen; the other pictures keep their Lines. A Save button sits beside it.
  • Brush and PixelMath masks. A Mask can be painted with a brush (paint, erase, clear), and PixelMath can output a mask.
  • Timelapse on any night. The Serve plays any night of two or more main pictures, deep sky included, as MP4 and/or GIF, forward or ping-pong. It comes back with its project and exports in the background with Cancel. The connector's serve_run makes the same one.
  • Planetary stacking methods. The planetary Cook has a Method: Patches (the default), Patches · cubic, Patches · Lanczos, Warp and Fourier.
  • Align all frames. A planetary Cook tick that puts the planet in the middle of every stack, so a night of recordings plays as a steady timelapse.
  • Set Line to others. On a picture's right-click menu: its steps go on every other picture, so forty stacks of one rotation are seasoned once.
  • Stacking clocks. The planetary Cook shows how long each recording took to stack, and how long the night has been going.
  • Camera offset. For FITS lights with no bias or dark, a Cook box reads the camera's offset off the flats' noise and takes it off, so the flats stop over-correcting. The flat check reads a colour camera's flats by their light and says when the offset is still in the lights.
  • The connector reaches every setting the window has. recordings_set and scale_set take every planetary and Scale setting, and a planetary night goes on through the Season, the Serve and a project. AI clients move to skill 3 (Settings, under AI clients); restart any client that was connected to the app.
  • General improvements.

macOS: the app is not signed by Apple, so the first launch is
refused. One line clears it, and it is only ever needed once:

xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app

Windows: SmartScreen will warn for the same reason - More info,
then Run anyway.

DeAstroStacker 0.11.5

Choose a tag to compare

@github-actions github-actions released this 24 Sep 21:58

DeAstroStacker 0.11.5. Everything since 0.11.2: the app explains itself to an
AI client, the stars of three filters become a picture you can work on, and
PixInsight reads the sky the right way up.

Driving it from an AI client

Every step has a page on the Menu, written beside the code it runs. A page
says where the step goes on a Line, what its Auto measures, the trap that looks
as if it worked, how to read its note, and the algorithm itself. A client reads
menu instead of trusting a skill written against another build, which is how
one session set a target on an mtf Stretch that never reads one.

A night through the connector costs about 25 KB to read, down from 193 KB.
Answers carry their own result, so no show call follows each action, and jobs
wait until they land. ticket_show gives the stage, the next step and the
questions only you can answer. A client can read a Line, taste it, edit it as a
list of edits, try it on a proxy in seconds and look at the result. Finished
masters go straight to the Season, and Omakase runs the whole night as one job
and stops at the first open question.

  • A connector ends when you are done. Claude Desktop keeps two connectors
    running for as long as it is open, each holding the app's files, and an update
    stopped on "the following applications are using files". connector_stop
    ends one, five hours with no call ends it too, and the installer stops any
    connector running from the folder it replaces.
  • Every build carries its own skill. Settings installs the newest skill that
    fits this app, from what it holds, what is published and what it shipped with,
    so it works offline. Apps up to 0.11.4 stay on the 1.x skill; 0.11.5 reads
    skill 2.
  • A Special has a Menu page too, and its author writes it. specials check
    says what a page is missing, by the rules this app's own steps are held to,
    and checks the next version of a Special you already have installed, which
    used to collide with the installed copy. The kit API is 2; a Special written
    against 1 still loads.
  • A planetary recording measured through the connector stays measured for the
    next call. The measurement is saved beside the recording, and only the measure
    itself read it back, so the stack after it refused.
  • look finds the picture the Season starts from, and the last try.
  • A starter Line keeps its step ids from one call to the next, so season_edit
    accepts the id season_line just showed.

Stars

Combine stars is a new button beside Combine filters. It takes each
filter's stars off with a Remove stars preset and mixes them through a palette
meant for a star field: NB stars to RGB with or without sulphur, RGB, or LRGB.
The result is a picture of its own, with a Line to stretch and saturate it on,
and Add stars pointed at it puts them back. The Stars dropdown on Combine
filters is gone. It only did anything when every filter's Line had already
taken its stars off, and what it made never reached anywhere you could work on
it. A combination whose channels had their stars split off still makes their
stars, as before.

Add stars picked from its list put nothing back. A session of one picture
does not name its stars, so the screen labels them "Stars", and nothing in the
recipe answered to that word. Picking it bound the slot to a picture that did
not exist. Behind that sat a second bug: naming the stars made the step replay
every crop above the fork a second time. A mirror or a quarter turn keeps the
size, so the stars came back flipped, with a note saying it went well.

Presets keep the Auto toggle. Applying a preset turned Auto off; it now
puts back what the step was on when you saved it. Older presets read as off,
as they always did. A list that names something this machine lacks shows it as
"(not on this machine)" instead of writing its first entry back.

Projects and PixInsight

  • PixInsight reads the XISF's solution the right way up. WCS keywords do
    not say which way their rows run, so PixInsight guesses, and it guessed right
    only when north pointed into the upper half of the frame. Otherwise the
    solution came out mirrored and SPCC could not match a star. The XISF now
    carries PixInsight's own astrometric solution beside the keywords. The
    rotation matches the one PixInsight reports, where a north-up frame used to
    read -179 degrees, and ordinary frames are no longer called mirrored.
  • An unpacked project can be seasoned. Its pictures were filed as the Season's
    output, so the Season found no stack and said to cook first.
  • Seasoning without naming a Line runs the ticket's own Line when it has one,
    the one a project was unpacked with or the last file run. It used to run the
    measured starter over your project's pictures.
  • A packed project carries its seasoned picture as a thumbnail, is no longer
    titled after the first filter it was handed, and holds a preset once however
    many steps use it.
  • Show in Explorer opens the project's folder when its path has a space in it.
    It opened Documents.
  • Scale spread called the softest frame the best one, by ranking four metrics
    that are better small as if bigger were better.

Steps that did not match their own description

Writing each step's Menu page turned up behaviour that disagreed with what the
step said it did. Fixed:

  • Crop's Auto measured before its quarter turns, and an angle with no box
    turned the picture the opposite way from a boxed one.
  • Combine filters lined unequal sizes up by their corners, and gave its stars
    the gains before matching them away.
  • Align channels moved each channel the opposite way from its numbers' names.
    A positive red shift down now moves red down, and Lines saved before come out
    the same as they did. The last column no longer stays behind on a shift down,
    and a new toggle trims the edge a shift uncovers.
  • Glow thresholded each channel on its own and coloured its light.
  • A Mask stopped applying below a Resample or a Crop without a word.
  • Resample read four pixels in sixteen at a quarter.
  • Star stretch's Auto left the hard default on stars already at one.
  • Saturation's fade sat under a stretched sky.
  • The masked Stretch landed the sky short while its note said it had arrived.
  • Star cores met one channel's clip level with another channel's sky.
  • Add stars refused mono stars on colour, said nothing when one half was still
    linear, and replayed crops in full-size pixels on a proxy.
  • A proxy measured tiles, radii and star boxes at a different scale from the
    export.
  • An outside tool that refused the float file ran again on sixteen bits, which
    divided a picture peaking past one by its peak and never gave it back. The
    picture is scaled back now, only a refusal is retried (a timeout that already
    cost half an hour is not), and the step shows a warning on its chip.
  • The measured starter Line no longer includes Colour. A default cannot know
    what a picture's first step should be, so the Stretch page says to put Colour
    first when yours needs it.

Smaller things

  • The Serve's earlier-nights card is gone. A session of several nights does
    that job now.
  • HDR's "only part of the range" tick shows its three dials as soon as you
    tick it.
  • Sharpen's warning names the step that did the stretching. On a star Line
    that is Star stretch, and the old warning sent you looking for a Stretch.
  • Each picture keeps its place on the Line's strip when you visit a shorter
    one and come back.
  • About thirty-five tooltips lost a paragraph justifying the control to
    someone who never asked. Seventeen strings named a program this app is not,
    and no longer do; the programs it drives keep their names. "Also export each
    channel on its own" is now "Export channels separately".

Once, after updating

  • Thirteen steps changed version, so each Line recomputes them the first time
    it runs.
  • Every saved planetary measurement is made once more. A file written before
    cannot say whether it covered the crop or the whole frame.
  • Settings, under AI clients, names an installed skill older than the app's
    own; its button moves you to skill 2.
  • Restart any AI client that was connected to the app.

macOS: the app is not signed by Apple, so the first launch is
refused. One line clears it, and it is only ever needed once:

xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app

Windows: SmartScreen will warn for the same reason - More info,
then Run anyway.

DeAstroStacker skill 3.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 12:24

The skill DeAstroStacker installs into an AI client, version
3.1.0.

Fetched by the app itself: Settings → AI clients and the command
line → Skill, on the row of the client you want taught. The zip is
also what Claude Desktop wants uploaded by hand, since it has no
folder to write to.

This tag always holds the newest skill of its major version; it is
replaced in place rather than released beside, so the address the
app reads never goes stale. Each major has its own tag - skill for
1.x, skill-N after - and an app only reads the one its own skill
belongs to.

DeAstroStacker skill 2.2.1

Choose a tag to compare

@github-actions github-actions released this 23 Sep 22:13

The skill DeAstroStacker installs into an AI client, version
2.2.1.

Fetched by the app itself: Settings → AI clients and the command
line → Skill, on the row of the client you want taught. The zip is
also what Claude Desktop wants uploaded by hand, since it has no
folder to write to.

This tag always holds the newest skill of its major version; it is
replaced in place rather than released beside, so the address the
app reads never goes stale. Each major has its own tag - skill for
1.x, skill-N after - and an app only reads the one its own skill
belongs to.

DeAstroStacker 0.11.2

Choose a tag to compare

@github-actions github-actions released this 22 Sep 11:49

DeAstroStacker 0.11.2.

macOS: the app is not signed by Apple, so the first launch is
refused. One line clears it, and it is only ever needed once:

xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app

Windows: SmartScreen will warn for the same reason - More info,
then Run anyway.

DeAstroStacker skill 1.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 11:44

The skill DeAstroStacker installs into an AI client, version
1.0.0.

Fetched by the app itself: Settings → AI clients and the command
line → Skill, on the row of the client you want taught. The zip is
also what Claude Desktop wants uploaded by hand, since it has no
folder to write to.

This tag always holds the newest skill; it is replaced in place
rather than released beside, so the address the app reads never goes
stale.

DeAstroStacker 0.8.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 15:24

DeAstroStacker 0.8.1. Everything since 0.6.2 — mosaics, a whole night of
planetary recordings as one picture, one Season for both pipelines, live
stacking from N.I.N.A., and a gradient step that stops eating the nebula.

Mosaics

A mosaic is stacked straight into the mosaic. Not a master per panel merged
afterwards — that is two rounds of resampling, two sets of rejection statistics
that never saw each other, and a seam solved by a tool that has forgotten which
frames were involved. One output big enough for every pointing, one alignment
solve per frame, one integration, one sky solved across the whole thing, and
the picture filling in on screen as the frames arrive.

The words: the output is a slab, one pointing's worth of frames is a
patch. A walk — a Seestar or a Dwarf in framing mode — is a mosaic whose
patches nobody laid out.

  • Pointings are worked out from the headers alone, and a pointing with no
    WCS is plate-solved rather than dropped.
  • The sky is levelled per channel. It used to measure one luminance number
    per block and move all three channels by it, so every colour difference
    between pointings survived intact — nothing on a linear frame, and three
    different colours after a stretch. Across a real 3×1 of Rho Ophiuchi, B/G ran
    0.675 to 0.711 and R/G 0.876 to 0.846.
  • Patches cross-fade into each other. A changeover is a line however level
    it is: on one side of a row the mean is over two pointings' frames and on the
    other over one's, and the couple of ADU they still disagree about arrives all
    at once along eleven thousand pixels. Over the last two hundred pixels of its
    coverage a frame is worth progressively less and its neighbour more. Measured
    on that same 3×1: the worst rim's biggest bin-to-bin jump went from 3.15 ADU
    to 0.42, inside the 0.49–1.10 the slab shows along rows with no seam at all.
  • The levelling correction now carries its own geometry. It was grown to full
    size with a plain resize, which is right for a single field and wrong on a
    slab, where the blocks are laid on the slab and the window starts wherever
    the placement put it — so the surface slid by up to half a block, in opposite
    directions at the two ends.

A whole night of planetary recordings, as one picture

Forty clips of Jupiter are two different things depending on what was wanted,
and nothing in the files says which. Stacking each on its own has always been
one press; stacking them as one is new.

  • The frame with nothing in it used to win the ranking. A frame was scored
    as contrast over brightness squared, and when the cloud took a frame the
    divisor goes to nearly zero: on a synthetic Jupiter, sky glow and read noise
    scored 5159 against the best real frame's 243. Not merely kept — ranked
    first, which is the frame the whole recording is stabilised onto. There is
    a floor under the divisor now, and a discard: frames with nothing in them
    and frames the stabilisation could not solve leave the ranking entirely, so
    "keep the best 25%" is 25% of what is left. The Scale has a Discarded column
    and draws them as a band along the bottom of the seeing curve.
  • The reference is capped at a hundred frames. It was the best ten per cent
    averaged, so forty thousand frames meant four thousand reads — and The Cook
    paid twice, because the preview built one and the stack built its own. Noise
    in a mean falls as the square root of the count, so everything past the first
    hundred bought nothing measurable and made the reference blunter, since
    what a ten per cent share adds up there is the mediocre tail of the ranking.
  • A mono night is several reels, and one of them is colour.

One Season, for both pipelines

There were two Seasons. One composed three mono stacks into a colour picture
and stopped; the other, a rail click away, had twenty-six operations, palettes,
masks, PixelMath, two lanes and a crash-proof Icebox. Two screens, one of them
a decade behind the other, for the same job. There is one now.

Wavelets were six sliders over the same grain. Every slider maxed moved a
soft Venus by three per cent, and the stack was not the problem: the six bands
were spaced one pixel to two and a half, so all six were the same detail and
the sliders pushed it eight times over. The default spacing was linear with a
step of zero. It is the à trous transform now — B3-spline taps with the taps
moved twice as far apart at each scale — which is what every other program
computes, and the panel's labels of 1, 2, 3, 5, 7, 10 are now what it does.

The last screen stops stretching a planet. The Serve rendered through a
throwaway deep-sky autostretch, which on a planet saturates the disc and turns
the sky around it into a blizzard, with no control anywhere to turn it off. It
carries the same Show bar the Season and both planetary screens have.

The gradient step

Every model this app had would subtract the thing being photographed, and so
would GraXpert, which decides a planetary nebula's inner disk is background.
They fail in the same place: a tile is called an object when it stands above
the middle of the tile map, and when the target covers most of the field the
target is the middle of the tile map.

Automatic DBE is a fourth model on the Gradient step. Samples are clipped
against its own fitted surface rather than the global middle, refit, and
asked again; the model is a low-degree trend plus a thin-plate spline of
what the samples have left over from it, so it follows a lumpy sky like a local
model and cannot be talked into following the target. Measured on a synthetic
Helix — a disk covering most of the frame with sky only at the corners — the
nebula's height against the corners survives at:

model left standing
polynomial, degree 2 47%
polynomial, degree 4 −7%, which is to say a hole
local 43%
Automatic DBE 99.8%

Exclusion zones are for the nebula rejection cannot find — large, faint, no
further above the sky than the sky glow varies. Draw free-hand loops on the
picture and no sample is taken inside them. On a frame like that, 73% survives
on rejection alone and 97% with a loop round it, where a local model flattens
it to nothing. Draw generously: an object's outskirts reach past the part of it
you can see, and a sample taken in them is still a sample taken off the object.

Show BG draws the surface being removed instead of the picture, the way the
Mask tick draws the mask a step builds — for every method, GraXpert's included.
A model that curved up into a nebula looks exactly like a model that followed
the sky, until you look at it. Show samples draws where the sky is being
measured and what became of each one: kept, thrown out for sitting on
something, or inside a zone.

Calibration

  • A dark flat was being treated as a dark. Anything whose type said "dark"
    went to the darks, and a dark flat says both words — so a catch holding
    thirty 300-second darks and twenty 0.04-second dark flats built one master
    out of all fifty and subtracted the average from every light. It is its own
    kind of frame now, and it is what calibrates the flats in preference to the
    bias.
  • Keep masters writes the four out beside the stack, each saying what it is,
    how many frames went into it, and the camera, gain, offset, temperature,
    exposure, binning and filter it belongs to. There is no library and no
    manager: a master is a frame you catch, so the way to reuse one is to point
    The Catch at that folder.
  • A caught master is used as it is rather than being rebuilt — PixInsight's
    and WBPP's too. The frame table says Dark · master of 30.

Watching a stack happen

  • A frame now says where it came down. An align was a bar and a file name
    for however long it took. It draws the frame's own outline where it landed,
    the stars its fit agreed with the reference about, and behind it the faint
    trail of everything already down — in the output's own pixels, so the
    outlines sit exactly over the picture forming underneath. On a mosaic this is
    the slab assembling itself in the first minute rather than the fourth hour.
  • The landing brings its own pixels with it, about a hundred kilobytes a
    frame, so a mosaic with levelling on has something to show while its frames
    are still being solved.
  • Matched stars are drawn as corner brackets rather than rings. A closed
    circle covers the star it is pointing at, so a hundred of them read as a haze
    over the picture rather than as a set of marks.

Live stacking from N.I.N.A.

The stack stays open while the night keeps adding to it, previews travel in the
message rather than through a folder, and a preview that will not write says
why and tries again first.

Fixes worth naming

  • A cleared Catch left the whole session behind it. A mosaic of Rho was
    cooked, Clear all pressed, a folder of M31 dropped in, and The Cook died in
    three seconds on an alignment error that had nothing to do with the new
    frames: the alignment reference is settled once per session, which is the
    whole point when a second filter has to land on the first one's pixels, and
    exactly wrong when the list has been swapped for a different object.
  • The Season's store threw away results to pay for their own files. On a
    21-step Line over M31 at 8250×12400, clicking from step three to step six ran
    all six from step one, every time. Spilling a result to disk to make room in
    memory put the disk over budget, and the next line forgot the result that had
    just been spilled.
  • Add stars put them back in the wrong place, twice over: a picture's own
    stars already carry every crop above the fork, so replaying those cut them a
    second time. And "it came out the same size" stood in for "it did nothing",
    which a mirror or a half turn of a square frame is not.
  • Whole right angles are three buttons under the pi...
Read more

DeAstroStacker 0.6.2

Choose a tag to compare

@github-actions github-actions released this 05 Sep 16:21

DeAstroStacker 0.6.2.

New: Cosmic Clarity

Seti Astro's Cosmic Clarity now drives two steps of the Season, and it
is free — no licence to buy.

  • Sharpen gains a Cosmic Clarity method. Stars and nebulosity are two
    separate networks in it, run together or either on its own, with their
    own amounts. It can measure the star profile per piece of the picture
    and pick the models to match, or take a radius by hand.
  • Denoise gains one too: strength, and a say in what is quieted —
    the brightness alone, the whole picture, or each channel separately.

Point Settings → Tools at setiastrocosmicclarity.exe once. Its denoiser
is a second program in the same folder and is found from that, so there is
nothing else to fill in. Both steps stay on the Line and say so on their
chip when the tool is not installed, exactly as the other outside tools do.

One thing worth knowing: Cosmic Clarity reads and writes the input and
output folders beside its own executable rather than taking file paths.
Leave that input folder empty — if there is already work queued in it, the
step will say so and do nothing rather than process the queue.

macOS: the app is not signed by Apple, so the first launch is
refused. One line clears it, and it is only ever needed once:

xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app

Windows: SmartScreen will warn for the same reason - More info,
then Run anyway.

DeAstroStacker 0.6.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 10:07

DeAstroStacker 0.6.1.

macOS: the app is not signed by Apple, so the first launch is
refused. One line clears it, and it is only ever needed once:

xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app

Windows: SmartScreen will warn for the same reason - More info,
then Run anyway.