Hacker News new | ask | show | jobs
by kuboa 1284 days ago
As I said I'm not a programmer and I'm only familiar with GN so take anything I say with a grain of salt but: Google/YouTube is telling me that VEX is an expression language. We don't have that in GN yet. No scripting of any kind, actually. Everything is done visually, on the nodes themselves, there's no "properties" window for nodes where you do the actual work, everything's sockets and noodles. Shape and color of the sockets tell you the data type (geometry, float, vector...). Scripting support is a common request, but devs usually respond with "it'll come but we need to nail the fundamentals first". It's still a very young system.

There's no Python (like the add-ons), all nodes are C/C++.

I looked into what "variables" are, it says stuff like "position", "current animation frame" etc. Those would be called "input fields" in GN. In addition to default attributes like position, normal, rotation etc you can also capture, store and recall custom attributes, either anonymously or as named ones (always written on geometry in a particular domain--point, edge, face corner etc).

Taking a look at an Entagma video on GN would be much more helpful I'm sure (they also have a course).

2 comments

I was rather disappointed to learn geometry nodes weren't scriptable. Writing short Python snippets for geometry transformations would have been of great interest. It seems not only do you have to use C++, you have to compile the whole of Blender to add your own nodes!
Maybe this will come one day. Revit and Rhinoceros do have python-scriptable 'nodes'.
It's been a while since I played with GN, but aren't "drivers" merely python scripts that outputs values that can been used as input fields?
You can use scripted expressions in drivers, and if the expression is complex it uses the Python interpreter, but drivers are an entirely separate system than GN. They always (afaik) put out a single value, so while you can use them to control a value of a socket or channel inside GN, they wouldn't be evaluated dynamically for every element of a geometry so they wouldn't be a "field".