UArExperiences class abstract

Ready-made AR screens and checks: ARCore (Android), ARKit (iOS), WebXR or camera+compass (web); desktops report unsupported. Needs permission add camera. UArExperiences.place(items: [UArPlaceable(id: "sofa", title: "Sofa", source: UArSource.asset("assets/sofa.glb"))])

Constructors

UArExperiences()

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

availability() → Future<UArAvailability>
Whether AR can run: supported, needs ARCore install, unsupported…
capabilities() → Future<UArCapabilities>
Which AR features this device has (planes, faces, depth, geo, LiDAR…).
captureObject({UArObjectCaptureDetail detail = UArObjectCaptureDetail.reduced}) → Future<UArObjectCaptureResult?>
Photographs a real object into a 3D model (iOS 17+ with LiDAR); null elsewhere.
codes({required Widget cardBuilder(BuildContext context, String code, UArProjection projection)}) → Future<void>
Floats a card of your own over every QR code the camera sees.
images({required List<UArImageTarget> targets}) → Future<void>
Shows content when the camera sees one of targets (posters, packaging).
isSupported() → Future<bool>
True when live AR can run right now. if (await UArExperiences.isSupported()) …
measure({UArMeasureUnit unit = UArMeasureUnit.metric, bool closeShape = false}) → Future<void>
Measures lengths and areas with the camera (Android, iOS).
openNativeViewer(UArNativeViewerOptions options) → Future<bool>
Opens a model in the OS viewer: Quick Look (iOS), Scene Viewer (Android).
openSettings() → Future<bool>
Opens the app's settings to grant a denied permission.
permission() → Future<UArPermissionState>
Camera (and location/microphone) permission for AR.
place({required List<UArPlaceable> items, int initialItem = 0, UArConfig config = const UArConfig(reticle: true), UArSceneOptions options = const UArSceneOptions(), List<UArOverlay> overlays = const <UArOverlay>[], UArLabels labels = const UArLabels(), UArStyle style = const UArStyle(), void onPlaced(UArPlacedItem placed)?}) → Future<void>
Lets the user place 3D products/furniture in the room and move, rotate, scale them. UArExperiences.place(items: [UArPlaceable(id: "chair", title: "Chair", source: UArSource.url(glbUrl))])
places({required List<UArPlace> places, void onPlaceTap(UArPlace place)?, double maxDistance = 800}) → Future<void>
Shows nearby places as floating labels (needs permission add location).
renderWidget(Widget widget, {Size size = const Size(320, 200), double pixelRatio = 3, BuildContext? context}) → Future<Uint8List?>
Renders a Flutter widget to PNG bytes (for labels/cards placed in AR).
requestInstall() → Future<UArAvailability>
Android: asks to install/update ARCore from Play; returns the new availability.
requestPermission({bool location = false, bool microphone = false}) → Future<UArPermissionState>
Asks for the camera, and optionally location/microphone.
scanRoom() → Future<UArRoomScanResult?>
Scans a room into a 3D floor plan (iPhone/iPad with LiDAR only); null elsewhere.
tryOn({required List<UArTryOnItem> items, int initialIndex = 0}) → Future<void>
Face try-on of glasses, hats, masks with the front camera (iOS Face ID devices, Android ARCore).
viewProduct({required UArSource source, UArSource? iosSource, String? title, List<UArHotspot> hotspots = const <UArHotspot>[], UArLabels labels = const UArLabels()}) → Future<void>
Full-screen 3D viewer with a "View in AR" button (any platform shows 3D; AR where supported). UArExperiences.viewProduct(source: UArSource.url(glbUrl))