Skip to main content
Version: Release 4.0.0

Sample Projects

These samples are designed to demonstrate the uses of each feature in our SDK. The sample project launches multiple small samples that you can try out and look though the code to learn how to get started with any feature. Step by step how-to guides are available to teach you how to to leverage each feature.

Installing the Samples

The samples are available on our github https://github.com/nianticspatial/nsdk-samples-csharp

How to clone/download the samples:

git clone https://github.com/nianticspatial/nsdk-samples-csharp.git

or

Download the repo from https://github.com/nianticspatial/nsdk-samples-csharp using the code/download button on github.

Open the samples project in Unity by pressing Add in Unity Hub and browsing to the project.

Samples

Depth Display

The depth scene demonstrates how to get the depth buffer and display it as an overlay in the scene. Open DepthDisplay.unity in the Depth folder to try it out.

Occlusion

This sample demonstrates occlusion by moving a static cube in front of the camera. Because the cube does not move, you can walk around and inspect the occlusion quality directly. To open it, see Occlusion.unity in the Depth folder. This sample also demonstrates two advanced occlusion options available in NSDK, Occlusion Suppression and Occlusion Stabilization. These options reduce flicker and improve the visual quality of occlusions using input from either scene segmentation or meshing. For more information on how these capabilities work, see the How-To sections for Occlusion Suppression and Occlusion Stabilization.

Scene Segmentation

This sample demonstrates scene segmentation by applying a shader that colors anything recognized on-screen as part of a semantic channel. To open this sample, see SemanticsDisplay.unity in the Semantics folder.

To use this sample:

  1. Select a semantic channel from the drop down list.
  2. Look for the corresponding object(s) on your phone camera.

Meshing

This sample demonstrates how to use meshing to generate a physics mesh in your scene. It shows the mesh using a Normal shader, the colors represent Up, Right and Forward.

To open this sample, see NormalMeshes.unity in the Meshing folder.

Triplanar Mesh

This sample demonstrates how to texture an NSDK mesh. It works like the Meshing sample but uses an example triplanar shader that demonstrates one way to do world space UV projection. The sample tiles three textures in the scene; one for the ground, the walls, and the ceiling.

To open this sample, see TriplanarMesh.unity in the Meshing folder.

VPS2 Localization

Attention

This sample requires Auth Login).

This sample shows a list of sites in the selected Organization and allows you to choose a VPS Asset from the Sites API as a localization target, then interfaces with your phone's position to guide you to it. To open this sample, see VPS2Localization.unity in the PersistentAR folder.

To use this sample:

  1. Build to your device and open the app. Make sure to allow location and camera permissions.
  2. Choose an Organization where the site you're looking for is.
  3. Choose the site you'll want to localize to and tap the Localize button.
  4. Physically visit the location and point the camera at the scaned location. A red arrow will appear pointing you in the general direction.
  5. Wait for the status to change to Tracking and a 3d mesh of the scan should appear on top of the real world location.

Recording

This sample allows you to scan a real-world location for playback in your editor. To open this sample, see Recording.unity in the Scanning folder. To learn how to use this sample, see How to Create Datasets for Playback.

Sites

The Sites feature provides access to organized entity data in the Niantic Spatial platform, enabling your application to discover and navigate the relationships between a user, organization, site, and spatial data asset. This feature allows you to query what spatial content is available to users and how it's structured within your organization.

Auth

This sample demonstrates different methods of authentication and authorization when working with NSDK.

There is a toggle, leading to two options:

  1. A developer login that provides full access to all features.
  2. Connection to a sample Enterprise backend where the user is anonymized.