Marching Cubes Isosurface

Explore triangle surfaces extracted from mathematical scalar fields.

About this tool

Select a field, its parameter and 12–40 grid points per axis, then Render. Editing either numeric input or the field cancels the job and removes the old surface. Rotate and Wireframe change the existing view immediately. Drag to orbit; Ctrl/Command + wheel zooms. Rendering requires WebGL. Cancel stops the worker; the progress indicator reports activity, not a fabricated percentage.

Sphere: the parameter is radius r, with x²+y²+z²=r² (0.02–0.54). Torus: tube radius 0.02–0.19 around a ring of radius 0.35 in the xz-plane. Metaballs: level 1–20 of the sum of three softened inverse-square contributions; the default 8 produces a surface, while very low or high levels can be empty. Gyroid: level −1.5…1.5 of sin(6.5x)cos(6.5y)+sin(6.5y)cos(6.5z)+sin(6.5z)cos(6.5x), a nodal approximation, not an exact minimal surface.

The grid includes both ends of −0.55…+0.55 on every axis. Increasing resolution refines the same surface, but thin features and classic ambiguous cube cases can change topology. Surfaces meeting the box boundary remain open. Coordinates have no physical unit. Mesh details count generated triangles and sampled grid points; cell-local vertex copies are not unique physical vertices. Shading normals approximate the outward field gradient by central differences. This is not a measurement or volume renderer.

Raw parameter drafts, including blanks and invalid values, and display options are saved locally. Reload restores them without rendering. Version-2 shared settings retain their parameter meanings. A stationary surface redraws only for view changes; Rotation enables continuous drawing. Older settings are reset because torus and gyroid parameter meanings changed. Source: VTK: Marching Cubes example, surface extraction from sampled scalar data.