Creates meshes with axial symmetry like vases. The lathe rotates around the Y axis.

Code Example

const points = []; for (let i = 0; i < 10; i++) { points.push(new v3d.Vector2(Math.sin(i * 0.2) * 10 + 5, (i - 5) * 2)); } const geometry = new v3d.LatheGeometry(points); const material = new v3d.MeshBasicMaterial({ color: 0xffff00 }); const lathe = new v3d.Mesh(geometry, material); scene.add(lathe);


LatheGeometry(points : Array, segments : Integer, phiStart : Float, phiLength : Float)

points — array of Vector2s. The x-coordinate of each point must be greater than zero. Default is an array with (0, -0.5), (0.5, 0), and (0, 0.5) which creates a simple diamond shape.
segments — the number of circumference segments to generate. Default is 12.
phiStart — the starting angle in radians. Default is 0.
phiLength — the radian (0 to 2π) range of the lathed section: 2π is a closed lathe, less than 2π is a portion. Default is 2π.

This creates a LatheGeometry based on the parameters.

Procedural geometry is fun. However, in real life applications this feature is rarely needed. It would be more efficient do design lathes in the preferred modelling suite and export/load to Verge3D via glTF.


See the base BufferGeometry class for common properties.

.parameters : Object

An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.


See the base BufferGeometry class for common methods.


For more info on how to obtain the source code of this module see this page.