Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Cascade: Open-source Node-based image editor with GPU-acceleration (github.com/ttddee)
161 points by lastdong on March 13, 2022 | hide | past | favorite | 42 comments


> Cascade is a node-based image editor with GPU-acceleration.

Wrong capitalization.


Yeah that's an unfortunate typo.


I got a headache trying to comprehend how that would even work


If you think so, please spend some more effort and provide the correct capitalization, as well.


He did. He decapitalized "Node" which makes it more clear that it's not a reference to NodeJS


As someone who uses Blender for (GPU accelerated) node-based image manipulation (along with all the other things it brings to the table, like video editing etc.), what are the benefits of dedicated node-based image editors like this one? Serious question, not a rant. I am genuinely curious.


One datapoint: Color manipulation or color grading in film is mostly done using Blackmagic Davinci Resolve (runs under Linux, can also edit, mix sound etc, worth checking out).

Davinci is a nose based software as well (for the color part). The advantage is of course that you can easily copy graphs, parts of graphs or nodes from one picture to another. In a professional setting that means you can create one calibration node for your camera, one node to adjust differences between different pictures, one to use a certain look etc. You can combine masks from multiple nodes, do parallel color correction etc.


Are nodes conceptually distinct from effect layers or is the difference only in the way they are presented ?

One of the examples show a merge operation though, which involves a sequence and therefore would not be possible with just a stack of layers.


Unlike the effect layers, nodes can have multiple inputs. Also, in more advanced node systems, nodes can have types other than "Image", e.g. number, boolean, etc., and node inputs can accept those types.


Well one example would be a node that outputs HSV as seperate (greyscale) outputs, you could then operate parallel on all these strands and merge them together in a combine node that has 3 seperate inputs for HSV and gives you the full color again.

Practically nodes make it easier to deal with more complex operations than layers (e.g. operations wherebyou have multiple source images and/or multiple target images, like e.g. in compositing, CGI etc)


Not having to redo the entire chain of image operations from scratch if you mess up one step. The ability to reuse the chain of operations on a different image. The ability to tune / tweak the settings of each step without having to repeat the entire chain manually from the start. The ability to edit the chain of operations if you don't like the result, without having to re-execute the chain manually.

And, lastly, node-based systems can be incredibly fun, if done right.


I believe they were asking what was the point of a standalone system, as opposed to just using Blender which has a node-based image editor built in.


I knew Blender had a video editor, but I didn't know that Blender had a node-based image editor. Just did a quick Google search -- are you referring to Compositor?


Blender has a "generic" node-editor in a sense that you can use it for not just image manipulation but also for things like shaders or even manipulating geometry, although (of course) each have mostly their specific set of operations (nodes).


In theory, nothing, just specialization. This software is an open-source answer to the standard in the visual effects industry, Nuke https://www.foundry.com/products/nuke-family/nuke.

In the media industry, 2D and 3D roles employ very different skill sets, so while Blender could evolve to offer a robust package for compositors, this likely won't be their primary focus.


As someone who uses neither, my hope would be that a specialized tool has a smaller learning curve and possibly more capabilities in its niche.


I guess this tool can evolve to more specific image and photography functions, like touchup brushes to remove imperfections and image filters a la lightroom. Having a dedicated tool also means the UI can be better tuned to the photography workflow. Blender is brilliant and I love it but different tools can fill different needs, imo


> Cascade is written in C++

For those confused by the title.


Further confusing is that Open CASCADE

https://github.com/Open-Cascade-SAS

is also written in C++ and used to be called CAS.CADE before it was open-sourced

https://en.wikipedia.org/wiki/Open_Cascade_Technology#Histor...


It wouldn't be confusing if the title didn't use a capital letter for node-based.


i think it was some kind of morbid curiosity that made me look anyways


Agree, many may never give this a look simply being "node-based" assuming it has anything to do with node.js


It got me. I went into the /src directory so I could find out if you could actually write a reasonable image editor in javascript, and was confused to find .cpp files.


Well, people succeed, e.g. https://www.photopea.com/.


How does this compare to a compositor like say Natron? https://github.com/NatronGitHub/Natron


Natron is older and more mature, but has less GPU acceleration because they started before Vulkan was usable.


Looks very interesting. I tried the Windows build, but I can't get it to show any preview image. Tried selecting nodes and double-clicking them -- nothing. Maybe it needs to recompile the shader manually, but I haven't found any GUI command or hotkey for that. Checked the log, but it looks OK, no errors.

UPD: I managed to get it to show the preview: 1) Delete the default nodes (Read Image and Write Image). 2) Create a Checkerboard node. 3) In its Properties, set Size to anything except "As Input".

You can then plug it into filter nodes (e.g. Directional Blur), but the preview is still fickle -- at some point it just disappears and never shows up again until I reset the project.


Hi! I am the creator of Cascade, thanks for trying it out! I would like to investigate the issue you are having with the preview.

When you load an image in a Read node and then press F4 (with the Read node selected), do you see the image?


The whole "node-based" vs "based on node" ambiguity is going to get annoying. Already makes it hard to find stuff on Github.


The UI text is impossible to read on my laptop. Looks like it ignores UI scaling settings and therefore is tiny on high-res screens.


This is something that I'd LOVE to use, yet I'm on Mac.

Would love to see Mac support at some point.


This looks like fun - I’m excited to try it out!


what is the meaning of "node-based" here?


Look at the screenshots in the repo - it refers to applying or stacking effects/edits based on a system of linked nodes, as used by color grading software such as Davinci Resolve, and also used by Blender I believe.


Which iirc, is contextually referred to as visual programming. Some notable examples I've briefly used include: PureData [0] and SunVox [1] and some dabbling in Bespoke Synth [2] and generative content of Nodes.io [3].

[0] https://puredata.info/

[1] https://warmplace.ru/soft/sunvox/

[2] https://www.bespokesynth.com/

[3] https://nodes.io/story/


Somewhat. This is true for the drag-and-drop interface and representation, but nodes here are an implementation detail IMO. Nodes are a subset of visual programming, and well-suited for representing functional and data-oriented processing pipelines.

In turn, these programming paradigms are well suited to hardware acceleration and distributed/multithreaded pipelines.

The underlying edition approach is called "non-destructive editing", as you can always remove some operations to find the original again.

When it comes to visual programming, the first example that comes to my mind is labview, which I find very unwieldy to work with. As a programmer, node editors are one of the very few visual programming methods I'm comfortable using (at least as long as the graphs stay relatively small).


I always found these editors to be a bit more cumbersome than just writing things in code. I do like the visual feedback in form of previews. Perhaps the optimal workflow would be a code-based editor with easy visualization of each stage, notebook style perhaps?


The way in which the effects are specified/applied

Photoshop/GIMP would be "layer-based"


This looks nice.

No Mac version, unfortunately. Perhaps due to Vulcan dependency.


Isn’t Vulkan compatible with macOS, though? MoltenVK is an implementation using Metal.


Perhaps, I've read that Vulkan on Mac is complicated, but it's not my field.


[flagged]


It's not just Rust projects, but it is right now where a lot of the interest is. A few years ago it was a lot of "written in Go" or "written in NodeJS", as those were the "hype" things.

Also it seems very off-topic complaint (even more than it would be anyways) in the discussion of a C++ project?




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: