VPS and AR content
Both session modes use VPS. Prepare mapped venues and content in Graffity Console.
Use .arContent to localize when the hosted view starts, without destination or navigation UI:
import GraffityARCloud
@MainActor
func makeContentExperience(accessToken: String) throws -> GraffityARCloud {
try GraffityARCloud(configuration: GraffityARCloudConfiguration(
accessToken: accessToken,
mode: .arContent
))
}Use .navigation for destination-first guidance; localization starts after a destination is selected.
Localization status
Observe state.vpsState, statePublisher, stateStream(), or graffityARCloud(_:didLocalizeIn:):
| State | Meaning |
|---|---|
.idle | Not yet localizing. |
.awaitingInitial | Waiting for the initial level camera view. |
.guiding(progress:) | Guiding toward capture; progress is a hold fraction in 0–1. |
.localized(sectionId:) | Successfully localized into a section. |
.failed(error) | Failed; inspect the associated SDK error. |
Follow the camera guidance in the mapped area. Scene readiness alone does not indicate localization. The SDK loads and renders the localized section’s content; host apps do not fetch point-cloud files or attach SceneKit nodes.
The public API exposes no raw point clouds, solver tuning, custom anchors, or internal SceneKit scene. See state and lifecycle and error handling.