4 ms·
Yay! More work on, and thought put into, visual scripting systems! This looks really great! I'm not sure I agree with the conclusions, nor the need for a diffe
by catapart 3y ago
Yay! More work on, and thought put into, visual scripting systems!
This looks really great! I'm not sure I agree with the conclusions, nor the need for a different system than what Blueprints or Geometry Nodes offer. Personally, I think both of those things are great save for the major (and infinitely complex) feature of "clean this board up". The nature of the graphs make it easy to see when code repeats or is doing too much, just so long as the graph, itself, is legible. So if you could have some smart snapping, to force devs to keep it tight, or if you could employ some kind of machine learning for cleaning it up into sensible data flows, I think most of the biggest complaints I've heard from people who actually use these systems, would be addressed.
That aside, I'm always open to a new way! I, again, don't think what was demo'd is any cleaner than Blueprints (especially not fond of all of those connection points. Bottom and top connections don't look tidy), but that is definitely in the eye of the beholder, and this appears to be a well-delivered first attempt, but a first attempt nonetheless, so I'll assume that whatever visual issues I have with it, the underlying scheme works well. Because, honestly, it looks like it does! As presented, I think the system would definitely work great and it would certainly make a few things easier than how they're handled elsewhere. I'll admit, 'curry it to a specific data type and then operate on that' is how I code anyway, so I'm biased toward liking it. But I like that methodology because I think it works exceptionally well, especially for work like rendering. So great work on both the full app and this whole new way of scripting!
- hermitcrab 3y ago> or if you could employ some kind of machine learning I'm not sure machine learning is appropriate for graph layout. What a good graph looks like is already well known: no overlapping nodes, minimum line crosses, not too much 'white space'. But doing this layout automatically is very hard (NP complete?).
- catapart 3y agoSorry if I was unclear: I just meant that we could employ tensor-based learning methodology, like ChatGPT uses, to parse the graph representations and understand not only their visual layout (ex: no lines crossing), but also their contexts (ex: group functions that all emit events near each other on the graph). Having a machine be able to know what you're trying to do and then clean it up to based on that would be great. Even better, if it could learn how you tend to organize things and pick up "configurations" from that. Adding in "reroute nodes" and stuff when things start looking too loose for your personal liking, or whatever.
- hermitcrab 3y agoWouldn't that need an awful lot of training data? And different people might have very approaches to laying out a graph, so all that training data would need to come from one person, wouldn't it?
- catapart 3y agoOh, for sure! It would need to be trained on the 'default' way of doing things, just like a linter has a default config. THEN it would need to train on how you code (pin ordering, reroute node layouts, loop layouts, etc), the entire time you work with it. And, of course, in order to train, you would need to be able to tell it "hey, don't do that; I know I did it here but don't mimic that" as well as "mimic this, every single time. Don't use the defaults". Those explicit commands are extremely important for handling the edge casing (similar to newline vs inline brace openings). But, honestly, that kind of thing is the only valuable future for AI that I see, as a creative. I don't need it to write my code for me, but I could sure as hell use it to handle all the tedious bullshit that we've cobbled together as far as tooling, CI, formatting and any other "had to do it this way to make machines understand it" half-measure we've had to take in the past century. The AIs that we see, now, which learn from a huge dataset and then stay mostly inert until the next big update are more toy-like in my figuring. They are standards to measure against and proofs of all kinds of very interesting and useful concepts. But the lasting/useful AIs will be the ones that train alongside your work and ONLY on your work (or, let's face it, the work done in your company that will be shared amongst all corporate employees so that all work can be done more efficiently) in order to provide you with what you would be trying to do anyway.
- CyberDildonics 3y agoThis doesn't make any sense. There are already lots of graph UIs that can auto layout. Why would you need 'tensor-based learning' to uncross lines?
- bmitc 3y ago> There are already lots of graph UIs that can auto layout. Do you have any references besides Graphviz? I haven't seen much that does anything interesting in terms of weighted or constraint-based layouts.
- xuhu 3y agoAligning related nodes regardless of the arcs between them is a big plus, and if ML can infer that automatically from case to case, it's probably worth considering using it for layout.