<!--
{
  "availability" : [
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TabletopKit",
  "identifier" : "/documentation/TabletopKit/EquipmentLayout",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "TabletopKit"
    ],
    "preciseIdentifier" : "s:11TabletopKit15EquipmentLayoutP"
  },
  "title" : "EquipmentLayout"
}
-->

# EquipmentLayout

A protocol for objects that describe the layout of equipment.

```
protocol EquipmentLayout
```

## Topics

### Laying out equipment

[`static func planarOverlapping(layout: [EquipmentPose2D], animationDuration: Double?) -> Self`](/documentation/TabletopKit/EquipmentLayout/planarOverlapping(layout:animationDuration:))

Use the overlapping layout to provide 2d poses for the immediate children and let TabletopKit determine their height and pitch/roll.

[`static func planarStacked(layout: [EquipmentPose2D], animationDuration: Double?) -> Self`](/documentation/TabletopKit/EquipmentLayout/planarStacked(layout:animationDuration:))

Use the stacked layout to provide 2d poses for the immediate children and let TabletopKit determine their height.

[`static func volumetric(layout: [EquipmentPose3D], animationDuration: Double?) -> Self`](/documentation/TabletopKit/EquipmentLayout/volumetric(layout:animationDuration:))

Use the volumetric layout to provide 3d poses for the immediate children directly.

## Relationships

### Conforming Types

[`DefaultEquipmentLayout`](/documentation/TabletopKit/DefaultEquipmentLayout)

---

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)