📄 threejs/Addons/Objects/MarchingCubes

File: MarchingCubes.md | Updated: 11/15/2025


title: MarchingCubes category: Addons layout: docs

MarchingCubes

A marching cubes implementation.

Port of: http://webglsamples.org/blob/blob.html

Import

MarchingCubes is an addon, and must be imported explicitly, see Installation#Addons.

import { MarchingCubes } from 'three/addons/objects/MarchingCubes.js';

Constructor

new MarchingCubes( resolution : number, material : Material, enableUvs : boolean, enableColors : boolean, maxPolyCount : number )

Constructs a new marching cubes instance.

resolution | The effect's resolution.
---|---
material | The cube's material.
enableUvs | Whether texture coordinates should be animated or not. Default is false.
enableColors | Whether colors should be animated or not. Default is false.
maxPolyCount | The maximum size of the geometry buffers. Default is 10000.

Properties

.enableColors : boolean

Whether colors should be animated or not.

Default is false.

.enableUvs : boolean

Whether texture coordinates should be animated or not.

Default is false.

.isMarchingCubes : boolean (readonly)

This flag can be used for type testing.

Default is true.

Methods

.addBall( ballx : number, bally : number, ballz : number, strength : number, subtract : number, colors : Color )

Adds a reciprocal ball (nice and blobby) that, to be fast, fades to zero after a fixed distance, determined by strength and subtract.

ballx | The x-coordinate of the ball.
---|---
bally | The y-coordinate of the ball.
ballz | The z-coordinate of the ball.
strength | The strength factor.
subtract | The subtract factor.
colors | The color.

.addPlaneX( strength : number, subtract : number )

Adds a plane along the x-axis.

strength | The strength factor.
---|---
subtract | The subtract factor.

.addPlaneY( strength : number, subtract : number )

Adds a plane along the y-axis.

strength | The strength factor.
---|---
subtract | The subtract factor.

.addPlaneZ( strength : number, subtract : number )

Adds a plane along the z-axis.

strength | The strength factor.
---|---
subtract | The subtract factor.

.blur( intensity : number )

Applies a blur with the given intensity.

intensity | The intensity of the blur. Default is 1.
---|---

.getCell( x : number, y : number, z : number ) : number

Returns the cell value for the given coordinates.

x | The x value.
---|---
y | The y value.
z | The z value.

Returns: The value.

.reset()

Resets the effect.

.setCell( x : number, y : number, z : number, value : number )

Sets the cell value for the given coordinates.

x | The x value.
---|---
y | The y value.
z | The z value.
value | The value to set.

.update()

Updates the effect.

Source

examples/jsm/objects/MarchingCubes.js