Proposal/Survey on Custom Nodes for Blender

Hi all,

I want to improve the actual system of creating custom nodes for the current node types that come with Blender.
At the moment, there’s only access to the NodeCustomGroup class, which can be used with any kind of node_tree. Thought this is quite usefull to have, the nodes created with this class loose some of the functionality that we have by using node groups instead (for example, gpu calls for ShaderNodes types).

My main question is not quite about how to do it, but more on which way should we be aiming at…
That said, I’d like to know what would be better for us to have in Blender:

1- Keep the NodeCustomGroup for all node types, but use a bl_type attribute that we could set to ‘Shader’, ‘Tex’, ‘Comp’ or ‘Custom’, and based on that register the node with the chosen type.

2- Create different classes for each builtin type, just like we have for the nodegroups, like ‘NodeShaderCustomGroup’, ‘NodeTextureCustomGroup’, etc.

I’d like to know your opinions about this (and any topic related to custom python nodes)