[page:BufferGeometry] →
# [name]

Creates a torus knot, the particular shape of which is defined by a pair of coprime integers, p and q. If p and q are not coprime, the result will be a torus link.

## Code Example

```
const geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );
const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
const torusKnot = new THREE.Mesh( geometry, material );
scene.add( torusKnot );
```

## Constructor

### [name]([param:Float radius], [param:Float tube], [param:Integer tubularSegments], [param:Integer radialSegments], [param:Integer p], [param:Integer q])

- radius - Radius of the torus. Default is 1.
- tube — Radius of the tube. Default is 0.4.
- tubularSegments — Default is 64.
- radialSegments — Default is 8.
- p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.
- q — This value determines, how many times the geometry winds around a circle in the interior of the torus. Default is 3.

## Properties

See the base [page:BufferGeometry] class for common properties.

### [property:Object parameters]

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

## Methods

See the base [page:BufferGeometry] class for common methods.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]