isosurface extraction


I wanna build a program to extract isosurfaces from data collections. I have heard about Marching Cubes algorithms but I would like to know if there is any interesting web about it ad if it is really fast or the “fastest” algorithm I can use for that,


Goto to your favorite search engine and type
“Lorensen marching cubes” and you’re busy reading the next years.

Without decent optimizations the performance is O(n^3).

Here’s a link to an implementation (posted before on this forum I think):
But the normals should be generated with central differences. Search on this forum for that, too.

And here’s a link to links for others.

You might also search for publications from “Mathieu Desbrun” and “Implicit Surfaces”, “Delauny Triangulation”, “Marching Triangles”, “Lava Simulation” (Marie-Paul Cani:,,) etc.

[This message has been edited by Relic (edited 08-09-2002).]

If you want to see an implementation, look at the “Metaballs” project on my website. This uses marching cubes to display an isosurface through a field with points influencing the field with an inverse square formula.
However, the marching cubes part is separate and could easily be used to display an isosurface through any scalar field.

Originally posted by jrbcast:

I wanna build a program to extract isosurfaces from data collections…[/b]

Seed-based extraction of connected isosurfaces is a lot faster than marching through the entire volume. See:
Octree-Based Decimation of Marching Cubes Surfaces, Shekar

I implemented this and it works well. See:

Karthik Balasubramaniam

Just a question: is the marching cubes algorithm still patented?

I thought you should pay the author (whoever that is…) a fee if you are planning to use it in your software.