<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/PhotogrammetrySession/init(input:configuration:)-7glmh",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation21PhotogrammetrySessionC5input13configurationACx_AC13ConfigurationVtKcSTRzAA0C6SampleV7ElementRtzlufc"
  },
  "title" : "init(input:configuration:)"
}
-->

# init(input:configuration:)

Creates a session from a sequence of samples.

```
convenience init<S>(input: S, configuration: PhotogrammetrySession.Configuration = Configuration()) throws where S : Sequence, S.Element == PhotogrammetrySample
```

## Parameters

`input`

the input `Sequence` that will be iterated once to yield all input data.

`configuration`

the session-wide configuration to use for this session.

## Discussion

Creates a new session instance from a custom sequence of [`PhotogrammetrySample`](/documentation/RealityKit/PhotogrammetrySample) objects by iterating
over the provided  <doc://com.apple.documentation/documentation/Swift/Sequence> object.

The constructor will only use `makeIterator()` on `input` and will then iterate through the sequence
only once.  A provided iterator should be lazy, or a lazy  <doc://com.apple.documentation/documentation/Swift/Sequence> and map used.

> Note: To minimize memory usage, use lazy sequences that only create a ``doc://com.apple.RealityKit/documentation/RealityKit/PhotogrammetrySample`` as it iterates by making calls to `next()` on its associated
> <doc://com.apple.documentation/documentation/Swift/IteratorProtocol>.

---

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)