<!--
{
  "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/SCNCone",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SCNCone"
  },
  "title" : "SCNCone"
}
-->

# SCNCone

A right circular cone or frustum geometry.

```
class SCNCone
```

## Overview

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

A cone defines the surface of a solid whose base is a circle and whose side surface tapers to a point centered above its base. A frustum also has a circular base and tapered sides but has a circular top, similar to a cone cut off below its apex.

Define the size of the cone’s base in the x- and z-axis dimensions of its local coordinate space with its [`bottomRadius`](/documentation/SceneKit/SCNCone/bottomRadius) property, and its extent in the y-axis dimension with its [`height`](/documentation/SceneKit/SCNCone/height) property. Create a cone that tapers to a point by setting its [`topRadius`](/documentation/SceneKit/SCNCone/topRadius) property to zero, or a frustum that tapers (or expands) to a circular top by setting the [`topRadius`](/documentation/SceneKit/SCNCone/topRadius) property to a different value.

To position and orient a cone in a scene, attach it to the [`geometry`](/documentation/SceneKit/SCNNode/geometry) property of an [`SCNNode`](/documentation/SceneKit/SCNNode) object.

Control the level of detail with the [`radialSegmentCount`](/documentation/SceneKit/SCNCone/radialSegmentCount) and [`heightSegmentCount`](/documentation/SceneKit/SCNCone/heightSegmentCount) properties. A higher radial segment count creates a smoother curve for the cone’s circular sides. A higher segment count in either direction produces more vertices, which can improve rendering quality for certain lighting models or custom shader effects, but at a cost to rendering performance.

A cone geometry may contain two or three [`SCNGeometryElement`](/documentation/SceneKit/SCNGeometryElement) objects, corresponding to its outer surface, its base and its top (or base only or top only, if the [`topRadius`](/documentation/SceneKit/SCNCone/topRadius) or [`bottomRadius`](/documentation/SceneKit/SCNCone/bottomRadius) property is zero). SceneKit can render each element using a different material. For details, see the [`materials`](/documentation/SceneKit/SCNGeometry/materials) property in [`SCNGeometry`](/documentation/SceneKit/SCNGeometry).

## Topics

### Creating a Cone

[`+  coneWithTopRadius:bottomRadius:height:`](/documentation/SceneKit/SCNCone/init(topRadius:bottomRadius:height:))

Creates a cone geometry with the given top radius, bottom radius, and height.

### Adjusting a Cone’s Dimensions

[`topRadius`](/documentation/SceneKit/SCNCone/topRadius)

The radius of the cone’s circular top. Animatable.

[`bottomRadius`](/documentation/SceneKit/SCNCone/bottomRadius)

The radius of the cone’s circular base. Animatable.

[`height`](/documentation/SceneKit/SCNCone/height)

The extent of the cylinder along its y-axis. Animatable.

### Adjusting Geometric Detail

[`radialSegmentCount`](/documentation/SceneKit/SCNCone/radialSegmentCount)

The number of subdivisions around the circumference of the cone. Animatable.

[`heightSegmentCount`](/documentation/SceneKit/SCNCone/heightSegmentCount)

The number of subdivisions in the sides of the cone along its y-axis. Animatable.

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

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

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

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

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

### 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)