Hello everyone!
It has been a while. Some of you might remember that I was working on a node-based image editor for Windows and Linux.
I took a break from the project due to other commitments, but have recently picked it up again and I think I am on a good path to a first MVP version.
This is what it looks like at the moment:
I will be publishing new releases roughly monthly, and the latest one can be found here: https://github.com/ttddee/Cascade/releases
So what is this about?
Well, an editor for still images like I always wanted, back when I was working as a compositor in VFX.
Cascade is written in C++, using Qt with a Vulkan rendering backend. The whole rendering pipeline lives on the GPU and all pixel data is stored and processed in 32 bits per channel linear space. All image processing operations are implemented as GLSL shaders.
I have recently added a node called “GLSL Shader” that comes with a little code editor and lets you experiment with writing your own shader effects. A little bit like Shadertoy, but for still images.
Other than that, the most common file formats are supported and so are color spaces.
What else is planned?
In order to get to a version that I would call a Minimum Viable Product, I have the following things on the list:
- Add a UI overlay on top of the rendered image to improve the user experience. A simple example is having draggable handles on the Crop Node, instead of having to type numbers into a box.
- Add a bunch of nodes that provide essential operations/effects.
- Implement batch processing, so that whole sequences of images can be processed.
- Add more file formats and have the ability to set export settings for different formats. Like jpg compression etc.
- Improve the usability of the node graph. Little things like automatic snapping of connections, being able to deactivate nodes, dropping nodes onto existing connections to auto-connect them. Make it feel less clunky overall.
- Have a way to create masks.
And then?
The list of would-be-nice-to-have features is long
I’ve been experimenting with a paint engine in Vulkan. I don’t imagine a sophisticated paint system but something simple for painting masks and clone-stamping and such. What I have basically works, I just have to find the time to dive into it again.
Another recent experiment was adding support for neural network algorithms with the Kompute framework. For example things like super-resolution could be fancy.
And of course adding all those other things that make a decent raster image editor, haha.
I previously added support for GMIC filters. Unfortunately I have disabled that feature for now, due to technical reasons. The code is there though and I hope to get it to work like it should in the future.
---------------------------------------
That’s it for now, I’ll post noteworthy updates here. Feedback is much appreciated! Or if you need help, want to contribute there is a link to the Discord server on the project Github page: https://github.com/ttddee/Cascade
Cheers