Some thoughts, praise, and (hopefully constructive) feedback on APP
Dear AstroPixelProcessor community and dear Mabula and APP Team,
I've been playing with APP for a while now and I love it. I've written down some thoughts that I wanted to share with you. I hope they will be read as the constructive feedback that it is intended to be (coming from someone with decades of UI development experience), and let me start by saying that the software is brilliant, and has changed the way I do astrophotography for the better.
The pre-processing flow
- Everything from the generation of Master files and Bad Pixel Maps, to star detection and registration, to stacking, work very well with very good feedback from the software on what is currently being done, what effect the parameters will have, etc.
- Mosaicing and combining the results from multiple sessions works like a charm, the integration of different patches together is seamless and gorgeous
- The detailed list on the bottom with the results of analysis on the different images is very informative and clear
- The Tooltips on all the parameter controls (widgets, comboboxes, ...) on the left pane give a very clear and easily understandable explanation of what the parameter does and (something rare) gives advice on what to use in different circumstances
The processing tools
- Background neutralisation is very consistent and provides a fantastic starting point for further processing
- Light Pollution Removal : the result's quality is impressive, well beyond what photoshop tools (e.g. Background XTerminator) or PI are able to do without dedicating a lot longer to the process
- Calibrate Star Colors : with a very quick effort it takes care of most if not all of the color tinges that might be left over from BG neutralisation
- Oh my, the quality of the images straight out of pre-processing 😍
What is less great
It is difficult to provide a feedback that is not to be read as a negative critique, and I'd like to start by re-stating my complete admiration for the fantastic work that Mabula and his team have been and is still doing. The quality of the engine underlying all the image processing is top notch, and right now I have not found anything coming close to it in terms of how easily one can get great results without tinkering endlessly with a lot of obscure parameters. So here are my gripes with the software, please read them while keeping in mind that this software is great and I truly like it.
- As stated above, the workflow within a single session is great. But as has been said and said again in this forum, it'd be even better if it could be stopped and resumed after different steps. That said, I am quite aware that this very point is VERY HARD to actually program (my POOMA estimate is several weeks if focusing on this point alone, disregarding everything else, plus weeks more making sure it works on all supported OSs)
- Saving "Calibrated and registered images" is a nice option, but I havent really found how to re-load the images created and NOT have to re-analyse stars and re-register them. It looks as an option for "please continue your work elsewhere" rather than an intermediary step to be resumed within APP (I'll be very happy to stand corrected here if I'm wrong!)
The Processing and Preprocessing
- Integrating a lot of images can result in an "out of memory" message. That's ok, there's no free lunch. However it might be nice to be aware of the risk of running out of memory before spending a lot of time analysing, registering, normalising just to be notified that "too bad, you have to start all over again"
- Cropping and Rotating 😀 <-- EDIT: I know those are available on the Batch Process tools, but in the workflow that's slightly awkward, it would be awesome to have them both combined into one tool
The Graphical Interface
- The interface for Processing the image (right hand side of the interface) is needlessly cryptic : you can see the desire to have everything in one place, but since in the end you still have to scroll vertically through all the option groups, this is not a real win. In contrast the loss of clarity and visibility from really awkward 1- or 2-letter acronyms for each of the parameters is difficult to justify.
- The "help" section for the Processing pane is bad to read, especially in contrast to the quality of the pre-processing help; it also does not really match the order of the parameters (it is opened by a button that appears midway through the option pane, but describes all options from the top, which makes things a bit confusing.
- The Sliders for adapting the parameters are wonky to say the least. The buttons that are supposed to "scale" the slider range are a good idea, but they require learning to use sliders in a completely new way: if you "limit" the range (say from 0.03 to 0.04) one would expect that moving the slider all the way to the right would hit 0.04. Instead there is some kind of acceleration process that makes it very unintuitive, and most importantly very difficult to come back to the initial value. I can surmise that the way the slider is intended to be used is not by clicking and dragging back and forth, but by small pushes left or right, quickly clicking and unclicking it in small steps. (Please be aware that this is not the way 100% of people think a slider works). Also, it's hell on a trackpad.
- The lack of manual editing of the processing parameters or undos makes the processing pane frustrating to use. The result is that I use very little of it and prefer to switch to a more reliable tool (photoshop), which is a shame as the response to good parameters seems to be much better in APP.
How could this be improved?
I'll start by mentioning that I'm aware of how difficult it is to develop a good user interface that is functional but also maintainable in the long run. The serialisation of memory objects is a pain and its complexity is only increased by the fact that the actual things in memory are evolving with the software itself. Making sure that all new changes do not break everything else, and that the entire program still runs on all the supported system only adds another layer of challenge.
However I am also aware of how easy it is to develop some other things, and of the fact that it is often boring as hell to do them. We are all human, and if we need to choose between adding a new processing tool, or tweaking and perfecting the response of an algorithm to some parameters, we'd probably rather do that as it is going to be easier to motivate yourself than writing the procedures that save a text file with a list of the currently loaded images, and have it re-load when the software starts up again. Please note that I am not at all questioning the deontological dedication of the APP development process (the quality and breadth of features of a software that is basically just one year old speak for themselves), but it's honest to admit that there is some leeway in how things are approached, and the human factor does play a role in these decisions.
In addition, I believe that the mindset and attitude of the developers can heavily influence the perceived priority of a specific feature over another, so a more technically-minded developer might find the aforementioned tweak to the algorithm more crucial than a quality-of-life improvement that would make a massive difference in the usability of the software for its users. I have been the perpetrator of this very sin very often myself, only sometimes realising that the fact that I was able to learn and use my own interfaces very easily didn't mean that others would or should do as much with the same ease.
Things that I would prioritise if it were up to me:
- A Save Current List feature : Just save a text file with all the images currently on the list in the lower pane, to be reloaded later on. No need to save the intermediary analysis/registration, etc steps. (although that would obviously be awesome too 🤤 )
- Space out the Processing parameters (right pane) and use actual names for the parameters. This is not just for novices: after spending a reasonable amount of time with APP I still have to stop and read the different 2-letter labels to find out what I need to adjust. Also, the very tight stacking of the sliders and labels makes it easy to confuse a parameter label with the slider below it (rather than the one above)
- Either change the way the slider clamping buttons work, or add a helper explaining that "this tool is not intended to be used like all other sliders in the softwares you are used to"
- Revamp the help section for parameters entirely, taking example from the fantastic execution of the help tooltips in the pre-processing section
- Add a warning box that memory might not be enough before launching the integration step and ask if it should proceed anyway
The comments I've made here should be taken with the following statement in mind:
This software is so great at doing what it does, that the only thing that bothers me are its quality-of-life limitations.
I've stopped using other software because APP is just too good for pre-processing and the initial processing of images, and the quality of its output is great per se, and outstanding if we take into account the time it would take on other software to achieve the same results. Moreover, APP is a ridiculously "young" software for its quality: all other software I've worked with having been developed, improved, updated at least for five times more years and by a much larger team of developers.
EDIT: I've noticed that I should probably have posted this in the development section of the forum, my apologies and feel free to move this where it belongs!
I'm sure Mabula (@mabula-admin) will have a thought or two about your suggestions, but I already wanted to thank you for this extensive analysis! Don't worry about providing criticism. These days people indeed take it as an attack way too soon, but I'm very much used to it having worked in science (and Mabula as well). It something that should be normal and if it's constructive, even better! So again, thanks for that.
I think most of what you're pointing out seems valid, I'll wait a bit for Mabula to reply in more detail. 🙂
I do agree with most, if not, all feedback from @b4silio but if I have to select one improvement would be the ability to save/load the workspace i.e.:
- Image list and their attributes
- UI settings for each module
This would allow us to go back and build exactly (not pixel by pixel as the algorithms improve and change between versions) but at least close to what we have done previously. To some degree this info is saved on the filenames.. but is incomplete and cumbersome to replicate back into the UI.
Having said that, overall APP is a great software.