# Metaballs: 3.3 Geometry Nodes test

Note: This project has since evolved into a larger project called SDF presets. Check it out here:
Geometry nodes in 3.3: SDF Presets

With blender 3.3 comes the Volume Cube node, and with it a whole set of new abilities.

One of the amazing possibilities is real metaballs. By using distances to create points, and comparing these using the smooth minimum node, you can easily create custom metaballs, complete with smoothing and color blending.

Here’s a project file so you can try it out and play around with the settings:

Files

metaballs.blend (4.0 MB)
(An example file, contains the scene shown above. )
metaball-assets.blend (1.6 MB)
(A file containing all of the nodegroups, ready for you to drop in your asset folder. Includes thumbnails. )

If you have any suggestions or questions, let me know!

30 Likes

super cool ! well done !!

2 Likes

I’m quite a bit behind the curve on Geometry Nodes - as in, I don’t understand them at all yet and I’ve spent almost no time with them Can you explain why this method creates “real” metaballs as opposed to the current metaball system?

4 Likes

As of 3.2 and earlier, aside from a few workarounds, the only option we had was to convert points to spherical volumes, and convert this to a mesh.

Like so:

They look fine, but they are missing one of the defining characteristics: Merging.

Here’s what two metaball objects look like:

They have a merging influence. They actually create a sort of smoothing, and a bridge between them.

Also, when in the same position, the volumes are added together, making the ball twice the size:

For comparison, here’s what a simple setup with my system looks like:

This is possible through the smooth maximum node, which allows you to compare the distance between two points, and use the smoothing distance to determine the merging influence.

To test this, you can try changing the distance setting on one of the metaball nodes.

8 Likes

Thanks a lot! I’m looking forward to using this in some larger projects when it becomes stable.

2 Likes

I just added a new file, for those of you who like the asset browser.

I’ve also added custom thumbnails and tags.

You can find it in the files dropdown on the first post. Just drop it in your asset folder and you’re good to go!

EDIT: Purged some unused data blocks that were significantly increasing storage.

7 Likes

I featured you on BlenderNation, have a great weekend!

2 Likes

Great project! The volume cube node node is much faster than cube marching or smoothing. I would recommend you to switch common SDF conventions (inside is -ve and outside is +ve). It will make your work much easier and you will be able to copy SDF formulas off the Internet ( Inigo Quilez :: computer graphics, mathematics, shaders, fractals, demoscene and more (iquilezles.org)). I would have advised you to look at my old SDF Geometry nodes file for the node version of these formulas, but it uses legacy attribute nodes. So I doubt it would be of much help. Nevertheless you can always ask me if you face any issues as I have experience with SDFs in GN .

3 Likes

Nice project. Curious as to how this will work with creating a sculpting base.

Thanks for the tips @Xeofrios!
I’ll do some more research and see what I can do with it!

Thanks for the compliments @UnCommonGrafx!
I think it will open up a lot of cool possibilities!

1 Like

Metaball influence has been there in standard metaballs outside of geometry nodes.
While good with new options, and the extra nodes for additional smoothin per distance etc is nice, I think the blob merging is still just, blob merging.

It´s by far more interesting to simply use several mesh segements, cube, sphere etc as the same object, and in edit mode and with remesh modifier move those segments together, and with some adaptive settings they fuse together, the problem with editing multi segment meshes as one object, there is no segment move tool, you have to select linked mesh first before moving it.

I would like a remesher in the geometry nodes and a way to move each segment in the nodal setup with a one go tool.

As far as I can see, even if you add a remesh modifier, to a main object, and then add a geometry node for that modifier and add primitive meshes, and combine them, once removing the main group input node, and plug the others to the the group output, the remeshing is lost, not sure if there´s someway in there to fix that, checking right now, but I am a newbie to geometry nodes.

Edit…
I was wrong, I thought it didn´t work by just having the remesh modifier after the geometry nodes, but it was just some voxel settings I needed to change to get it to fuse.

So with geometry nodes and two combined primitive mesh, an icosphere and a cube, they can be fused together, the tricky part is to find a good workflow of selecting them and move at once, since you can´t use the standard move tools, but have to use the transform values, would be nice if there´s some node that would allow to move each segments origin based on a tool that works inside geometry nodes.

And the tricky part of having the remesher be effective on higher resolutions as well, once that is done, there´s not much of a need for metaballs since you can instead use whatever shape you want for fusing either blobs or something else.

As for the new release, don´t have it installed yet…so many of the builds to install every time, for god and bad.

Sorry to go a bit off topic from the metaballs, and this setup won´t give you the smoothing nodes I think to control smoothness, since the remeshing takes place by the modifier and those are the controls you have directly only at the modifier level, and not within the Geometry nodes.

If you try to increase voxel resolution by decreasing the voxel size, you will get higher resolution on the mesh of course, but the fuse connection will get lost since it is fusing the neighbouring mesh by the help of the voxel size itself, the solution is to only set the voxel size so they can fuse, then add a subdiv modifier after the remesher to increase resolution.

Like this sample with added subdiv modifier, moving with the transform nodes, works decently fast anyway, but would be slick to be able to move each item individually directly in the viewport, and also…had it been a Geometry Node Remesher, being able to use the same tools perhaps as for metaball influence blending/smoothing.

This is quite cool, @Charles_Weaver ! It would be great if Geo Nodes would enable you to turn Blender into a powerful MagicaCSG alternative.

4 Likes

Absolutely! In fact, I’m working on a library of SDF nodes right now! The results are quite promising so far.

EDIT:
I finished the first set of nodes, and released a free file here:

I’d love to see what awesome things you create with it!

Thanks to everyone here, and thanks again to @Xeofrios for pointing me in this direction!

6 Likes

Hi Everyone,

Here is more than 150 SDF Nodes…

Hi has a full fledge library of SDF for the shader node (2D and 3D SDF). But it can be converted auto-magically to Geo-Node with an addon, here

If you want to convert your mesh to SDF, just use that node setup (From Erin ETK toolkit). I encourage you to buy it since it is very good !

If interested, you can also found many node pack setup (free & paid one) here

Cheers !

2 Likes

Wow, I love that you are using the Asset Browser for this ! So nice. Keep up the good work !

Maybe you could work with CelestiasMaze to bring even more shape to Geo-Node to you pack (without the need to make any conversion)

I will add your Blender Artist page to the Retopo I did.

2 Likes
5 Likes

Thanks for adding me to the list. Now I’m part of the club!

By the way, why did you classify it under shading? It’s specifically geometry nodes, so I think it fits better under “systems”.

2 Likes

Yes, you are right.

Have a nice day !

@Zorro_Weaver Just update it, let me know if it’s okay for you.

Will probably write to 80.lv when I have the time/motivation to see if they could link to that page and bring more people in… To Blender and GN.

1 Like