<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ModelIO",
  "identifier" : "/documentation/ModelIO/MDLVertexDescriptor/layouts",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Model I/O"
    ],
    "preciseIdentifier" : "c:objc(cs)MDLVertexDescriptor(py)layouts"
  },
  "title" : "layouts"
}
-->

# layouts

The list of vertex buffer layouts described by the vertex descriptor.

```
var layouts: NSMutableArray { get set }
```

## Discussion

A [`MDLVertexBufferLayout`](/documentation/ModelIO/MDLVertexBufferLayout) object describes the layout of data in one of the vertex buffers of a of a [`MDLMesh`](/documentation/ModelIO/MDLMesh) object.

For meshes whose vertex data is split into multiple vertex buffers (a *structure of arrays* design), the order of objects in this array reflects the order of buffers in the mesh’s [`vertexBuffers`](/documentation/ModelIO/MDLMesh/vertexBuffers) array, which in turn parallels the order of vertex attributes in the descriptor’s [`attributes`](/documentation/ModelIO/MDLVertexDescriptor/attributes) array. If a mesh contains interleaved data in a single vertex buffer (an *array of structures* design), the descriptor contains only one [`MDLVertexBufferLayout`](/documentation/ModelIO/MDLVertexBufferLayout) object, which describes the offset between entries for consecutive vertices in the buffer.

---

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)