<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/ReverbMeshResource",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation18ReverbMeshResourceC"
  },
  "title" : "ReverbMeshResource"
}
-->

# ReverbMeshResource

A high-level representation of a collection of vertices and edges that define a shape used for simulating reverb.

```
final class ReverbMeshResource
```

## Overview

Use a `ReverbMeshResource` to describe the acoustic geometry of your scene. Create one from geometric
primitives, custom vertex data, or an existing [`MeshResource`](/documentation/RealityKit/MeshResource):

```swift
// From a geometric primitive:
let room = ReverbMeshResource.shoebox(size: [4, 3, 5])

// From custom vertex data:
let mesh = try ReverbMeshResource(
    positions: myPositions,
    triangleIndices: myIndices,
    materials: perFaceMaterialIndices
)

// From an existing mesh resource:
let mesh = try ReverbMeshResource(from: myVisualMesh)
```

Pair a reverb mesh with [`Audio.Material`](/documentation/RealityKit/Audio/Material) values and set a [`ReverbComponent`](/documentation/RealityKit/ReverbComponent) on an entity
to activate simulated reverb:

```swift
let reverb: Reverb = .simulated(mesh: room, materials: [.concrete, .carpet])
entity.components.set(ReverbComponent(reverb: reverb))
```

> Note: Reverb meshes perform best with fewer than 1000 polygons.

## Topics

### Creating standard room shapes

[`static func shoebox(size: SIMD3<Float>) -> Self`](/documentation/RealityKit/ReverbMeshResource/shoebox(size:))

Creates a box mesh with the vertices positioned such that the bottom surface is at y=0,
with faces oriented inward.

[`static func box(size: SIMD3<Float>) -> Self`](/documentation/RealityKit/ReverbMeshResource/box(size:))

Creates a box mesh with vertices positioned such that the origin is at the center,
with faces oriented outward.

[`static func plane(width: Float, depth: Float) -> Self`](/documentation/RealityKit/ReverbMeshResource/plane(width:depth:))

Creates a new rectangle reverb mesh with the specified dimensions in the entity’s xz-plane.

### Creating a custom mesh

[`convenience init(positions: [SIMD3<Float>], triangleIndices: [UInt32], materials: [UInt32]) throws`](/documentation/RealityKit/ReverbMeshResource/init(positions:triangleIndices:materials:))

Creates a reverb mesh resource from a list of positions, triangle indices, and material indices.

### Initializers

[`convenience(from:)`](/documentation/RealityKit/ReverbMeshResource/init(from:))

Creates a reverb mesh resource from a mesh resource.

## Relationships

### Conforms To

[`Resource`](/documentation/RealityKit/Resource)

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

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

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

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

---

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)