Contributing to the Geometry Nodes project

Hi,

I’m interested in helping out with the geometry nodes project. I started reading through the code for some of the nodes, and the diff for the subdiv node. I then started trying to implement the bevel modifier as a node, but with no knowledge of Blender’s codebase I got a bit stuck.

So, before I go any further, I thought it best to ask a couple of questions to the geometry nodes people:

  1. Is a bevel node something that would be useful to you right now? I picked it pretty much at random, and I’m wondering now if there are better places to begin working on Blender’s code.

  2. If a bevel node isn’t useful, what would be something useful that needs doing in the geometry nodes project? Is there some small task I could use to get started, and learn the codebase a bit? I’ve taken a look at the geometry nodes workboard (https://developer.blender.org/project/board/121/), but I’d appreciate a little guidance on which tasks might be slightly more “new developer friendly”

I’m aware that I’ll probably have to ask lots of questions, so I’d rather be asking questions about stuff which fits with the larger development plan, so I’m not being quite so annoying to the devs!

Oh, also, if the geometry nodes project is too much of a moving target for new devs at the moment, please say so - I’m just excited about it!

Thanks,

Matt

6 Likes

My (wholly unoffical) take:

  1. Start with bugs. Find, report, fix, create a differential and submit.
  2. Appoint a Geometry Project member or three as patch reviewers.
  3. Finding bugs are easy - try and use Geometry Nodes in some useful way and something will surely break.
  4. Familiarize yourself with the Geometry Nodes discussion, where there has been much praise and some gnashing of teeth. The latter hints at bugs.

You won’t have to wait for an invitation or ask permission to join because nobody will ever tell you not to try and fix a bug. Bugs usually have a compact scope. You can wrap your head around a bug easier than a gemungous thing like a bevel modifier. Bugs give rise to pretty directed questions that can be asked here or on blender.chat. Maybe the reviewers won’t like your patches, and if they don’t, they’ll provide reasons why not, which lead to greater insights on your part. Keep at it and soon you’ll find yourself involved. Have fun!

1 Like

Hi! Great that you’d like to contribute!

I would also not recommend starting with a bevel node. First because there will need to be some design questions that will need to be answered before that node would be finished. Attributes, node layout design questions, which inputs to expose as sockets, etc. The modifier settings shouldn’t necessarily be copied straight to the node implementation. Some things you’d think would be easy are not going to be straightforward at all.

A while ago I also started working on implementing the bevel modifier as a node, I paused because I wanted wait for a more stable base like you mentioned.

Since there’s a lot of interest in helping out with this project, maybe a “Basic Task” column or tag would be helpful, I’ll add that to my list of things to discuss with the team.

2 Likes

Thank you both for your replies.

I think that on reflection trying to implement the bevel modifier as a node was way too much to start with…

I will keep my eye on the bug tracker for anything geometry node related, but also as @grosgood suggested, actually just use geometry nodes until something breaks :-).

One final question regarding developer documentation for geometry nodes. I’ve seen this - https://wiki.blender.org/wiki/Source/Nodes/Modifier_Nodes - which seems to be a good high level overview of the design. It also looks like these two pages are pretty relevant:


Is there any other dev documentation I should read? I’m making an assumption that the stuff on particle nodes and the simulation system aren’t applicable here.

2 Likes

Try this (if you haven’t yet):

  1. go to developer.blender.org
  2. Left hand menu: choose ‘Differential’
  3. At the listing, choose ‘Edit Query’ button
  4. Fields appear.
    a. Statuses: Remove (hit little ‘x’) any statuses
    b. Tags:
    i. Click on Magnifying glass; float-over with search field appears.
    ii. Type in ‘Geometry Nodes’
    iii. Select ‘Geometry Nodes’ from candidate tag list (click on right hand blue ‘Select’ button).
    iv. float-over disappears; A ‘Geometry Nodes’ resides in the tag field. Click on ‘Search’

This gives you the in-flight and finished differentials

Perform a similar search with Tasks (2. ‘Maniphest’ instead of ‘Differential’)

Similarly, perform user searches from these query forms, using the Geometry Nodes team members as search keys.

That would probably get you enough to read for an afternoon or two. Extend the technique to other search terms. Have fun.

2 Likes

That is really helpful, it hadn’t ocurred to me to do that. Thank you!