Node Editor Overhaul

Hi everyone,
it seems like the node editor design is heading into a different direction than my original design. For instance, the original layout was arranged from left to right, but the new layout uses top to bottom. The old design admittedly used up more screen space, but the new design is difficult to follow as edges leave a node on the right side and connect to the node below from the left side. I think now it makes sense to commit to a full vertical layout. With minimal changes I got the following style:


I didn’t do this previously because I always wanted to show the name of the ports, but in 99% of the cases they are named ‘output/input-i’ anyways, and for the rest we can provide the name as a tooltip.

I recently developed another qt-based node editor for PyCinema, and there it turned out that animations greatly help with perceiving layout updates. So I strongly suggest we should include animations here as well.

I can work on this and open a MR, but first I wanted to get some feedback on the design before I spend time on this.


1 Like

@Charles_Gueunet @timothee.chabat @mwestphal

Hello Jonas,

Do you get a testable branch ? I would love to try this out :slight_smile:
One question, when a new node is created, currently it is positioned on the right of the parent node, did you update this behavior too ?

Hi Charles,
I will upload the branch asap.

With the new layout everything is appended vertically. Previously GraphViz computed a horizontal layout only for the filters, and then we used a heuristic to plot view/representation nodes. Since now all nodes (filters+representations+views) are considered by GraphViz, the resulting layouts look much better than before.

Hi everyone,
I uploaded the node_editor branch on my paraview fork:

This should just be considered a mockup because some things are solved quick and dirty. However, I notices several bugs in the original code while I was working on this. I will just post them here for record keeping:

  1. It is no longer possible to select an output port by clicking on the port disc or the name.
  2. It seems the node and edge registry contains dead nodes/edges left from previous representations.
  3. If I remove the input of the elevation filter and then run it I would suspect that it will fail and complain about a missing input. However, the pipeline does not seem to be correctly disconnected and the filter still has a pointer to the old input. I also verified this behavior with a custom TTK filter. I assume this is not a node editor bug and actually a pipeline bug. This might only now become apparent since the node editor makes it possible to reconnect ports.

Quick feedback:

  1. The new version is beautiful, I love the look and the flat background

  2. The layout animation is really nice, the auto-layout is now much more usable.

  3. I do not see the annotation features anymore, is it still available ?

  4. Node editor is now able to save layout in a separate file along paraview state files, is it still supported ?

  5. Output port is used both for reconnecting filters and for hiding / showing filters result, this make the current branch really hard to use :slight_smile:

For the bug with the disconnecting filter, indeed I would need to check into more details what happens here.