# Isosurface

Zirconocene with an isosurface showing areas of the molecule susceptible to electrophilic attack.
Isosurface of vorticity trailed from a propeller blade

## Definition

An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value (e.g. pressure, temperature, velocity, density) within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.

## Applications

Isosurfaces are normally displayed using computer graphics, and are used as data visualization methods in computational fluid dynamics (CFD), allowing engineers to study features of a fluid flow (gas or liquid) around objects, such as aircraft wings. An isosurface may represent an individual shock wave in supersonic flight, or several isosurfaces may be generated showing a sequence of pressure values in the air flowing around a wing. Isosurfaces tend to be a popular form of visualization for volume datasets since they can be rendered by a simple polygonal model, which can be drawn on the screen very quickly.

In medical imaging, isosurfaces may be used to represent regions of a particular density in a three-dimensional CT scan, allowing the visualization of internal organs, bones, or other structures.

Numerous other disciplines that are interested in three-dimensional data often use isosurfaces to obtain information about pharmacology, chemistry, geophysics and meteorology.

## Implementation Algorithms

### Marching Cubes

The marching cubes algorithm was first published in the 1987 SIGGRAPH proceedings by Lorensen and Cline,[1] and it creates a surface by intersecting the edges of a data volume grid with the volume contour. Where the surface intersects the edge the algorithm creates a vertex. By using a table of different triangles depending on different patterns of edge intersections the algorithm can create a surface. This algorithm has solutions for implementation both on the CPU and on the GPU.

### Asymptotic Decider

The asymptotic decider algorithm was developed as an extension to marching cubes in order to resolve the possibility of ambiguity in it,

### Marching Tetrahedrons

The marching tetrahedrons algorithm was developed as an extension to marching cubes in order to solve an ambiguity in that algorithm and to create higher quality output surface.

### Surface Nets

The Surface Nets algorithm places an intersecting vertex in the middle of a volume voxel instead of at the edges, leading to a smoother output surface.

### Dual Contouring

The dual contouring algorithm was first published in the 2002 SIGGRAPH proceedings by Tao and Frank,[2] developed as an extension to both surface nets and marching cubes. It retains the vertex at the center of the voxel but adds a surface generation that leverages quad trees to add support for geometry that adapts the number of outputed triangles to the complexity of the surface.

## Examples

Examples of isosurfaces are 'Metaballs' or 'blobby objects' used in 3D visualisation. A more general way to construct an isosurface is to use the function representation.