A LatheGeometry allows you to create shapes from a smooth curve. This curve is defined by a number of points (also called knots) and is most often called a spline. This spline is rotated around a fixed point and results in vase- and bell-like shapes.

In 3D computer graphics, a lathed object is a 3D model whose vertex geometry is produced by rotating the points of a spline or other point set around a fixed axis. The lathing may be partial; the amount of rotation is not necessarily a full 360 degrees. The point set providing the initial source data can be thought of as a cross section through the object along a plane containing its axis of radial symmetry.

The following example shows a geometry which can be generated using WHS.Lathe class.

const points = [];

for (let i = 0; i < 10; i++) {
    new THREE.Vector2(
      (Math.sin(i * 0.7) * 15 + 50) / 10,
      (i - 5) * 0.2

const lathe = new WHS.Lathe({
  geometry: {
    points: points

  material: new THREE.MeshBasicMaterial({
    color: 0xffffff

  position: [0, 50, 10]



Geometry defaults

  // ...

  geometry: {
    points: [] // Array of THREE.Vector2`s

These defaults are additional, there are also defaults filled by MeshComponent, etc.


  // ...

  geometry: ['points']