The big SDF thread

:date: Latest edits ( recent additions are marked with :new: )…

:information_source: SDF info

SDF stands for Signed Distance Fields, a volume-oriented 3D modeling method that offers more creative freedom than polygonal modeling or NURBS-based solid modeling. Signed Distance Fields are basically math equations to describe a shape in shader space. For example, sqrt(x²+y²+z²)-r is the SDF formula for a sphere. To visualize the mathematical shapes, a technique like ray-marching is used.

SDF floats in the realm of CSG 3D (Constructive Solid Geometry), and is sometimes also referred to as FRep. Traditionally, CSG is NURBS-based, and includes restrictive surface structures, like patches with edges. Such topological restrictions are even more apparent with polygon-based modeling, and comes with the risk of failing Booleans, fillets, chamfers, mesh issues / artifacts, et cetera. But SDF modeling does not suffer from those restrictions.

SDF is not new: metaballs are live-meshed SDF shapes, but it’s only recently that computing power is sufficient for more advanced SDF shapes and manipulation, particularly when using optimized ray-marching. Such techniques visualize the SDF shape formulas in 3D texture / shader space with a volumetric grid approximation, analyzing the boundaries of the shapes, and refining the grid structure where necessary. The ray-marched 3D volumes can then optionally be meshed to be used in polygon-based 3D editors, such as Blender.

Four 3D categories…

Polygonal meshes
For polygonal meshes, the surface is explicit: absolutely defined polygons. There’s no distance / inside / outside information, but you do have data like polygon normals to determine the surface angles.

CAD / NURBS / solids
NURBS-based 3D CAD objects have no distance / inside / outside either. They are not explicit like polygon meshes, but implicit like SDF. But the surface is iso-geometric: defined by curves and patches with edges. This is useful to guide polygon meshing, but comes at the price of some modeling freedom.

Voxels ➔ volumetric pixels
A 3D grid / matrix structure of cube shapes, sometimes used in an absolute way, like stacked blocks, and sometimes rounded using a mesh projection / smoothing algorithm such as OpenVDB.

SDF ➔ Signed Distance Fields (or Signed Distance Functions)
SDF basically answers “How far am I from a surface given this x, y, z position?” But it doesn’t tell you the direction of the surface, only the distance from one point to another (and whether that point is inside or outside). An SDF surface is implicit, and can be meshed using a surface approximation algorithm such as Marching Cubes, optionally with embedded vertex colors, if coloring is present.

Summarizing…

  • Polygonal meshes = manual surfaces
    ─ Explicit surfaces.
    ─ Analogy: 3D bitmap graphics, where a polygon could be compared to a pixel.
    ─ Modeling freedom restricted by surface topology: faces, edges and vertices.

  • CAD (NURBS / solids) = procedural surfaces
    ─ Implicit surfaces.
    ─ Analogy: 3D vector graphics.
    ─ Modeling freedom restricted by iso-geometric topology: NURBS patches with edges.
    ─ High-level accuracy / smoothness until meshed. The mesh surface detail level and smoothness depends on the polygon count.

  • Voxels = volumetric pixels
    ─ Explicit volumes.
    ─ Analogy: stacked blocks.
    ─ Modeling freedom restricted by voxel grid detail level.
    ─ When meshed, the mesh surface detail level and smoothness depends on the polygon count.

  • SDF = procedural volumes
    ─ Implicit volumes.
    ─ Analogy: virtual clay.
    ─ Geometric shapes, calculated in volumetric texture / shader space.
    ─ Visualized / approximated using techniques like ray-marching, voxelization, live-meshing.
    ─ High level of modeling freedom, no restrictive surface topology.
    ─ Ray-marched or live-meshed visualization grid detail level can be increased or decreased at any time, improving or degrading the accuracy and smoothness of shapes.
    ─ When meshed, the mesh surface detail level and smoothness depends on the polygon count.

