68 lines
3.6 KiB
Markdown
68 lines
3.6 KiB
Markdown
# Twily
|
|
A node-based astrophotography processing software, written in Rust.
|
|
|
|
*Photons are magic...*
|
|
|
|
## Status
|
|
Very early planning! Nothing is implemented just yet!
|
|
|
|
## What is Twily? (WIP)
|
|
Twily is a free and open-source astrophotography processing tool with one crucial detail that makes it stand out from other programs - it's built around a node-based workflow, rather than linear one. Every processing step, such as calibration, alignment, stacking or any of the post-processing steps is a node in a directed acyclic graph (DAG). You can connect the nodes however you want, tweak parameters and see updates in real-time! Change of settings in a node somewhere in the middle uses cached results from earlier nodes and updates all the later nodes recursively.
|
|
|
|
## Roadmap
|
|
This is a subject for major changes! I might add some stuff, remove it or put in different version. I haven't decided on versioning scheme either!
|
|
|
|
### v0.1 - the first usable release
|
|
CLI-only, without a GUI (yet), enough to successfully process a deep sky imaging session from raw FITS to a stretched result
|
|
|
|
- [x] Workspace structure
|
|
- [ ] Core types and node trait system
|
|
- [ ] DAG-based graph runtime with content-addressable cache
|
|
- [ ] FITS, TIFF, sequence loading
|
|
- [ ] Calibration: generating master darks, flats, bias
|
|
- [ ] Debayering
|
|
- [ ] Star detection and registration
|
|
- [ ] Image stacking
|
|
- [ ] Basic processing nodes: background extraction, stretch, curves, SCNR
|
|
- [ ] Masks: star mask, range mask
|
|
- [ ] CLI: `inspect`, `process`, `calibrate`, `stack`, `stretch`
|
|
- [ ] Pipeline files (`.twily`, RON/JSON format, GUI will use them too)
|
|
|
|
### v0.2 - GUI
|
|
Node editor written with egui on top of the v0.1 engine, no new algos.
|
|
|
|
### v0.3 - Advanced processing
|
|
Deconvolution, wavelet noise reduction, drizzle, color calibration, compound nodes and templates, and possibly more processing nodes
|
|
|
|
### v0.4 - Narrowband and LRGB
|
|
Channel mapping, HOO/SHO/LRGB/custom palletes, additional color calibration
|
|
|
|
### v0.5 - Planetary
|
|
SER/AVI loading, frame quality estimation, planetary alignment, wavelet sharpening, derotation
|
|
|
|
### v0.6 - Mosaics
|
|
Multi-panel registration, background blending. Also mosaics for solar and lunar imaging
|
|
|
|
### Other ideas
|
|
Plugins (scripting/native?), plate solving, annotation overlay, GPU acceleration, INDI integration, and many more stuff I'll figure out in the meantime
|
|
|
|
## Design principles (planned)
|
|
- **Nodes instead of a linear workflow.** Every operation is a reusable node, it's easy to make changes in your workflow in any place you desire without breaking stuff down the line. It's also possible to save your nice, cherrypicked workflow into a file, so that the exact same operations can be used for different images!
|
|
- **CLI first, then GUI.** The engine works without a GUI, so that it's easy to automate it or run on a headless server. GUI will be implemented later, when CLI matures and is stable.
|
|
- **Everything is cached!** No need to save intermediate files manually. Changing a parameter in a given node makes only downstream nodes recompute, which helps with processing time.
|
|
- **Written in 100% Rust.** It's memory-safe and the compiler catches a wide range of errors early during compile time.
|
|
|
|
## Building
|
|
Not yet!
|
|
|
|
## Contributing
|
|
Not yet, but planned!
|
|
|
|
## Uhhh the name...?
|
|
I named it after my favorite MLP character, Twilight Sparkle! It's short, easy to memorize and write and just fits so well!
|
|
|
|
## License
|
|
Twily is free software licensed under the [GNU General Public License v3.0](LICENSE).
|
|
|
|
You are free to use, modify, and distribute this software, provided that any derivative work is also distributed under the same license with full source code.
|