Smooth Node

At the moment, in the process of learning the c++ part of blender, I am making an attribute smoothing node.
This thread is for discussing this project.


  • Blur:
    • all attribute types (no bool)
    • mesh, curve
  • Blur methods:
    • simple iteration
  • Parameters:
    • attribute
    • domain influence factor
    • Entering a selection mask
  • Extensions:
    • factors can be of the same type as attributes (vecto for vector, color for color, …)
    • space for measuring distances of influence
    • the degree of decline in the power of influence
  • Tasks:
    • Increasing the speed of work through improved support for multithreading
    • Reduce the cost of a new smoothing loop.
  • It is also required to make support for all mesh primitives
  • Also:
    • I am not an official blender developer.
    • This topic was created only for discussion, suggestions and feedback on this project.

Download build


Attribute is missing, but in the geo node you can find set smooth shade

First question to potential users:
whether it is required to make the input of the mask field explicit
or is it enough to set 0 iterations?

This is amazing, I love how it can smooth a mesh if the position attribute is used.

Well it’s not obvious that the iteration socket hides mask functionality, but the presence of the socket also means that you can pipe something into it so the user might finally figure it out by trial.

I for sure would just YOLO it and plug anything just to see what this socket is for.

Maybe explaining this in docs would be enough?

Also I really like the idea of one node for smoothing both geometry and 3D textures.


Personally, I think that to fit in with the rest of the nodes, it should have a selection input that is the mask. Also, amazing project, this is something I’ve wanted for ages!


more examples


Thanks for working on this, it looks amazing! Anyone that has used this functionality in that “other” application knows how useful this will be :slight_smile:



Maybe “Iterations” would be a bit better than the loop count?


*Added link to download the first custom build


Made some examples of using the first version of attribute smooth


I tested the build / new smooth node idea. :grinning:

the nodes… I put in a very high loop count to see what would happen. :sunglasses:


One more nitpick about the naming. I think that Mix should be named “Amount” as Mix in Blender usually refers to mixing or interpolating between two unique input values, where as in this case, Mix really just refers to amount of the filtering :slight_smile:

Other than that, it’s looking really great! :slight_smile:

1 Like

Very Cool… useful for so many things… thank you.


I plan to implement only mesh and curve as blur objects for now
In the future, for unconnected points as well as ordinary meshes and curves
a work-interval will be added, in which only distance is used instead of a link.
It will work like a gravitational field. So far, this is very different from a simple blur.


Also, today I made a video example of using nodes

Today I found out that all the latest tests were run on a build without multithreading enabled.
After yesterday’s discussion with the developers in the chat, today I improved multithreading support.
And also made an assembly with several threads:


Nice, that scales really well!