NodeSet Pro ported to Blender 2.80

NodeSet Pro has now been ported to Blender 2.80 and is available from BlenderMarket.
Porting this add-on has been fairly easy but be aware that Blender 2.80 is still in beta so you might encounter difficulties!

Upgrading Blender add-ons from 2.79 to 2.80

i have started research into upgrading my (commercial) add-ons from 2.79 to 2.80. in documenting what i encounter, i hope i can spare people some frustrations and learn something about add-ons in general. i didn't start earlier, partly because i had some other stuff to do but mainly because the Python API needed to be finalized and more or less stable: with many add-ons to consider for an upgrade starting when everything is still in flux would run the risk of wasting a lot of time.


the Blender developers provided some documentation in the API changes in in a short document. Unfortunately, quite a few of them are breaking changes, i.e. the have to be changed in order to work at all. Many of these changes impact every add-on, like no longer having a register_module() utility function while some others apply mainly to math heavy add-ons, like the use of the @ operator for matrix multiplication. Unfortunately quite a few of my add-ons are math heavy so i will probably need to spend quite some time on this.


the Blender devs decided it was a good idea to force all keyword parameters to actually use those keywords. And indeed this will prevent accidentally using a positional argument as a keyword argument and aid in readability. This is a Good Thing™. However it is bloody annoying that layout.label() is affected by this, which I use a lot which just a single text argument ...

The price for biggest annoyance however goes to the mandatory change that forces class variables that are initialized with a call to some sort of property function like an Operator with for example a size = FloatProperty(name="size") property, to a type annotation like size: FloatProperty(name="size")

A small change it may seem but properties are everywhere so it is a lot of work. And although i read the PEP thoroughly, I fail to see the advantage. I'd rather hoped the devs would concentrate on things that change because of Blender's new structure, like collections and viewport related things, than on this new Python fad ...


I am just starting the research on converting my add-ons but you can expect a couple of articles the next couple of months with hopefully some useful findings.

Blender Market black friday sale

Blender Market will feature a black friday / cyber monday sale this weekend. Many products will be 25% off, including of course all my add-ons ;-) 
So if you were thinking about TextureWatch, NodeSet Pro, Ortho, IDMapper, WeightLifter or even SpaceTree Pro, this will be your change to get them at a nice discount in my BlenderMarket shop.
Many other creators of add-ons as well as models, shaders etc. will participate so be sure to visit BlenderMarket's home page as well.

Change the radius and type of metaball elements

A couple days ago I published a tiny add-on to manipulate the attributes of all meta elements inside a metaball. Because it can be helpful to change the radius of an individual element after is is created I added a small panel that lets you do that (because it is currently only exposed in a Panel in the Ctrl-N sidebar which is not logical).

I have submitted a patch that is now included in the master and 2.8 branches but for now I keep this extra panel in for people who are not able to use the latest built.

The Panel looks like this:

That might not be the prettiest way to do it but it gets the job done. Note that it will change the radius of the active metaelement (just like the other attributes), not of the selected element(s). This is inconsistent with editing regular meshes but unfortunately not something I can change.

Metaelement type

In some situations it might be useful to change the type of all metaelements as well, so I added that option to the operator:
Not that we also have a 'Keep´ option (the default) that will let you scale just the other attributes without changing the element type.

Code availability

The updated add-on is available from my GitHub repository.

Blender addon: scale attributes of metaball elements

Blender has had some support for metaballs since ages yet the amount of development love they get is not much: some attributes of the individual metaball elements are not exposed to the Python API (like select) and/or are not exposed in the interface. It is for example not possible to change the initial radius of an element once created and it is also not possible to change the stiffness or size attributes for any element but the active one (the S key scales the position of the elements).

This is quite annoying because for some voxel based visualizations metaballs are actually quite nice and the implementation in Blender is reasonably fast too. In order to remedy some of the missing featues I created a small add-on that allows you to scale the radius, stiffness and size attributes of all elements of a selected metaball.


Once installed the operator is available in edit mode under the Metaballs menu. When selected it offers the attributes in the operator panel in your 3d-view toolbaar (press ctrl-T if the toolbar is not visible)

Note that scaling any of those attributes will affect all elements in the metaball object because as explained earlier the select status of individual elements is not exposed to the Python API so unfortunately we have no way of limiting the activity.

Code availability

The code is available on my GitHub repository (you might need to right-click and select File->Save As ... or equivalent depending on your browser)

Extended Voronoi Texture support in Blender

A long time a go I reported on my efforts to get a more versatile Voronoi texture node in Blender but this effort never led to actual inclusion of the code.

But all of a sudden there has been some interest again and now we have extended Voronoi functionality in the Voronoi texture node! And of course Pablo in his unique enthusiastic style did a nice demo of it as well check out the video.

The new functionality is available in the latest build of 2.79 and presumably in the 2.8 branch too. Note that in my original patch I included Voronoi crackle as well, but that is not available in the new node itself. However since Voronoi crackle is simply the difference between the distance to the 2nd closest and the 1st closest point, this popular pattern is super easy to implement now with the following noodle:

Finally an easy way to generate lizard scales :-)

Blender Market 2018 fall sale

Blender Market will feature a sale from September 19 - saturday September 22. Many products will be 25% off, including of course all my add-ons ;-)
So if you were thinking about TextureWatch, NodeSet Pro, Ortho, IDMapper, WeightLifter or even SpaceTree Pro, this will be your change to get them at a nice discount in my BlenderMarket shop.
Many other creators of add-ons as well as models, shaders etc. will participate so be sure to visit BlenderMarket's home page as well.