SDF 3D modeling workflow can be divided in two main categories

  1. Live-primitive SDF modeling, such as metaball modeling. This is a fully flexible, non-destructive workflow, allowing you to freely combine different primitive shapes (e.g. a cube, sphere, cylinder, capsule, et cetera). This SDF approach is comparable to NURBS / solids modeling, but all interactions between shapes are real-time and remain fully adjustable, such as Boolean operations, blending, coloring and shape adjustments. Also, Booleans, blends, fillets et cetera never fail, which is not the case in polygon modeling or NURBS / solids modeling.

  2. SDF sculpting, similar to voxel sculpting. This approach doesn’t allow you to adjust primitives after combining them with a Boolean operation or blend, but it does allow you to freely sculpt (on) shapes, similar to 3D-Coat’s voxel sculpting, and comparable to polygonal sculpting with automatic voxel remeshing or dynamic topology generation.

Advantages of SDF 3D compared to NURBS and polygons

  • No worries about topology / mesh structure…
    ─ No need to keep your model quad-polygon based;
    ─ No stretched polygons when sculpting;
    ─ No need for frequent remeshing when sculpting, losing details in the process;
    ─ No dynamic topology issues.
  • Real-time and never-failing Booleans, blends, fillets, chamfers, shells, insets and outsets (remaining non-destructively adjustable in a live-primitive SDF workflow).
  • Shape properties remain non-destructively adjustable, though only in the live-primitive approach.
  • Real-time blending of shapes and colors (remaining non-destructively adjustable in a live-primitive SDF workflow).
  • Some techniques require relatively little extra computation, such as arrays and lots of instances.
  • Very efficient file sizes compared to polygon scenes, as no explicit data needs to be stored, just formulas and parameters.

Disadvantages of SDF 3D compared to NURBS and polygons

  • Not very suitable for highly detailed single-part objects, unless there’s sufficient grid resolution.
  • Not very suitable for objects featuring thin, elongated parts with oblique angles, such as a radio tower, unless there’s sufficient grid resolution.

──────────

:monkey_face:‎ SDF 3D modeling in Blender

Blender SDF add-ons featuring an optimized ray-marching renderer

  • Chisel

  • ConjureSDF
    ─ ConjureSDF 0.2.2 is feature-complete and works in older Blender versions, up to Blender 3.3.x, but not for MacOS.
    ─ A ConjureSDF rewrite is available for the latest Blender versions, which also works in Blender for MacOS, but that rewrite is not feature-complete yet. For example, there’s no SDF to mesh conversion.

  • Mesh from SDF

  • MathOPS
    ─ Not available yet. It’s currently in development as a Blender add-on connected to an external SDF CAD tool / engine.
    ─ Updates can be viewed in the MathOPS Discord.

Blender add-ons using Blender’s native live-meshed SDF functionality

Native SDF functionality in Blender

  • Metaballs
    ─ Limited, but still useful for some purposes, such as quick base meshes.

  • Geometry Nodes SDF functionality
    ─ Live-meshed, no optimized ray-marching.
    ─ Node-based workflow, no modeling tools.

──────────

:hammer_and_wrench: Stand-alone SDF 3D editors

:1st_place_medal: MagicaCSG is the most advanced live-primitive SDF 3D editor, only available for Windows. There’s a feature-limited free demo version, and you can grab the full version via the developer’s Patreon (Beta Early Access tier or Prototype tier).

:2nd_place_medal: SDF Modeler is the competent runner-up, with approximately 75 percent of MagicaCSG’s functionality, plus some unique features. It’s free, available for Windows, MacOS and Linux, and the UI / UX is a bit more beginner-friendly than MagicaCSG. Blender navigation controls are supported in the settings, hotkeys can be reassigned, and there’s a PDF manual among the downloads.

Other SDF 3D editors

