Extra Nodes for GeometryNodes

By typing python code :slight_smile: This node is for advanced users who know a bit of python.
if youā€™d like some tips, enable the developper tooltip, you will see the api of properties when hovering them.

2 Likes

This is a very demanded feature, that was removed for controversial reasons during the port of the field prototype to the actual final implementation, please check this topic Named Attribute Nodes in Blender 3.0

after using Geometry Node of 3.0 extensively, I canā€™t agree more with my past statement about the removal. The new named attributes access is just so awkward to work with, it is also very inconvenient for studios trying to establish their own pipeline

Can the Object Info node act as both of your object & collection nodes? It is necessary to have both of these nodes you made? Image input node seems good to me though.

No they are two separate node,
i am still working on the patch, it seems to work except very specific issues, i will have time later this month to sumbit the patch :slight_smile:

1 Like

Look at what amazing optimizations this can bring for everyone:

When I scrub the timeline, the subdivision level decreases, but when I let go, the subdivision resets. This lets animators get a good preview of the animation and a good preview of the model quickly without changing settings rapidly. Geometry Nodes + a little Python is the future of rigging!

20 Likes

Woah, that is really cool! Just had a play with it, and you can also use bpy.context.screen.is_animation_playing for even more optimisation.

Itā€™s really weird seeing the viewport become buttery smooth as soon as you start the animation :smiley:

27 Likes

Hi, I tried to create a sound falloff node. But not perfect now. Hope anyone can give me some suggestions.

Now the sound falloff node can work with Sequencer Volume Node.
Support gravity and bounce.

6 Likes

When use extra nodes, I found an issue.
Blender will crash easily when press CTR + Z.

sadly, from what i heard custom node groups python api are still broken in 3.0 :sweat_smile: I do not have a lot of time to check for the issue recently, but i perhaps forgot to add ā€˜UNDOā€™ support in the operator class somewhere

I found only Sequencer Volume Node has this issue,
and if not use evaluate_sequencer_volume method, blender will not crash.

Hello BD3D, I am super excited about your ā€œSequencer Volumeā€ node. I tried using it and I ran into a slight issue that you probably know the solution to.

In your video, when you play the sound in the ā€˜video sequencer editorā€™, the volume on the top right under ā€˜soundā€™ changes.

When I play a sound, that volume number remains static, working like a volume on say a YT video.
Is there a simple option somewhere to change how that works, or is it because I havent installed your add on correctly.


Second question, I would be interested in a similar Node for the Shader Editor too. Does that exist, and if not would that be something that would be easy to duplicate from this Node?

Hi,
I was trying to figure out a way to deform custom normals (taken from static-baked VCol, due to not being supported yet), which seems relatively futile, probably due to lack of experience in vector math.
But would it be feasible to attempt adding Custom Normal field node with slightly above beginner Python knowledge? Can mesh.loops be within python scope if executed from nodes?

Hi @BD3D,

Firstly, great job working on these custom Geometry Nodes! Not only do I see they are helpful, but your code has helped me to create my own custom GeoNodes too. So thank you!

As mentioned, Iā€™ve been using this/your approach to create custom nodes. However, I have an issue with my custom nodes I feel you may be able to help me with. I know this is not exactly the correct way to approach you about such matters, but I wasnā€™t sure of how else to do it. If there is a more appropriate platform/forum, please let me know.

Simply:
I have NodeGroupA, which has its ā€œupdateā€ method triggered by the ā€œbpy.app.handlers.frame_change_preā€ event handler. This works fine.

I have NodeGroupB, which contains an instance of NodeGroupA (created via ā€œng.nodes.new(ā€œID_NAMEā€)ā€). It seems as though the instance of NodeGroupA within NodeGroupB is not receiving the call to its ā€œupdateā€ function.

Any ideas? Is there a better way to reach out to you in order to discuss and share some example code?

Thanks!

Hi
glad to know i was helpful :slight_smile:

How do you send your update signal?
I would suggest:

for ng in bpy.data.node_groups:
    if ng.startswith("NodeGroupA"): #so you also support dupplicates
        ng.my_update_function()

I think centralizing ā€œhow to make custom node groups infoā€ here is fine
But one thing is certain itā€™s all smoke and mirror compared to a proper C++ implementation

1 Like

Thanks @BD3D,

Iā€™ve opened a thread named ā€œHow To Extend: GeometryNodeCustomGroupā€. Hopefully, there, we can talk a little more about the details.

I should provide some code to demonstrate my predicament, I know, but Iā€™ve not had time to allow myself to do that yet. I imagine within the next day or two I can.

The ā€œng.startswith(ā€œNodeGroupAā€)ā€ is a very good idea! However, I feel I may need to review a more elaborate demo in order to fully comprehend your idea. I feel I get it, I donā€™t have time right now to test, but it feels very good! :stuck_out_tongue:

Thanks!

Have you thought about making more nodes? I wonā€™t use py,I want an expression node, although I have suggested it, but it seems that they are not made

Have you thought about making more nodes? I wonā€™t use py,I want an expression node, although I have suggested it, but it seems that they are not made

You have a mockup?



Simple expression function node (floating point type) (blender.community)
Two models are provided, along with functionality application links

3 Likes

I mean, it could be done with the smoke and mirrors of a node group plugin, we could create a function that creates a node tree dynamically depending on the user expression. Looks like fun to do :slight_smile:

Yes, it makes computing nodes easy, but no one makes this :tired_face:

Can you make it? Thank you

This is what I want in any node system. It could avoid chaining a lot of nodes but for a simple expression.