---
title: MeshResource
framework: realitykit
role: symbol
role_heading: Class
path: realitykit/meshresource
---

# MeshResource

A high-level representation of a collection of vertices and edges that define a shape.

## Declaration

```swift
@MainActor @preconcurrency class MeshResource
```

## Mentioned in

Creating a plane with low-level mesh Reducing CPU Utilization in Your RealityKit App

## Overview

Overview Use MeshResource to create procedural geometry from built-in primitives like boxes, spheres, planes, and cylinders, or from custom mesh data. Assign a mesh resource to an entity’s ModelComponent alongside an array of Material instances to render the shape in a scene. Check expectedMaterialCount to determine how many materials the mesh requires.

## Topics

### Creating a mesh resource

- [generate(from:)](realitykit/meshresource/generate(from:)-4aahn.md)
- [generate(from:)](realitykit/meshresource/generate(from:)-4aahn.md)
- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)
- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)
- [init(shape:)](realitykit/meshresource/init(shape:)-3rtda.md)
- [init(shape:)](realitykit/meshresource/init(shape:)-3rtda.md)
- [generateAsync(from:)](realitykit/meshresource/generateasync(from:)-1n2vv.md)
- [generateAsync(from:)](realitykit/meshresource/generateasync(from:)-1n2vv.md)

### Creating a low level resource

- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)
- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)
- [lowLevelMesh](realitykit/meshresource/lowlevelmesh.md)

### Configuring the resource

- [expectedMaterialCount](realitykit/meshresource/expectedmaterialcount.md)
- [replace(with:)](realitykit/meshresource/replace(with:)-g0kn.md)
- [replace(with:)](realitykit/meshresource/replace(with:)-g0kn.md)
- [replaceAsync(with:)](realitykit/meshresource/replaceasync(with:).md)

### Accessing resource data

- [contents](realitykit/meshresource/contents-swift.property.md)

### Getting a bounding box

- [bounds](realitykit/meshresource/bounds.md)

### Creating a box

- [generateBox(size:cornerRadius:)](realitykit/meshresource/generatebox(size:cornerradius:)-8em0v.md)
- [generateBox(size:cornerRadius:)](realitykit/meshresource/generatebox(size:cornerradius:)-2ovma.md)
- [generateBox(width:height:depth:cornerRadius:splitFaces:)](realitykit/meshresource/generatebox(width:height:depth:cornerradius:splitfaces:).md)
- [generateBox(size:majorCornerRadius:minorCornerRadius:)](realitykit/meshresource/generatebox(size:majorcornerradius:minorcornerradius:).md)

### Creating a plane

- [generatePlane(width:height:cornerRadius:)](realitykit/meshresource/generateplane(width:height:cornerradius:).md)
- [generatePlane(width:depth:cornerRadius:)](realitykit/meshresource/generateplane(width:depth:cornerradius:).md)

### Creating a primitive shape

- [generateSphere(radius:)](realitykit/meshresource/generatesphere(radius:).md)
- [generateCone(height:radius:)](realitykit/meshresource/generatecone(height:radius:).md)
- [generateCylinder(height:radius:)](realitykit/meshresource/generatecylinder(height:radius:).md)

### Creating a text mesh resource

- [generateText(_:extrusionDepth:font:containerFrame:alignment:lineBreakMode:)](realitykit/meshresource/generatetext(_:extrusiondepth:font:containerframe:alignment:linebreakmode:)-3py6y.md)
- [generateText(_:extrusionDepth:font:containerFrame:alignment:lineBreakMode:)](realitykit/meshresource/generatetext(_:extrusiondepth:font:containerframe:alignment:linebreakmode:)-3py6y.md)
- [init(extruding:textOptions:extrusionOptions:)](realitykit/meshresource/init(extruding:textoptions:extrusionoptions:)-7xk2s.md)
- [init(extruding:textOptions:extrusionOptions:)](realitykit/meshresource/init(extruding:textoptions:extrusionoptions:)-7xk2s.md)

### Creating a 3D mesh by extruding a 2D path

- [init(extruding:extrusionOptions:)](realitykit/meshresource/init(extruding:extrusionoptions:)-6640v.md)
- [init(extruding:extrusionOptions:)](realitykit/meshresource/init(extruding:extrusionoptions:)-6640v.md)

### Creating a mesh from an anchor

- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)
- [init(from:)](realitykit/meshresource/init(from:)-1i7c9.md)

### Structures

- [MeshResource.Contents](realitykit/meshresource/contents-swift.struct.md)
- [MeshResource.GenerateTextOptions](realitykit/meshresource/generatetextoptions.md)
- [MeshResource.Instance](realitykit/meshresource/instance.md)
- [MeshResource.JointInfluences](realitykit/meshresource/jointinfluences.md)
- [MeshResource.Model](realitykit/meshresource/model.md)
- [MeshResource.Part](realitykit/meshresource/part.md)
- [MeshResource.ShapeExtrusionOptions](realitykit/meshresource/shapeextrusionoptions.md)
- [MeshResource.Skeleton](realitykit/meshresource/skeleton.md)

### Initializers

- [init(extruding:extrusionOptions:)](realitykit/meshresource/init(extruding:extrusionoptions:).md)
- [init(extruding:textOptions:extrusionOptions:)](realitykit/meshresource/init(extruding:textoptions:extrusionoptions:).md)
- [init(from:)](realitykit/meshresource/init(from:).md)
- [init(shape:)](realitykit/meshresource/init(shape:).md)

### Instance Methods

- [meshPartIndex(modelID:partID:)](realitykit/meshresource/meshpartindex(modelid:partid:).md)
- [replace(with:)](realitykit/meshresource/replace(with:).md)

### Type Aliases

- [MeshResource.Font](realitykit/meshresource/font.md)

### Type Methods

- [generate(from:)](realitykit/meshresource/generate(from:).md)
- [generateAsync(from:)](realitykit/meshresource/generateasync(from:).md)
- [generateBox(size:cornerRadius:)](realitykit/meshresource/generatebox(size:cornerradius:).md)
- [generateText(_:extrusionDepth:font:containerFrame:alignment:lineBreakMode:)](realitykit/meshresource/generatetext(_:extrusiondepth:font:containerframe:alignment:linebreakmode:).md)

## Relationships

### Conforms To

- [Resource](realitykit/resource.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Model display

- [Creating 3D entities with RealityKit](visionos/creating-3d-entities-with-realitykit.md)
- [Creating 3D models as movable windows](visionos/creating-a-volumetric-window-in-visionos.md)
- [Creating a 3D painting space](visionos/creating-a-painting-space-in-visionos.md)
- [Tracking and visualizing hand movement](visionos/tracking-and-visualizing-hand-movement.md)
- [Applying mesh to real-world surroundings](visionos/applying-mesh-to-real-world-surroundings.md)
- [Obscuring virtual items in a scene behind real-world items](visionos/obscuring-virtual-items-in-a-scene-behind-real-world-items.md)
- [Manipulating models with RealityKit](realitykit/manipulating-models-with-realitykit.md)
- [ModelComponent](realitykit/modelcomponent.md)
- [ModelEntity](realitykit/modelentity.md)
