Node based user interface

mberetta

Member
What about adding the ability to use a node based non destructive user interface to manage the “developing” process?

Every time I used software with node UI I found useful and productive because it allows me to toggle a node, move a branch before or after a process and having a clear overview to the workflow.


I used this kind of interface for the first time with Nothing Real’s Shake twenty years ago and I remember that even though it was designed for video compositing, I often used it for colour correction on photographs because the interface was more powerful than Photoshop correction layers (I don’t remember it there was already non destructive correction layers or not in 2002).

Other software I use where I find useful node interfaces are Origami Studio
origami-interface@2x.png



DaVinci Resolve Fusion
nodes-inset-md.jpg



And procedural nodes in Blender
addons_io_node_shaders_info-example.png



The most of the nodes could be processes with one input and one output but there could be some nodes like PixelMath, ChannelCombination with multiple inputs.

Editing a node at the top of the flow could be heavy to calculate, but there could be an alert before editing the “non last” node. A caching system could help to improve the performances If a node is temporarily disabled or modified and then returned to its previous state.
 
  • Like
Reactions: dld
IMHO, this is a great idea, briefly mentioned internally as a concept, since this well reflects the editing process: a non-linear set of interconnected operations.
One main obstacle is scripting: the freedom that we have in script operations that manipulate the images will be broken and we would need to create an abstraction that makes each scripted operation represented as a block, with a bit of effort on the developer side. This is non-trivial.

The interesting part of this approach, to me, is that we would be able to change any parameter at any point of the graph and have the whole dependent results being regenerated, of course at the price of re-executing all dependent processes. This enables a new level of possibility in terms of experimenting and tuning, and it would be more useful than editing back the image history.
Of course, the graph-like overview of the overall processing is also a great feature.

As you can imagine, the effort to implement all of that would require 100% of our commitment for months. This is the biggest challenge, this idea should become the top-priority task while now the to-do list is already quite long and other tasks have higher priority.

But, maybe, one day... :)
 
Back
Top