Twily!
After working so much with stuff like Blender, NixOS, Docker Compose, and now trying out GNU Radio recently (read here) my mind natually shifted into non-linear, declarative and reproducible (inb4 uga buga nixos users when they have to reproduce - I actually have done that ehe) workflows. I sold my astrophotography equipment a couple of years ago to be able to afford a cool ass travel to Jordan (beautiful country btw) but since I'm in a way better position financially now, I was thinking of slowly returning to this awesome hobby.
the fucking astro software
When browsing through a large catalog of telescopes, mounts and various cameras, it all reminded me of one thing - that I absolutely HATE post-processing software for astrophotography. It's always at least like 3 of these things: it looks like it was done by someone who knows nothing about user-friendly design, it's closed-source, it's fucking expensive, it's only for one subtype for astrophotography (eg. DSO vs planetary imaging) or it's open-source but even more user-unfriendly.
| Software | Pros | Cons |
|---|---|---|
| PixInsight | Has a lot of features, it's the industry standard of astrophotography processing software. Is able to process DSO, planetary, narrowband images and all the other types of data. It has a FUCKTON of functionality, it's flexible and scriptable, has a big community | Closed-source, EXPENSIVE AF, UI is really weird and the program has an overall steep learning curve, it's really unintuitive |
| Siril | FOSS, can be used to process a normal DSO workflow. Has even some functions for scientific analysis, works pretty well! | The UI is insanely bad, I wish it wasn't made in GTK ugh, afaik the functionality is not that big as in PixInsight |
| DeepSkyStacker | Very user-friendly, I grew up with it, can be used to quickly stack your data and not think about what's happening | Only usable for registration, stacking, so no post-processing. Also Windows-only |
| AstroPixelProcessor | Great for mosaics and color calibration, cross-platform, can be used for great DSO results | From what I saw, the UI, once again, feels like it was made by an engineer for other engineers - millions of settings, knobs, etc |
| AS!3 | Awesome for planetary astrophotography and not much else | Planetary AP only, Windows-only, closed-source |
| Registax | Even simpler for planetary astrophotography but quite clunky | Same as above, but also abandonware |
One thing that's common for all of this software is that the processing is almost always non-declarative and just so volatile. If you forgot to save your stack in Siril and processed it in a wrong way, overwriting any previous saves - good luck changing anything, your only hope is the undo function. Same with all the other programs. So one night (a couple of days ago) I wanted to go to sleep and a random thought appeared in my head!
Here's where Twily comes in!
What if every processing step was both a declarative node placed in a directed acyclic graph AND was a hashed hit in the cache? What if you could make one nice workflow and then reuse or modify it really easily to work with other pics? That's exactly what I want to do with Twily (the name comes from Twilight Sparkle ofc) eventually. I want to make a memory-safe, modular and well thought-out astrophotography processing engine, with both CLI and GUI frontends. The core is a separate thing from all the GUI and CLI actions, and every node is reusable, modular and easy to modify in the source code! Changing a setting in a node causes all the downstream nodes to recalculate, but will leave all the nodes behind it unchanged.
The goal is to first get an alpha version up and running, and my plan is to deliver (in 1-2 months) a simple, but working MVP. No hardcore algorithms for the start, just something that allows the user to go through a simple DSO workflow. I hope this project grows, brings in new users and contributors, and puts an end to expensive, inaccessible and commercialized astrophotography software. I also hope it will be the ultimate all-in-one program for all types of astrophotography - DSO with long exposures, DSO with lucky imaging, planetary imaging, lunar/solar processing, creating mosaics, etc. This hobby is fucking expensive to begin with, and having to work with awfully expensive or unintuitive software makes it even harder to get into.
You can follow the progress on my git, I also opened up a GitHub repo so that other users can create issues and contribute easily!