1
$\begingroup$

Just by curiousity, I was wondering if it was possible to use artificial intelligence, or complex algorithm (eventually online services) alongside with Geometry Nodes ?

For instance, would it be possible to compare a curve with a library of presets (or models or I don't know the right term) to check if there is a match ? Then, using the compare node, we could do specific stuff depending of the result.

This would open to a lot of incredible things :)

enter image description here

$\endgroup$
3
  • $\begingroup$ Geometry Nodes are currently as far away from intelligence as the sun is from the earth. I don't think it can be possible until you can finally integrate a line of code. $\endgroup$
    – quellenform
    Sep 19, 2022 at 9:25
  • 1
    $\begingroup$ Not sure why you need Geometry Nodes for that. Blender has Python API. It sounds like probably most of the stuff one would do with AI would be quite specific and so even with very mature functionality of any node system it would still probably make more sense to program whatever you want to do instead of using nodes. $\endgroup$ Sep 19, 2022 at 9:36
  • $\begingroup$ Ok, I didn't knew it wasn't possible yet(?) to work with custom scripts in GN. $\endgroup$
    – gordie
    Sep 19, 2022 at 9:38

1 Answer 1

1
$\begingroup$

Artificial Intelligence is a very broad term. Anything that in any way resembles human intellect falls into that category, so basically any automation does as well. However, you probably mean some deep learning algorithms, and the question could be generalized to using in geonodes any kind of an external program or library.

Geometry Nodes is a system programmed in C and compiled as part of Blender, that allows you to design a logical structure in a visual way - nodes - and also is able to traverse that node tree and based on that structure call particular functions passing the values from one function to another in the way described by the links between the nodes.

So if you want to use an algorithm that is not already programmed as a part of geonodes source (may be a part of Blender still, or may be an external program), you need to figure out an interface to communicate with it. Other than modifying the Blender source and adding your own "hook" by creating a custom node that then communicates with an external library, you can use a Python script.

You can, before or after the evaluation of a Geometry Nodes modifier, run a Python script. You can pip install any module, as well as you can use C bindings to run any external library. It may be connected to geonodes as a driver that controls a simple value (e.g. you can have a library that recognizes if an object resembles a dog and just drives a boolean value), or you can before/after the evaluation of the geonodes create some more complex data structure, that the goemetry nodes understands and can communicate with - for example by modifying a mesh of an object the geonodes setup reads from, kind of like I do in this answer. Keep in mind the value will be shared for all instances of the node tree, it will be evaluated once per tree per frame (not per modifier per frame).

Of course Python can also read the current object's state by accessing its evaluated state using evaluated_get() on the object.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged .