I have a few questions
- Is this inspired/based on the Blender node editor package?<p>Some stylistic choices look very much taken from there, even if some other details (eg font) look much more primitive<p>- If it’s not based on that, why?<p>Blander has an Excellent Python-based cross-platform ui which is completely open source. I’ve always thought it’s a crying shame that’s not available as a package to build desktop apps. And I think it would be very good to take things from there, like their very mature graph editor
Great work, I love node based uis! I'm still looking for an isolated minmal python package that soly does the backend part of these graph node frameworks like comfy, n8n, or node-red. I.e loading json & serialziing, executing nodes. Which also includes the various ways of processing nodes. Like topology sort, node executing queues. If you all know something lmk!
I can see some advantages of this kind of editor for specific contexts, like if you’re building a shader, this UI forces you to be purely functional without explicitly teaching purely functional concepts.<p>But it seems like there’s also a general feeling that this is easier than learning how to code, and I guess my question is… is it? Is this really a better idea than a simple to use API with a DSL (or just a simple language like Go or Lua). Is it just less intimidating to beginners?<p>You still have to learn the concepts and rules of the system, in addition to figuring out cable management. It seems to make documenting your “code” a lot harder. And now with AI assistants, you’re giving up even more by not working with text.
Hello, everyone! Creator and maintainer of Nodezator here!<p>Oh, so this post is the reason why the traffic for Nodezator's GitHub repo has been spiking today. I already replied to a few questions here, but I won't be able to do many more today. I'll try to answer all of them over the time though, so ask as much as you'd like. Thank you for taking a look at my tool and for all the feedback provided, it is much, genuinely appreciated.
FTA: <i>“For instance, this is all you need to turn numpy.save() into a node:<p><pre><code> from numpy import save
main_callable = save
third_party_import_text = 'from numpy import save'
</code></pre>
”</i><p>So, if you want to turn multiple Numpy methods into nodes, you’ll have to copy-paste-edit this?<p>Looks unergonomic and slow (repeatedly parsing the Numpy file, once for each node to create) to me.<p>I would think a single file<p><pre><code> from numpy import save,foo,bar,baz
</code></pre>
should be enough to more efficiently generate four versions of the above.<p>What do I overlook?
A good way to not only eliminate syntax errors (given the minimal typing), but also greatly reduce type errors (although from a glance I don't see mention of type-hint checks to ensure incompatible sockets aren't connectable). It bothers me that I see nothing about async support, nor reusing a graph as a node in another graph (after all, it's all function compositions). Maybe I'll try it, but I don't like to think of the hoops I may have to jump through to work around limitations.
Manual graph editors are extremely counter-productive for any program with more than a couple of dozens of nodes. All the code structuring issues still apply but now you also have a graph to maintain. And also you have an underlying framework which you have to understand (like in Node-RED). And you have versioning issues. And it's hard or impossible to write tests. And it might be difficult to share code across projects.<p>A better metaphor is a regular code editor which also shows your program as a graph in a sidebar and allows you to run quick simulations in a sandbox.
>We recommend Nodezator for intermediate Python users. Or, in case you are not a programmer, have an intermediate Python user next to you so that person can help you set up a no-code/low-code workflow for you.<p>Seems like they're missing a key market. As an actual programmer using this node editor is going to be slower then just writing code.<p>I want something like this , but for Rust or another difficult language. Python is so easy this doesn't feel needed.