nsdk
Classes
| Name | Type | Summary |
|---|---|---|
| AsyncResult | AsyncResult<out TData, out TError : ErrorCodeProvider> | |
| AwarenessImageParams | AwarenessImageParams | Describes inferred image results. |
| CameraIntrinsics | CameraIntrinsics | Camera intrinsics. This is a copy of the ARCore CameraIntrinsics class. |
| CameraIntrinsicsFromARCore | CameraIntrinsicsFromARCore | - |
| DepthConfig | DepthConfig | Configuration parameters for ARDK's Depth System. ## Basic Usage kotlin val config = DepthConfig( framerate = 120 featureMode = AwarenessFeatureMode.SMOOTH, ) ARDK.ConfigureDepth(handle, config) |
| DeviceMappingConfig | DeviceMappingConfig | - |
| FrameData | FrameData | Container for all frame data sent to ARDK for processing. FrameData encapsulates camera frames, sensor data, and metadata that ARDK uses for tracking, mapping, VPS localization, and other AR features. Create one FrameData instance per camera frame and populate it with available sensor data before calling [NSDKSession.sendFrame]. ## Required Data - [cameraTimestampMs] - Frame timestamp for synchronization - [frameId] - Unique identifier for this frame ## Optional Data - [cameraImagePlanes] - Camera image data (YUV420_888 format) - [cameraPose] - Camera pose in world coordinates - [cameraIntrinsics] - Camera calibration parameters - [location] - GPS location data - [compass] - Compass/magnetometer data - [screenOrientation] - Device orientation - [trackingState] - ARCore tracking state |
| Image | Image | - |
| MeshingConfig | MeshingConfig | - |
| NsdkFeatureAlreadyInitializedStatusException | NsdkFeatureAlreadyInitializedStatusException | Thrown when a feature is already initialized. Corresponds to [NSDKStatus.FEATURE_ALREADY_INITIALIZED]. |
| NsdkFeatureNotInitializedStatusException | NsdkFeatureNotInitializedStatusException | Thrown when a required feature has not been initialized. Corresponds to [NSDKStatus.FEATURE_NOT_INITIALIZED]. |
| NsdkInvalidArgumentStatusException | NsdkInvalidArgumentStatusException | Thrown when a native argument has an invalid value. Corresponds to [NSDKStatus.INVALID_ARGUMENT]. |
| NsdkInvalidHandleStatusException | NsdkInvalidHandleStatusException | Thrown when a native handle is invalid or has been destroyed. Corresponds to [NSDKStatus.INVALID_NSDK_HANDLE]. |
| NsdkInvalidOperationStatusException | NsdkInvalidOperationStatusException | Thrown when a native operation is not valid in the current state. Corresponds to [NSDKStatus.INVALID_OPERATION]. |
| NsdkNullArgumentStatusException | NsdkNullArgumentStatusException | Thrown when a required native argument is null. Corresponds to [NSDKStatus.NULL_ARGUMENT]. |
| NSDKResult | NSDKResult<out TData, out TError : ErrorCodeProvider> | ResultDeprecated wrapper for NSDK operations that can succeed or fail. NSDKResult is a Kotlin sealed class designed to provide a type-safe abstraction over the return values of low-level C APIs. Instead of directly handling raw integer status codes from the C layer, Kotlin callers receive structured results as either Success or Error. |
| NSDKSession | NSDKSession | Creates a new NSDK instance with the provided API key. This is the primary entry point for initializing NSDK functionality. You must call this before using any other NSDK features. |
| NsdkStatusException | NsdkStatusException | Base class for all NSDK-specific exceptions originating from the native layer. |
| NsdkUnknownStatusException | NsdkUnknownStatusException | Thrown when an internal, unrecoverable error occurs in the native layer. that is unexpected |
| ScannerConfig | ScannerConfig | Configuration parameters for scanning functionality. ScannerConfig allows you to customize scan recording behavior including recording framerate, visualization settings, depth range, and output resolution. Use this class to optimize scanning performance for your specific use case. ## Basic Usage kotlin val config = ScannerConfig( framerate = 30, enableRaycastVisualization = true, enableVoxelVisualization = true ) scanningSession.configure(config) |
| abstract SessionBase | SessionBase<T : SessionBase<T>> | - |
| UUIDKey | UUIDKey | - |
| VPS2Config | VPS2Config | Configuration structure for the VPS2 session. |
| VPSConfig | VPSConfig | Configuration structure for the VPS session. VPSConfig allows you to customize VPS behavior including localization frequency, quality settings, and advanced features like temporal fusion. Use this class to optimize VPS performance for your specific use case. ### Usage kotlin val config = VPSConfig( enableContinuousLocalization = true, cloudInitialRequestsPerSecond = 2.0f, jpegCompressionQuality = 80 ) vpsSession.configure(config) |
| WPSConfig | WPSConfig | Configuration structure for the WPS session. This class allows you to customize WPS behavior including smoothing and framerate settings. In most cases, the default values provide optimal performance and should not be changed. ### Usage kotlin val config = WPSConfig( enableSmoothing = true, framerate = 120 ) wpsSession.configure(config) |
Interfaces
| Name | Type | Summary |
|---|---|---|
| ErrorCodeProvider | ErrorCodeProvider | - |
| ErrorFactory | ErrorFactory<E : ErrorCodeProvider> | - |
| NsdkLogCallback | NsdkLogCallback | Functional interface for receiving log messages from NSDK. This callback is invoked by the native NSDK library to send log messages to the Kotlin/Java layer. The callback receives the log level, message, and optional source location information. |
Data Classes
| Name | Type | Summary |
|---|---|---|
| AnchorUpdate | AnchorUpdate | Contains the latest tracking information for a VPS anchor. AnchorUpdate provides comprehensive information about an anchor's current state, including its pose, tracking quality, and status information. This data is updated as VPS refines its localization. ### Overview Anchor updates are retrieved via getAnchorUpdate(uuid) and provide the most current information about an anchor's position, orientation, and tracking status. The data includes confidence metrics and timestamps for quality assessment. ### Example kotlin val update = vpsSession.getAnchorUpdate(anchorId) println("Anchor ID: ${update.uuid}") println("Pose: ${update.anchorToLocalTrackingTransform}") println("Tracking State: ${update.trackingState}") println("Confidence: ${update.trackingConfidence}") if (update.trackingState == AnchorTrackingState.TRACKED && update.trackingConfidence > 0.8f) { // Use anchor pose for AR content placement placeARContent(update.anchorToLocalTrackingTransform) } |
| AreaTarget | AreaTarget | - |
| AuthInfo | AuthInfo | Authentication information containing token claims. Contains parsed JWT claims including token string, expiration, user information, and other standard JWT fields. |
| AwarenessContext | AwarenessContext | - |
| Compass | Compass | - |
| CoverageArea | CoverageArea | - |
| DepthBuffer | DepthBuffer | Depth result from ARDK's Depth System after computing disparity. |
| GeolocationData | GeolocationData | - |
| LatLng | LatLng | Geographic coordinates representing latitude and longitude. LatLng is used throughout ARDK for specifying geographic locations, particularly for VPS coverage queries and area-based operations. |
| LocalizationTarget | LocalizationTarget | - |
| MapMetadata | MapMetadata | - |
| MeshData | MeshData | - |
| MeshDownloaderData | MeshDownloaderData | - |
| MeshingUpdateInfo | MeshingUpdateInfo | - |
| PathConfig | PathConfig | Optional path overrides mirroring native ARDK_PathConfig. Null or empty values mean: let native auto-detect paths. |
| RecordingInfo | RecordingInfo | - |
| ScanSaveInfo | ScanSaveInfo | Information about a saved scan. This class contains details about a scan that has saved (or attempted to be saved), including its unique identifier, file system path, and ultimate state. |
| WPSLocation | WPSLocation | Contains world positioning data from the WPS (World Positioning System). WPSLocation provides global positioning information that combines GPS/GNSS data with visual positioning for enhanced accuracy and reliability. ### Overview WPS location data includes: - Reference GPS coordinates (latitude, longitude, altitude) - Transformation matrix for coordinate conversions - Status information about positioning quality ### Example kotlin val result = wpsSession.getLatestLocation() when (result) { is ARDKResult.Success -> { val location = result.value println("GPS Coordinates: ${location.referenceLatitudeDegrees}, ${location.referenceLongitudeDegrees}") println("Altitude: ${location.referenceAltitudeMetres} meters") // Use the transformation matrix for coordinate conversions val worldPosition = location.trackingToRelativeEdn placeARContent(worldPosition) } is ARDKResult.Error -> { println("WPS error: ${result.code}") } } |
Enums
| Name | Type | Summary |
|---|---|---|
| AgeLevel | AgeLevel | Codes describing the age level of the user. This enum represents the age classification for users of the NSDK |
| AnchorTrackingState | AnchorTrackingState | Represents the current tracking state of a VPS anchor. The tracking state indicates how well the system is able to track an anchor's position and orientation in the current environment. This information is crucial for determining the reliability of anchor pose data. ### Overview Tracking states progress from not tracked to fully tracked, with limited tracking representing an intermediate state where tracking is possible but may be less reliable. ### Example kotlin val update = vpsSession.getAnchorUpdate(anchorId) when (update.trackingState) { AnchorTrackingState.NOT_TRACKED -> println("Anchor is not currently being tracked") AnchorTrackingState.LIMITED -> println("Anchor tracking is limited - pose may be unreliable") AnchorTrackingState.TRACKED -> println("Anchor is fully tracked - pose is reliable") } |
| AnchorTrackingStateReason | AnchorTrackingStateReason | Provides additional context about why an anchor is in a particular tracking state. When an anchor is not tracked or has limited tracking, this enum provides specific reasons that can help developers understand and respond to tracking issues. ### Overview Tracking state reasons help diagnose why tracking may be failing or limited, enabling applications to provide appropriate user feedback or take corrective actions. ### Example kotlin val update = vpsSession.getAnchorUpdate(anchorId) when (update.trackingStateReason) { AnchorTrackingStateReason.INITIALIZING -> println("Anchor is still initializing - tracking will improve") AnchorTrackingStateReason.PERMISSION_DENIED -> println("Tracking failed due to permission issues") AnchorTrackingStateReason.FATAL_NETWORK_ERROR -> println("Network error preventing tracking") else -> println("Other tracking issue: ${update.trackingStateReason}") } |
| AwarenessFeatureMode | AwarenessFeatureMode | - |
| AwarenessStatus | AwarenessStatus | - |
| FeatureStatus | FeatureStatus | - |
| ImageType | ImageType | - |
| InputDataFlags | InputDataFlags | - |
| Localizability | Localizability | - |
| MeshDownloaderError | MeshDownloaderError | - |
| NetworkError | NetworkError | Network error codes surfaced by NSDK networking-backed features. Mirrors ARDK_NetworkError. |
| NetworkRequestStatus | NetworkRequestStatus | Network request lifecycle status. Mirrors ARDK_NetworkRequestStatus. |
| NSDKStatus | NSDKStatus | Status codes returned by NSDK operations. NSDKStatus represents the outcome of NSDK API calls, indicating success or various types of failures. These codes help diagnose issues with NSDK integration and usage. |
| Orientation | Orientation | Device orientation when capturing camera frames. Orientation affects how ARDK interprets camera data and poses. Ensure the correct orientation is set in [FrameData.screenOrientation] for accurate tracking and localization. |
| ScanSaveError | ScanSaveError | Error codes that can be returned when a scan fails to save. |
| ScanSaveState | ScanSaveState | Enumeration of possible scan recording save states. This enum represents the current state of a scan recording operation, indicating whether the scan data has been successfully saved, discarded, or failed. |
| VpsCoverageError | VpsCoverageError | - |
| VpsGraphOperationError | VpsGraphOperationError | Error codes for VPS graph operations. These errors can occur during VPS operations that query the internal graph structure, such as converting device poses to geolocations. Each error provides specific information about why the operation failed. |
| WPSError | WPSError | Represents the current error status of the WPS (World Positioning System) feature. These error codes indicate specific issues that may prevent WPS from providing accurate positioning data. Applications should check for these errors and provide appropriate feedback to users. |
suspendfunctions. It intentionally omits an "in-progress" state, guaranteeing that the operation has reached a terminal state.