← All ideas
  • Published 21 Oct 2024

Programming language in addition to nodes.

The nodes are beautiful, like a poster on the wall for admiring. But for practical use they are very poorly suited. Even 10 lines of mathematical code of vector manipulation in the form of nodes turn into an unreadable mishmash of spaghetti.

In the screenshot, I've reorganized the nodes into a vertical sequence, which improves readability and extensibility. nodes.png

If the nodes were vertical in design, with inputs at the top and outputs at the bottom - it would improve programming. In the screenshot, Here vertical nodes of the vvvv language:

gammaintroscreenshot.png

Still, however, we can forget about large systems on nodes altogether. It is impossible to maintain and debug it. Why don't you make programming like LUA language? To begin with, you can make nodes that contain code and work like a node.

25%

Development Status: Open

Upvote 1 Downvote 3
iperov
21 Oct 2024

10 Comments

Lauloque

I don't clearly get what is the proposal here, could you elaborate on the following?

If the nodes were vertical in design, with inputs at the top and outputs at the bottom - it would improve programming. In the screenshot, Here vertical nodes of the vvvv language:

I don't see the functional difference with the current horizontal design.

Why don't you make programming like LUA language?

What does that mean exactly? Being able to do the same as nodes, but by programming? Wouldn't that be very niche? And also add a lot of extra work on the dev side?
Plus, although I'm no expert in the current depths of BPY, I believe you can achieve quite a lot using bmesh, or by manipulating the nodes through BPY ; why not that?

To begin with, you can make nodes that contain code and work like a node.

Like OSL shader nodes, but in other nodes?


On the choice of LUA language, I suspect the BF would prefer to stick to the ones already in Blender. See Can support for other scripting languages be added? - FAQ - Blender Developer Documentation

Also interesting to read from the same FAQ:
Can support for implementing nodes in Python be added? - FAQ - Blender Developer Documentation

1
iperov Author

you're not a developer, so I don't see the point in wasting time on you.

Lauloque

Quoting the RCS Home Page :

Share your idea with the community. Discuss it. Revise it. Flesh it out to the point that it's a well thought-out, actionable proposal that a Blender developer can work with.

But hey, you do you. Have a nice day tho.

1
ruslan2

I strongly disagree. Yes of course the code could be really shorter. But how to change variables and debug a system like geo nodes in the code I have no idea at all. yes I would like them to add scripts. so as not to write noodles from simple functions. but this is the only complaint about the existing nodes.

I'd say geometry nodes IS a language, but you need to learn how to express yourself through it. The diagram has to speak its function, its not just connecting stuff and that's it. Sloppy nodes is just BAD nodes. I'm not against what you propose, but i recommend you spend time learning this language before wanting it to be something else completely. Heres an article i wrote sometime ago:

blenderartists.org/t/node-beauty/1503102

Cheers!

iperov Author

it's a worst language.

Nodes have the lowest information density per square centimeter of pixels.

Instead of scrolling the code with one mouse wheel, you need to move on two axes.

Because of this, when reading nodes, you are essentially memorizing the algorithm in your brain, and already in your memory you are checking the algorithm.

The text has a more clear and compact form of the algorithm, which is quickly read and easily checked.

In nodes, you are like a mole, you can check only local coherent nodes, and you can't see the whole algorithm until you go through all nodes.

All of this slows the process down a lot.

At the moment it is faster for me to first program vector transformations in glsl (shadertoy) with text and then transfer them to nodes in blender.

Everything you have shown in the link is programmed in 5 compact readable lines of code that can be understood by middle school computer science students. There is no need to draw huge posters of spaghetti plates.

1

Sorry, you are wrong about this. I do very complex multi-layer systems. For that i have developed my own visual workflow, to keep things readable from a distance. When debugging or working with others you need to keep it readable. Most of the information IS the diagram itself. This you do not have in coding. But if you are not a visual person, then i would say its not for you.

iperov Author

You don't have to apologize, you haven't challenged any of my arguments.

I see it this way: its like saying cars are useless because they can´t go sideways, when you clearly haven´t learnt how to drive yet. Just that. Hopefully you'll wrap your head around it and understand it's potential, so you can apply your knowledge organically and visually, instead of sequentially. Cheers!

iperov Author

come back when you have something to say about my thesis.