Skip to Content
iOS OptionsVPS and AR Content

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:):

StateMeaning
.idleNot yet localizing.
.awaitingInitialWaiting 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.