Marching cubes is a computer graphics algorithm, published in the 1987 SIGGRAPH proceedings by Lorensen and Cline,^{[1]} for extracting a polygonal mesh of an isosurface from a threedimensional scalar field (sometimes called voxels). An equivalent twodimensional method is called the marching squares algorithm.
The algorithm proceeds through the scalar field, taking eight neighbor locations at a time (thus forming an imaginary cube), then determining the polygon(s) needed to represent the part of the isosurface that passes through this cube. The individual polygons are then fused into the desired surface.
This is done by creating an index to a precalculated array of 256 possible polygon configurations (2^{8} = 256) within the cube, by treating each of the 8 scalar values as a bit in an 8bit integer. If the scalar's value is higher than the isovalue (i.e., it is inside the surface) then the appropriate bit is set to one, while if it is lower (outside), it is set to zero. The final value after all 8 scalars are checked, is the actual index to the polygon configuration array.
Finally each vertex of the generated polygons is placed on the appropriate position along the cube's edge by linearly interpolating the two scalar values that are connected by that edge.
The precalculated array of 256 cube configurations can be obtained by reflections and symmetrical rotations of 15 unique cases. However, using just 15 unique base cases produces an isosurface that is not watertight. The base cases that can produce a watertight isosurface are shown in the Marching Cubes survey article external link below (and in other papers).
The gradient of the scalar field at each grid point is also the normal vector of a hypothetical isosurface passing from that point. Therefore, we may interpolate these normals along the edges of each cube to find the normals of the generated vertices which are essential for shading the resulting mesh with some illumination model.
The applications of this algorithm are mainly concerned with medical visualizations such as CT and MRI scan data images, and special effects or 3D modelling with what is usually called metaballs or other metasurfaces.
Contents 
The Marching Cubes algorithm was the prime example in the graphics field of the woes of patenting software, patented despite being a relatively obvious solution to the surfacegeneration problem. Another similar algorithm was developed, called marching tetrahedrons, in order to circumvent the patent as well as a minor ambiguity problem of marching cubes with some cube configurations. This patent expired in 2005, and it is now legal for the graphics community to use it without royalties since more than 20 years have passed from its filing date (June 5, 1985^{[2]}).
