Node editors are all the rage especially in image processing pipelines and shader programming in game engines. For example, here's a stackoverflow question about implementing a Blender-like node editor for python. They also appear in data science, such as in KNIME and Orange.
I'm wondering if Mathematica would benefit from a node editor in some cases. I rushed into creating something visually similar, but there are many quirks in Mathematica's graphics and there are also other things to consider like what data structures to use for the nodes and connections. Then there is the problem of being able to dynamically move around the nodes and drag nodes, extend out connections / delete connections etc.
- Are there existing implementations? If not, is there a way to build a more dynamically adjustable
Graph
and 'execute' it? We can getTreeForm[Plus[Times[x, y], z]]
for instance, but how could we build up that graph in a drag-and-drop way? - Is it worth pursuing in Mathematica, or would it be better to implement in Python, compile the graph down into Mathematica expressions, and call via the client library?