:arrow_up_down: The order is based on criteria such as available features, OS compatibility, pricing and development activity…

  • Clavicula (Windows, macOS and Linux, irregularly updated)

  • Uniform (SDF + polygons for iPad)

  • Womp (streamed online processing, limited free features)

  • Xiamo (online, limited free features)

  • Sculptura (iPad, macOS version might follow)

  • Plastic (iOS)

  • Metaballs (Apple Vision Pro)

  • Pixonix Studio SDF editors (Windows)
    ─ Phantom Mesh, SDF Sculptor, Phantom Canvas (2D SDF), ShapeShifter (2D SDF)

  • Unbound (SDF-based 3D game editor with modeling tools)
    ─ In 2025, Unbound has taken a different direction, converting the editor to an online platform and incorporating generative AI.

  • SDF Editor (Windows, updates uncertain)

  • Spline (limited free features)

  • Project Neo (online public beta, Adobe-centric, will be subscription-based)

  • Substance 3D Modeler (Windows + VR, subscription or perpetual in Steam)

  • Mudbun (Unity plug-in, works only on Windows)

  • Clayxels (Unity plug-in, low maintenance, due to the dev now working on Unbound)

  • Dreams (PlayStation, not updated anymore)

  • QubeModeler (currently in closed beta stage, you can apply to join the beta)

  • SDFModeler (open source SDF toolset for Houdini)

  • EditSDF (simple online SDF modeler)

  • ShapeUp (simple online SDF modeler)

  • ClayIt (online)

  • “SDF Blender” plug-in (for Godot Engine)

  • Adobe Medium (VR, not updated anymore)

──────────

:inbox_tray: SDF 3D scenes / models

──────────

:technologist: Procedural / script-based SDF generation

──────────

:books: Reference

Videos

Making SDFs fast :new:
Coding adventure: Ray Marching
Ray Marching, and making 3D Worlds with Math
SDF Modeler and MagicaCSG demo videos

Inigo Quilez, a prominent SDF CG mathematician

2D Axis Aligned Bounding Boxes :new:
Distance functions for basic SDF 3D primitives
2D distance functions for optional extrusion or revolution
Shadertoy gallery of Inigo’s SDF primitives

Meshing algorithms

Summary of isosurface extraction methods
Marching Cubes basis configurations by Ephtracy (MagicaCSG developer)
Surface Nets
Marching Cubes versus Surface Nets mesh comparison
Dual Contouring
OpenVDB

Papers

Dual Contouring of Signed Distance Data :new:
Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes
Improved Alpha-Tested Magnification for Vector Textures and Special Effects
Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids
Implicit UVs: Real-time semi-global parameterization of implicit surfaces
Ray Tracing of Signed Distance Function Grids
e𝑓unc: An Efficient Function Representation without Neural Networks
Direct3D-S2: Gigascale 3D Generation Made Easy with Spatial Sparse Attention
Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs
Non-linear sphere tracing for rendering deformed signed distance fields
A Heat Method for Generalized Signed Distance
Visualization of SDF scenes
Github
Video

Miscellaneous

Unity Ray Marching
Cone Marching in Three.js
A Recursive Algorithm to Render Signed Distance Fields
Periodic Spaces: domain repetition
A series of tricks and techniques I learned doing tiny GLSL demos
Ray Marching Soft Shadows in 2D
Text rendering and effects using GPU-computed distances
Perfecting anti-aliasing on signed distance functions
Marching-Primitives: Shape Abstraction from Signed Distance Function
Painting with Math: A Gentle Study of Raymarching
Code golfing a tiny demo using maths and a pinch of insanity (Not really SDF, but enough related to include here)
Log-spherical Mapping in SDF Raymarching
Basic technical SDF info video
Explanatory technical article about SDF, by Rodolphe Vaillant
Math-oriented Wikipedia page about Signed Distance Functions
HG_SDF GLSL library for building Signed Distance Functions
WGSL 3D SDF Primitives
Compute.toys page
A summary of the current volume rendering techniques, by Weizhen Huang
Field-Aligned Surface-Filling Curve via Implicit Stitching :new:

──────────

If you think something is missing or incorrect here, or if you discover a broken link, please let me know in a reply to this thread, and I’ll add or fix it. Thanks in advance.

:memo: Footnote: this started as a thread about the MagicaCSG SDF editor, hence the initial replies.

46 Likes

It’d also be great if FK and IK could easily be assigned to a chain of elements.

1 Like

Very interesting! It looks like metaballs but it is much more precise in preserving the shapes. Some further refinement and it can be an excellent tool for modelling. :slightly_smiling_face:

5 Likes

This is interesting. What is this technique about? How does this compare to the sculpting we have now in Blender? Does it give better performance? What about sculpting small and medium or even micro details? Or is this in the conceptual stage like when using dynotopo, voxel remesher?

I also saw a vid of sdf used for texturing using very low res textures. Thats actually cool.

1 Like

