Retopology: Min-Deviation-Flow in Bi-directed Graphs for T-Mesh Quantization

I’d be happy if I could define a region (the ear) and say don’t let any spiraling edge loops escape this area.


For me the benchmark of Automatic Quad Retopology also is “Quad Remesher” also prominently used in ZBrush under the name ZRemesher. I would love to offer some of our meshes since we do a lot of retopology in house. Since they are all under very strict NDA I can’t, unfortunately. :frowning:
(and just for the record: Even with QRemesher available we still do manual retopology of +90% of our models)

But as a general hint I completely agree with what was said so far: The ability to define edgeloops and as few spiraling as possible is top priority for any Quad remeshing Alogrithm for me.
Second closes would be a Heatmap for Quad density distribution.

I mean - if it will be “just” an upgrade to quadriflow that’s absolutely cool, too. Any improvement is fantastic and highly apreciated.

(edit) I did make this fellow here as a personal project over a year ago. If it would help I can upload some of the sculpted parts I used as base for retopology. He certainly is not under NDA :wink:

It may not be a good representation since I mostly used a very blobby sculpt as guidelines for clean manual topo:

If it helps in any way I can upload the sculpts above for testing, though. Just let me know if it’s useful and I’ll upload these parts. :slight_smile:

Just in case - Link:


After wrestling with quadriflow and other “push button, hope for the best” solutions, I think that something that is a bit more manual and controllable is a must.
Besides not being able to put loops where your want them on meshes that is going to be animated, even static meshes be a PITA as small details or extrusions can vanish. (Like the nose of Suzanne in the non mirrored result)

With more manual methods, it is easier to control the quad density on different parts of the mesh to make these areas better.

Despite all this, this seems to be much faster and much better quality than quadriflow (from looking at the paper). So I would be happy if this replaced that.

However, after talking to a lot of artists doing retopology, it seems to me like most would like to be able to create clearly defined patches that then gets automatically filled with quads.


Here is my (almost) manifold fireplace model which I made and shared for different stress tests.

A downloadable manifold skull which could be used for similar purposes.

Also I technically can share this variable density retopo of a classic head.

They has 100% quads topology, but the topology is easy to corrupt it with triangulate+subd+decimate modifers actions.
Also the initial topology could be useful for comparisons.


Sculpted hair is more or less the ultimate stresstest for organic subdiv retopology. :+1:


Okay, David head is also available for download

It is more detailed than version from the dataset, and its topology follow shapes and preserve all the details, hope it will be useful.

Also a manual skull retopology by stripe-modeling process video cold be interesting for the research.


+1 for the ability to define edgeloops and as few spiraling as possible.
It would be nice to have the ability to define the sharp edges manually and let the algorithm to fill the gaps between them automatically for the sake of a better control over result.



Quadrifllow is almost useless at the moment tbh.


What is this black magic you are shwoing in your video, there? :astonished:

Well, I must say this topic is highly interesting, well-structured, and holds great promise regarding this new technology and the automatic retopology process it offers, aiming to provide meshes with exceptional mesh quality and regularity! I’m incredibly excited to witness the final outcome and the evolution of the algorithm. All I can say is, congratulations on your hard work and dedication! You’re poised to assist a multitude of individuals through your research and efforts.


  • Have you already set a release date for a version of Blender? (E.g., Blender 4.1 Stable Release)
  • Is it native to Blender or a downloadable extension?
  • Will it replace the current “Remesh modifier”?

It is a stopmotion animation I used to create when trained people to explain them principles of stripe modeling and retopology workflow.

  • Will it replace the current “Remesh modifier”?

I think that remeshing and retopology are a bit different processes which are expected to bring different results, aren’t they?


Ah I see. Wasn’t sure if it’s just stop motion or if it also used some kind of “magnetic guides” to pull the outer loop to the geometry like the Softwrap Addon. :smiley:

1 Like

Hi, your questions were for Martin but I believe I can answer them:

  1. There is no date (or release) associated to this project. This is something Martin would like to contribute once he is done defending his thesis. Starting next year he shold have more time to continue working on this project.

This is thus dependent on his time availability and whether this work could even fit within his postdoc (or if would have to be done on the side, or instead of).

For now the idea is to assess whether this technology is interesting to Blender and if it would be an improvement to the existing method.

  1. Ideally this should be a native tool. But it will depend on the integration design (which is to be figured out only when there is time and after we are happy with the results it can yield).

  2. I don’t see this as a replacement for the Remesh modifier. More a possible replacement for the Quad remesh tool.


TLDR reply;

It would be very cool if “grease pencil” or “annotate” pen could be used in conjunction with a auto-retopo solution.

The gist:
The mesh currently sits in a triangulated dynatopo state/ or / a quad, ngon state of construction. The mesh is currently considered “final” in terms of look and fidelity, but I the user, would like to use auto-retopo to start its foundation.

