I’m excited to share a new addon I’ve been working on called FieldForge . It brings dynamic Signed Distance Function (SDF) modeling into Blender, powered by the excellent libfive library.
What does it do?
FieldForge allows you to create complex shapes using mathematical functions instead of traditional polygons. You build your models using simple Blender Empty objects as controllers for primitives like cubes, spheres, cylinders, etc. You can then combine these shapes using hierarchical parenting and control the smoothness (blending) between them non-destructively.
Inspiration
FieldForge is heavily inspired by the earlier SD5 addon for Blender, which also utilized libfive. SD5, much like libfive’s own Studio application , often involved defining shapes and their positions/rotations more explicitly through code.
FieldForge aims for a workflow that feels more integrated with standard Blender practices by using Empty objects and their interactive Transform Gizmos (Move, Rotate, Scale) to control the underlying SDF shapes. This allows for a more visual and direct manipulation familiar to Blender users.
Huge credit goes to Matt Keeter for creating the powerful libfive library that makes tools like this possible!
Hierarchical Workflow: Parent Empties to build complex structures naturally within Blender’s outliner.
Smooth Blending: Control the blend factor between sibling shapes, either globally per system or per-parent object.
Morph Shapes: Morph between two shapes with 0-1 values.
Clearance: Used for making clearance between two shapes.
Shell: Add shell(thickness) to the shape.
Negative Shapes: Easily toggle shapes to act as subtractions (boolean differences).
Arrays: Use Radial or linear array on shapes.
Bounds Controller: Manage independent SDF systems, each with its own resolution, update timing, and target result mesh.
Optimized Viewport: Automatic debouncing and throttling of updates to keep Blender responsive.
Non-Destructive: Change your controllers (Empties) anytime; the final mesh is generated dynamically.
Why SDF?
SDF modeling offers advantages for certain types of shapes, allowing for easy blending, sharp boolean operations without topology issues, and potentially complex forms defined mathematically.
Requirements:
Blender: 4.1.0 or newer
Please note
All of the binaries are tested and they work, however Mac will pop up warning “Apple cant verify files…”. This can be bypassed in Privacy & Security so that you can try and use addon. If you still want to be cautious then its best for you to compile, sign, etc. libfive binaries yourself and place/replace them in addons/FieldForge/libfive/src
Please note, I had manually compile libfive on my system to even see how SD5 works, compiled libfive binary filesize was much greater than the one which is included is SD5 release.
Also there is limitation with “cone” shape, cone cant be used as “negative”. Issue is likely with tip of the cone not resolving correctly. It might be limitation of libfivepy as well Im not entirely sure but for now keep in mind that this is known behavior.
If you create something cool with this post an render as I havent really had time to create anything with this(yet) other than debugging.
Ill probably update this adding shapes and functionality so we have something to use in Blender until we get official SDF implementation in Blender, which will probably be better, draw shapes better and generate geometry only if necessary and not in real-time like my implementation.
I’d like to try it, but I find it a bit confusing having to gather libraries from a different source, then build a specific folder structure. I’m on macOS. Which files do I need to include?
It’d be great if you could share a download link with a ready-to-install add-on Zip file.
Let me try and figure out best way to have release done so its just simple regular “Install ZIP” addon in Blender. Because I could not get SD5 working and I had to compile libfive for myself Im not sure if those binaries work as expected. There are few ways going about this with Github actions, containers or colabs. Out of these 3 systems I can test on linux and Windows so someone will need to test it on Mac
Ive worked out installation zips so addon can be installed with usual way from addons, just make sure to grab correct version for your system(Linux, MacOS, Windows). Original post is updated with new features.
There are some issues with SDF hierarchy computation still but even in this state addon does most of what I wanted from this project.
What I plan to add/develop from this point:
Work out SDF hierarchy mesh computation and make it solid. This might mean I will have to break the way it works now and have functions like blend, clearance, morph, etc separate “object” that you can add to the scene so they are affecting and influencing their child objects. In this current state effects are basic shapes but as you build up tree some stuff breaks, especially with “half space”.
I got this message after installing the macOS Zip file into the Blender Preferences ➔ Add-ons.
I thought the Libfive files were included in the Zip now, ready to install into Blender.
─ Edit: @Snowdaw told me it works for him. Same macOS version (Sequoia), and if I unzip the archive, the libfive files are included, so I don’t know what goes wrong here.
I’ve used it a bit and it seems like a good free alternative to ConjureSDF. How do you add textures though? Do you need to manually texture the resulting mesh, or is it handled automagically for you (including UVs)?
No, textures are not done automatically right now. Plan is to have procedural materials assigned to source objects so that parts of the mesh have different materials (which can then be blended in final mesh)
As this is very crude and basic implementation I would not integrate this in to usual workflow but this still can be useful to get extremely interesting and procedural geometry.
I am working part time on this when I get some time from work.