[addon] Retopo with Isobaren and Triangulierung

Isobaren are edges, which are aligned to one of the three planes (xy, xz, yz).
This script makes a retopo by using a global grid of isobares.

For me that’s very helpful for architectural modells.

There is a button for the opposite retopo, which makes a Triangulation with a least amount of triangles.
This Triangulation work on faces or on points and edges.

This script is still unstable it crashes blender, when you use to many faces (500+) to make a retopo.

The result is not mend into the rest of the mesh, i wanted to option to make an retopo just on Parts of the mesh.

Faces are optional grouped by their normals, every group is handled seperately.

link to the script



Hey man, that sounds great :slight_smile: script produce some strange things in some parts of a mesh, but as second release it’s great, thanks.

I used some script in 2.4x version that I would love to see in 2.5 too:
triangular http://blenderartists.org/forum/showthread.php?t=65240
quadratic http://blenderartists.org/forum/show…php?p=1394478

Anyway have you seen Remesh Modifier from Nicholas Bishop?


The first python script (that, which triangulates an Curve), uses an external programm - which i try to avoid.
I have used my triangulation, and it took nearly half an hour to fill a curve with 64 point - but at least it filled the curve correctly. I can try to make some serious speed ups.

This Curve below (24 points) took me about a minute to fill.
First i used the triangulation (with ‘clean faces’ - option off). I manually split up the curve in four subloops and used the triangulation on every subloop separately - that speeds up the whole process.
Then i tried isobaren - and it worked this time.


Found another Bug:
if you are sorting a set of vectors by their coordinates, you need to round, because otherwise the math inaccuracy is taken into account.

 if coor == 0:
     # sortieren by z and y
     pointsA = sorted(pointsA, key=lambda self : round(self[2],4))
     pointsA = sorted(pointsA, key=lambda self : round(self[1],4))

but this idea of sorting nevertheless seems to be a wrong, all vectors are in a line, and i just needs a sorting, so i can go along this line, no matter what direction this line is.

Isobaren works nice.
For my test of old “Flag” addon worked if I unchecked “Group Faces by Normals”.

Triangulate either filled only holes (when outside or inside check was marked) or filled it whole with holes (with no detection selected)

triangulation always switch to face mode, is there any reason?

ad Triangulate script for 2.4x: I definitely prefer version without external things. I just posted to let you thing about this kind of triangulation that is better for organic shapes.

Thanks for testing.
I am about to make an option for safety-handling to avoid, that user will start this script with to much verts. I just do not know how to produce an appropriate alert-message on the Interface.

I have to switch to faces and verts, because otherwise parts of the new verts just vanishes, and i have still not figured out why this happens. Also i do not know, why some of the coordinates of some verts turn to 0 at the end of the script. I got the impression, that assigning new verts and faces should happen as far at the end of the script as possible, and should happen all at once.

The problem with the inside-outside-detection can happen, if the triangulation fails to make all triangles, so that there is a hole in the result. This hole unwinds a proper detection. Putting in some arbitrary points near areas with lot of points sometimes help (and the results look prettier).

Yes, i also have experienced some better result in the physic engine. But for the physic-engine i would like to have a more adaptive triangulation, like the external program you pointed out. One of the main algorithms (delauney-triangulation) will be a big help, but now i need some algorithm to make the internal points, something that make them more dense on parts with a lot of details.

By the way, an improved script is out
i have unraveled two more problems, but still a lot to do…

Interesting stuff, will keep an eye on this thread!

More improvements:

  • both directions (triangulate and isobaren) have less ‘holes’ or failures of makeing faces
  • isobaren avoids duplicate Faces or Verts
  • isobaren has no coordinate Failures anymore

butt still there are drop-outs by making the faces, but these are so few, that they can easely can remade manually

Link to the add-on


thanks for progress :slight_smile:

NOTE: PLEASE can you unify naming?
Script calls “delauney” in addon panel calls “triangulate” and on space search it calls “mesh.isobaren label”. With each new release I’m confuse when I want to download, activate and use the script. Thank you very much.

Script is updated for 2.6

Just a reminder, what this script does,
it makes out of several choosen faces a new mesh with faces aligned to the axis,
and optimizes several faces to a minimum set of triangles (see Delauney-Triangulation).
This script is a great support for me for modelling architectual structures.


Hier a link to the script


Hi, with the latest revision I can’t enable your addon :

File "/home/xxx/.blender/2.60/scripts/addons/delauney.py", line 679
SyntaxError: Non-UTF-8 code starting with '\xdf' in file /home/xxx/.blender/2.60/scripts/addons/delauney.py on line 679, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

me too here!

@DrBouvierLeduc and @tungee,
Did you make sure you downloaded the latest release from his link above? It’s not the link in the first post, but the last post on the page. I just tried it and it works as expected.

Yes, I downloaded from post #11.
I’m on linux btw

I’m on Win64 with the latest SVN and works no problem. The issue your having has something to do with the encoding of characters inside the script (like this “Û|²|°|±|É|¹|Í”). I can’t find any offending

Someone who knows more about this could probably give you more info. But I bet you could fix the script by hunting through and looking for any offending characters and delete them. Or open script up in a text editor and make sure when you save it, it saves it as a UTF-8 encoding.

I can’t get the error you’re having so I can’t help you debug anymore than that.

Checked it and also didn’t find anything offending, i have no clue what could cause this error or how to fix it - it’s nearly the same line as 676.
It was coded on windows, but i can’t imagine that this causes the problem because it would have been trouble on all lines.

If someone finds something out, please let me know.

I just tried this out on Ubuntu 10.10 with a fresh svn build. I had no problems opening the script and running this great little tool!

@DrBouvierLeduc and @tungee,
Maybe try re-downloading the script and un-zip a new copy of the file. Maybe there’s a chance that your files somehow got corrupted from the download or un-zipping process (especially since you’re getting an encoding error).

I just tried it out with a simple task to see how well it would work on fixing up fonts.
I converted my font to a mesh and ran the script by clicking the make isobaren button. It took FOREVER. Wow, slow as heck, it reported 4,069,942.79 mSec to run.

The result were unusable. Observe all the holes in my text below.

Is there something more I should be doing, or do I just click that one button?


it’s propably really that slow and still leaves much holes in the result,
there is a relationship between points and time:
twice as much point, eight times longer to execute.
have you tried it on a single face or a few faces ?

i recomment to use this script only at a limited amount on faces at once.
I use this script as a grid-maker only on basic meshes or parts of a mesh, if i want to add some structures on a flat surface or align several difficult surfaces, and transform the mesh right back to a minimal amount of triangles when i am done.

Besides the faults in the script, it should make no problems in including the script in any Blender 2.6 version. Any Ideas why this script causes problems in starting ?