Signed Distance Fields is a volumetric technique, similar to voxels and point clouds. Cinema 4D already includes it for a number of years, but their implementation starts to slow down as soon as a scene becomes a little complex.

This new editor looks very promising. Looking at the brilliance of the MagicaVoxel editor from the same developer, I’ve got high expectations of this new SDF editor. Love the speed and versatility of the implementation, including the automatic adoption of the material from an added or subtracted shape.

4 Likes

Good to know. Thanks for the explanation. Hoping to see sdf utilized in texturing as well.

2 Likes

Neat. Seem something like metaballs + booleans…

2 Likes

Looks like a nice toolset. Some of the work I’ve seen with his MagicaVoxel is quite brilliant. I’ve been having a lot of fun doing hard-surface in VR in Medium lately. I never really used voxels before in my workflow, but I would love to see SDF tech in Medium. Hard-Surface concepting/sketching in Medium(and voxels in general, with the right tools) has huge potential.

2 Likes

:+1:

I hope the new SDF editor (and a possible implementation in Medium and/or Blender) will also be useful for organic modeling. It should at least be useful for basemeshes, and cartoony / toy character models.

1 Like

Fast easy model creation without beeing a modeler, without using textures or UVs is getting more and more attention.

Already used in PS4 game Dreams and Unity Clayxel plugin.

Also possible to use Clayxels real time deformation in game, slower but lot better than PS4 Dreams characters without deformations rigging.

Easy modeling for anyone without needing to know modeling

Some shader modification and you can do many great effects

Two things this tool will need

  • model sub groups, be able to copy paste transform mirror those sub groups
  • convert to polygons and export to obj
    Otherwise the tool will be useless for games and real time related creations.
6 Likes

Nice, thanks! Going to check out Clayxels. I love such intuitive modeling methods.

ZBrush also recently added some brushes I really like, such as the Mesh Balloon brush:

Balloon people will use alot to very fast block out models very intuitively.
A must have.

Blender should get a similar tool.

1 Like

The old silhouette brush google summer of code project had a similar concept. The volumes it created weren’t as clean though. The student didn’t manage to complete it:

2 Likes

I guess Blender sculpt will have to get sort of ballon like quick bloc kout feature.

Let’s stay on track with signed distance field modeling :sweat_smile:

Modeling with primitive and signe distance fields matters if you can use that in 3D real time engine like PS4 game Dreams for example.

Otherwise for sculpting only why not using simple Voxels with sculpting tools instead ?
More powerfull and unlimited, no primitives constraint.

So voxels better than signed distance field, what advantage about using primitives only with signed distance field ?
When you can’t use that primitives modeling in a game engine like Clayxels or PS4 Dreams ?

I guess modeling with primitives and signed distance fields is perhaps faster block out, while allowing details, and lot more friendly for non modeler users and new comers to modeling.

3 Likes

twitter.com/MartinNebelong/status/1374474820134395909

PS4 realtime graphics no polygons.

Poly gone

:joy:

2 Likes

Interesting, but in the end it will still be internally converted to polygons, or not? Like NURBS: infinitely smooth surfaces, but they need to be meshed, and quad-polygons still exist of triangles underneath the surface.

2 Likes

Yes, all those Medium videos Ratchet linked are concept sketches. Medium is so good for this sort of work.

2 Likes

Thats not balloon brushes, thats a stolen teddy. :grin: :wink:

https://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm

In this case rather not, and generally the answer may often be also no, there exist different rendering approaches for datastructures or surfacedescriptions, having the nurbs definition and deciding how you render them could be done in different ways. Dreams is utilizing pointclouds and point cloud rendering may again fall back to rendering polygons, but that is not the case here as far as I know. Its just a multistepped pure point cloud rendering. Including subclouds for parts near to the camera. Generally, there very well different rendering approaches possible, that don’t really rely on triangles for rendering, metaballs for example should not get confused with blenders metaball meshes, they can be completely rendered without utilizing triangles.

2 Likes

Haha, yeah, it was also already in MS-Paint 3D for years. I’ve always regretted that Teddy was never developed beyond the initial stages.

Interesting, thanks!

1 Like

Out of curiosity, would SDFs for Blender be useful for artists (and how)?

1 Like