I select the “annotate” pen tool and draw w/ my mouse or wacom tablet on the areas (by lets say 3 colors) Blue for loops, Green for flow/ face direction, Red for sharp corners/creased edges. (the user in this case has the leisure to put down as much info by color as necessary to get as accurate as it can.

I mark my mesh in all the areas I need the auto-retopo tool to recalculate and approximate. Press the build button, it scans the mesh and analyzes any color line data, and builds according to that 1st. If none, it examines the entire mesh and starts approximating what it typically does and gives me the best results that it can come up with.

Would this be feasible within Blender’s architecture?

2nd idea, would be to optionally allow the user to assign face-sets as markers on where the border edge (inside) the topology ends/begins.

1 Like

This is basically how QRemesher as Blender Plugin works.
Zbrush offers a few more options in their implementation here. They have guides, polygroups and polypainting as guidelines for attracting Polygonflow.

I am not sure how this would work with greasepencil, though, as a grease pencil stroke isn’t really tied to a specific mesh.right?

I don’t think grease pencil or annotations would be the right thing to use here. Grease Pencil is it’s own object + data, so you’d have to add and remove that all the time. Same with annotations. From an architecture point of view, it feels much simpler to add a separate paint operator just for guiding the retopology. We already have a good paint API that allows to easily create new painting operators.

Similar to how we have a “Live UV Unwrap” mode, I could imagine a live retopology mode, where the user can draw the guides and the retopology is done with every new stroke. Just a thought.


Hi everyone!

Sorry for the long delay in responding, I’m unfortunately currently pretty busy with finishing my PhD thesis (including new improved quad-meshing methods).

First of all, thank you all for your interest and your valuable feedback and comments. They gives us a much better picture what topics are most important to focus on in our research.
Also, thanks a lot for the suggested/provided meshes.
I’ve experimented with them a little bit with mixed results, I’ll make a separate post about this later.
By the way, I’m also testing my new (unpublished) algorithms on them, the results seem promising so far :slight_smile: Unfortunately I can’t talk about that much yet in public, but will of course update you once I can.

Let me try to comment on commonly mentioned topics.

First of all, we need to talk about speed. Our paper that sparked this discussion did indeed speed up one part of the whole retopo algorithm by a large margin, however that unfortunately does not mean the whole tool is always fast - we merely eliminated one common bottleneck.
In the current tool, performance is most closely related to the number of input faces.
QuadWild has an (optional, default-on) automated initial triangle remeshing phase which is important for robustness, by repairing common defects and improving mesh quality to make it more suitable for the mathematical optimization algorithms (for example, “round”, close to equilateral triangles are much better than thin needles). This also includes mesh decimation that greatly improves runtime, however at the cost of geometric accuracy. For example, in the fireplace mesh, the default settings obliterate most interesting detail. On the other hand, disabling this preprocessing phase makes some steps (in particular the polygonal decomposition) very slow - multiple hours on a fine mesh based on the fireplace model :frowning: (Indeed it is a good stress test). We’ll need a good way to set the desired tolerance here to not decimate too much.

Several comments directly or indirectly relate to what we would call “feature constraints”, so I’d like to talk about that a bit.
Feature constraints are typically used to preserve sharp edges from the input, but they can also be used to force arbitrary edge paths to be preserved as quad edges. This also influences cross field computation, which will be aligned to those features.
QuadWild currently either selects feature edges based on a dihedral angle threshold (very simple, but often pretty bad), or with list of edge indices as additional input. For a good integration, I guess we could make use of edges marked as “seam” or “sharp”, as well as material boundaries (i.e., edges whose incident faces are assigned different materials). This is unfortunately something you currently can’t try out without writing code for it :confused:

  • Soft edges. I made a shape similar to the screenshot of @JulianPerez, and unfortunately with the default settings, QuadWild doesn’t follow those soft edges well. There could be two (non-conflicting) remedies:
    a) The cross field (indicating desired edge orientations) optimization should be improved to better follow those edges (this “curvature alignment” would also be beneficial in many other situations); or at least the user should be able to edit the cross field to encourage/enforce this alignment (similar to Instant Meshes)
    b) Feature constraints by the user: One can directly mark paths as “features”; currently, they do need to be edges in the mesh, so one may have to subdivide the input (e.g. with the knife tool). Better tools to find and insert such paths/loops would be useful here.

  • Spiraling. Several of you mentioned spiraling as a big issue. There is a bunch of research into automatically fixing it or preventing it from occuring in the first place. However, my impression is that manual guidance will probably be more reliable for now, and is definitely much easier to implement. In fact, the “feature” handling of several retopology tools - including QuadWild - should in theory already suffice to allow the sort of manual control some of you mentioned, e.g. delineating a region from which no spirals can escape. A feature edge loop around Suzanne’s ear that is marked as feature would effectively prevent any spiraling from escaping the ear. We could also apply such constraints later in the process, e.g. marking mandatory edge loops in the polygonal decomposition.

  • Heatmap for quad density. There is some support in the QuadWild code (but not exposed/usable), however as far as I remember, it did not influence crossfield optimization, which I believe is crucial to get high quality here. (Note that several crossfield methods with support for sizing have been published, but I haven’t worked on that topic in particular). T-mesh quantization can take user-specified target densities into account, but it might result in excessive sizing singularities when strong emphasis is placed on adhering to those target densities. By the way: A generalization of a heatmap could allow different scales for both quad directions (anisotropic sizing), but visualizing and editing such a 2-D sizing field will be more difficult than a simple (isotropic) heatmap. Nevertheless, would anisotropic sizing even be something that is relevant for the artistic usecase?

I hope this already helps resolve some of your questions. I’ll try to squeeze in the time to show and discuss the results on your meshes soon :slight_smile:

Best Regards
Martin Heistermann


It will be the most useful if this can be implemented as a node inside Geometry Nodes.


I’d like it to replace quadriflow first… then it could go fancy in geo nodes… :wink:


I don’t think Blender has any tools right now fore editing an anisotropic field. Best I can think of is editing two heatmaps separately, -which can be done within regular “weight painting” mode- but without the visualization part. Probably not ideal. Imho this kinda crosses the line of diminishing returns. Producing such a map would probably be somewhat involved (especially without convenient visualization) and this kind of fine grained control would probably be attained more easily with manual editing of the output mesh. I’m thinking mostly of humans, and other organic shapes here. Perhaps I’m not seeing all potential uses of this

1 Like