<!--
{
  "availability" : [
    "iOS: 8.0.0 - 26.0.0",
    "iPadOS: 8.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.8.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/SCNTorus",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SCNTorus"
  },
  "title" : "SCNTorus"
}
-->

# SCNTorus

A torus, or ring-shaped geometry.

```
class SCNTorus
```

## Overview

![](images/com.apple.scenekit/media-2929816@2x.png)

A torus is mathematically defined as a surface of revolution formed by revolving a circle around a coplanar axis. It is the product of two circles: a large ring and a pipe that encircles the ring. SceneKit uses these terms to define the dimensions of a torus geometry in its local coordinate space. The torus’ [`ringRadius`](/documentation/SceneKit/SCNTorus/ringRadius) property defines a circle in the x- and z-axis dimensions, centered at the origin, and its [`pipeRadius`](/documentation/SceneKit/SCNTorus/pipeRadius) property defines the width of the surface encircling the ring. To change the orientation of a torus, adjust the [`transform`](/documentation/SceneKit/SCNNode/transform) property of the node containing the torus geometry.

Control the level of detail with the [`ringSegmentCount`](/documentation/SceneKit/SCNTorus/ringSegmentCount) and [`pipeSegmentCount`](/documentation/SceneKit/SCNTorus/pipeSegmentCount) properties. Higher segment counts produce more vertices and a more smoothly curved surface, which can improve rendering quality at a cost to rendering performance.

## Topics

### Creating a Torus

[`+  torusWithRingRadius:pipeRadius:`](/documentation/SceneKit/SCNTorus/init(ringRadius:pipeRadius:))

Creates a torus geometry with the specified ring radius and pipe radius.

### Adjusting a Torus’ Dimensions

[`ringRadius`](/documentation/SceneKit/SCNTorus/ringRadius)

The major radius of the torus, defining a circle in the x- and z-axis dimensions. Animatable.

[`pipeRadius`](/documentation/SceneKit/SCNTorus/pipeRadius)

The minor radius of the torus, defining the pipe that encircles the torus ring. Animatable.

### Configuring Torus Properties

[`ringSegmentCount`](/documentation/SceneKit/SCNTorus/ringSegmentCount)

The number of subdivisions around the torus ring. Animatable.

[`pipeSegmentCount`](/documentation/SceneKit/SCNTorus/pipeSegmentCount)

The number of subdivisions around the torus pipe. Animatable.

## Relationships

### Conforms To

[`SCNAnimatable`](/documentation/SceneKit/SCNAnimatable)

[`SCNBoundingVolume`](/documentation/SceneKit/SCNBoundingVolume)

[`Hashable`](/documentation/Swift/Hashable)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`SCNShadable`](/documentation/SceneKit/SCNShadable)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

### Inherits From

[`SCNGeometry`](/documentation/SceneKit/SCNGeometry)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)