Blender 2.67 Pynodes

Now that we are heading 2.67 and Pynodes are one of the targets for the next version I would like to ask you about more information about this feature, I cannot find enough information about this, I don´t know if it´s limite to cycles, or if it covers all of the aspects in Blender. Could we build our own nodes for compositing for example? many questions on the air… :rolleyes:

PyNodes would not be for cycles, cycles already has OSL (for cpu rendering)… Implementing another coding language would not really be beneficial.

it allows to write your own nodes…

My question:
this is somethink similar to OSL but in diffrent language? And it is not just a materials but other stuff like filters etc whatever we want?

OSL is for materials & cycles related nodes.

PyNodes (from my memory) would be more for compositing… and the language would be in python

Wasn’t PyNodes the missing component for proper integration of external render engines? So that renderers like Lux or Yafaray are able to use Blender’s node system in the same fashion Cycles does currently.

That’s one use, and probably the main initial use. As I understand it, it allows addons to just spawn new nodes with python commands, populated by whatever properties the addon needs (including ones it makes itself).

Supposedly it was going in right after 2.66, but there wasn’t any word on it in the last meeting notes, so I’m not sure what is going on with it.


But PyNodes are way more generic than that.

PyNodes let you describe a node description and save that node description into the blend file itself. You can then use Python to evaluate the node description to get any programming effect you want. By node description, I mean a node tree with a collection of nodes.

You can use it for a node based particle system, node based IK system for animation, node based procedural modelling, a node logic system for the game engine, and so on.

This is going to be a huge feature if it comes to Blender, there is only two other apps that I can think of that have this feature besides Blender: Houdini and Softimage.

It will take time to build nodes and master the system anyhow, but you will be able to build tools on top of Blender just like you can right now with Python scripting. It’s just that with PyNodes, you will be able to “script with nodes”, and working with nodes to do some tasks is always going to be faster than plain scripting in Python. Node based systems have always been faster to prototype with than pure scripting, however it depends on the use case.

I wonder if the pynodes will also allow generation of “normal” interface data from the node setup, like cycles does with the properties panel for materials.

we’ll see where we will be able to attach the pynodes to. I’m sure you could register a callback to e.g. interpret the pynodes network at frame changes but i guess there won’t be a generic node context at first and creating animation logic in a material would be kind of hacky.

Would be awesome to have a node system for the BGE, I think the hive system is ready for the BGE but was on hold until the pynodes where ready and looks like this is going to be happenning soon so hopefully this can bring a little bit more life into the BGE which is fantastic in my opinion but with nodes would be amazing.

Does BGE not already have semi nodes programming? If you try to make the more complex stuff using like 1000’s of lines in a bge python script I would imagine there would be too many nodes to manage.

An addon bringing the hive system nodes inside Blender is planned for the moment the Pynodes get into Blender.

It might still be more flexible in cases to use scripting, but it will be a boon to pretty much everyone in the community as there will probably be a lot of things that even the advanced users will like.

Yeah, well some things will be faster to do with python scripting, and of course some things you can only do with python scripting.

People will have to find a balance between nodes and scripting, to see which ones work faster for a particular case.

I wonder if the node editor and storage will be redesigned as well to allow custom/additional node setups.
Currently we have things like material/texture/render/world node. People might want to add game nodes/particle nodes or various other types and not have them clog up the material node section for example.

Right now material node setups are shared between renderers as well, hopefully that will be improved because obviously Luxrender node material will not be the same as cycles node material, yet some people may want to store both definitions.

The documentation for PyNodes is here (written by the Author of this feature).

However, I am missing in this desciption the most important point: I expect that every PyNode has to implement a callback procedure. (The one that will use the current input values to deliver the output value).
Could you see anything like that in this document? It seems that using the proposed set of the functions you can create and register a node which does nothing…
There is no example of a simple, but complete node (a kind of the “hello world” example)…

I have been waiting for this feature since I’ve first heard of it (around Blender 2.6 or something), and I am really reeaally curious to its real potential and capabilities, but I don’t know what to expect, and I know very little about programing, so unsure of what uses this may have.
I mean, will you be able to script a node that makes creates/edits mesh geometry, or curves, or that edits UV coordinates in viewport?
Can fake “custom modifiers” be created with a node setup? I mean create a set of preconfigured nodes that can be seamlessly applied to a 3D object and produce a non destructive effect? That would be extremely cool!

These are the kind of things I would expect and love it to allow, but has I said, I’ve read the wiki and tried to absorb has much as my limited programming skills allow, but could not get much, so I am really curious to see its real capabilities :slight_smile:

Have you noticed that today the PyNodes has disappeared from the 2.67 targets?
(edited by Ton :(). Thus, the title of this thread is no longer valid!

I can see no mention about that on - does somebody know what has happened to this modification?
According the Developer Meeting Notes from January 2013 it had to be in 2.66 release, then there was a mention that it may be not possible “because of the flu”, and then -?

As I understand it, it barely missed the review cut off for 2.66, because someone involved was sick and couldn’t get to it. Since it missed the deadline, the decision was to hold it off until after the 2.66 release, which is now. So theoretically it should be going in soon, unless there was a change that everyone seems to have missed.

I believe the information in the last Sunday Meeting is just the current information regarding the targets for 2.67, not the final list of targets.

Anyway, unless Phonybone falls ill again, then there’s a decent chance for Pynodes in 2.67, as the implementation was about ready for final review before the 2.66 release.

OK, so let’s go to the main subject:
have you found in Phonybone’s PyNode class description the key method, where the PyNode has to implement its core functionality (i.e processing the input information into the output)?
I cannot see such a method in the proposed interface…