5
$\begingroup$

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 get TreeForm[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?
$\endgroup$
2
4
$\begingroup$

Are there existing implementations?

There are two implementations that come to mind.

The first one has been "in development" for a long time now, and has yet not been released, but it might be worth taking a look at for someone headed down this path.

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?

My personal opinion is that a visual interface would be better off being implemented as for example an Electron app, that could run on top the Wolfram Engine. Introducing a dependency on the notebook interface doesn't seem very beneficial, but at the end of the day it's all about what technologies you want to work with.

$\endgroup$
1
  • $\begingroup$ The VisX one looks like exactly what I want. It's a pity it's not released. The Scratch one ugly but then Scratch is more of an educational tool. $\endgroup$ – flinty Oct 1 '20 at 16:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.