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

# SCNCylinder

A right circular cylinder geometry.

```
class SCNCylinder
```

## Overview

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

A cylinder defines the surface of a solid whose every cross section along a linear axis is a circle of equal size. Define the size of the cylinder’s cross section in the x- and z-axis dimensions of its local coordinate space with the [`radius`](/documentation/SceneKit/SCNCylinder/radius) property, and its extent in the y-axis dimension with the [`height`](/documentation/SceneKit/SCNCylinder/height) property. To position and orient a cylinder 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/SCNCylinder/radialSegmentCount) and [`heightSegmentCount`](/documentation/SceneKit/SCNCylinder/heightSegmentCount) properties. A higher radial segment count creates a smoother curve for the cylinder’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 cylinder contains three [`SCNGeometryElement`](/documentation/SceneKit/SCNGeometryElement) objects: one each for its base and top, and one that wraps around its sides. 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 Cylinder

[`+  cylinderWithRadius:height:`](/documentation/SceneKit/SCNCylinder/init(radius:height:))

Creates a cylinder geometry with the specified radius and height.

### Adjusting a Cylinder’s Dimensions

[`radius`](/documentation/SceneKit/SCNCylinder/radius)

The radius of the cylinder’s circular cross section. Animatable.

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

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

### Adjusting Geometric Detail

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

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

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

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

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

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

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

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

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

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