FindSurface Omniverse Demo

July 13, 2026 · View on GitHub

CurvSurf FindSurface™ demo application for NVIDIA Omniverse Kit.

FindSurface / FindSurface Omniverse Extension

This repository is organized as an NVIDIA Kit App Template project so Omniverse developers can build, launch, and package the demo with the standard repo tooling.

Overview

FindSurface Omniverse Demo shows a complete FindSurface workflow in Omniverse: importing point clouds, selecting seed points in a custom viewport, detecting analytic surfaces, capturing inliers, saving workspaces, and exporting detected geometry as USD.

The app is split into two local Kit extensions:

  • source/extensions/com.curvsurf.findsurface_omniverse: app-owned UI, import, picking, workspace, and export workflows.
  • source/extensions/com.findsurface.bootstrap: reusable FindSurface SDK wrapper, detection core API, and USD schema resources.

NVIDIA Omniverse Kit binaries are not included in this repository. The Kit App Template tooling downloads the required Kit SDK components and registry extensions from NVIDIA's official distribution endpoints during build or thin package installation. Use of NVIDIA Omniverse Kit is governed by NVIDIA's applicable license terms.

See what it looks like in action in the video below.

video

Click the thumbnail above or here to watch the video on YouTube.

From Source

Clone the repository, including submodules when the reusable FindSurface extension is managed as one:

git clone --recurse-submodules https://github.com/CurvSurf/FindSurface_Omniverse_Demo.git
cd FindSurface_Omniverse_Demo

Build and launch on Windows:

.\repo.bat build -c
.\repo.bat build
.\repo.bat launch

Build and launch on Linux:

sudo apt install build-essential cmake
./tools/build_picker.sh
./repo.sh build -c
./repo.sh build
./repo.sh launch

repo launch defaults to the release-facing demo app. Diagnostic .kit files remain available for validation and troubleshooting; launch them explicitly when needed, for example:

.\repo.bat launch findsurface.debug-validation.kit

The first build downloads Kit SDK components into _build/ and shared Packman or Omniverse caches. A compatible NVIDIA GPU driver is still required to run the app.

The repo.bat and repo.sh entrypoints force Python UTF-8 mode before NVIDIA repo tooling starts. This keeps dependency bootstrap independent of the host locale on Windows machines that use non-UTF-8 ANSI code pages.

Thin Release Package

The thin release zip does not include NVIDIA Omniverse Kit binaries. After receiving the zip file, extract it, open the extracted folder in a terminal, download Kit with the bundled installer script, then launch the demo.

Windows users run:

.\pull_kit_sdk.bat
.\com.curvsurf.findsurface_omniverse_demo.kit.bat

Linux users run:

./pull_kit_sdk.sh
./com.curvsurf.findsurface_omniverse_demo.kit.sh

The first pull_kit_sdk run downloads the required Kit runtime from NVIDIA's distribution endpoints. A compatible NVIDIA GPU driver is still required to run the demo. When the zip is built from WSL, it is a Linux package; use a Windows built zip when you need Windows launch scripts and Windows Kit binaries.

Preset sample files are packaged under exts/com.curvsurf.findsurface_omniverse/data/presets/. If no recent file location has been saved yet, the app opens Import at the point-cloud presets folder and Load at the workspace presets folder.

Native FindSurface SDK

The native FindSurface SDK binaries are distributed separately from this source repository. On startup, the demo tries to download the required FindSurface.dll or libFindSurface.so from the configured release endpoint. If the download fails or the file is missing, the app opens with detection disabled and shows a setup dialog.

See NATIVE_SDK.md for automatic download settings and the manual install paths for development checkouts and thin packages.

Repository Layout

source/apps/          Kit application files.
source/extensions/    Local FindSurface Kit extensions.
                      Preset sample files live in the app extension data folder.
source/native/        App-owned native point-picking helper source.
tools/                Kit App Template tooling plus project launch, validation,
                      and packaging scripts.
tests/                Python unit tests for import, detection, picking, and
                      export behavior.
images/               Manual screenshots and copied toolbar icons.

See MANUAL.md for the UI guide and usage workflow.

Validation

Run focused Python tests from the repository root:

python -m unittest discover tests

Licensing Notes

The native FindSurface SDK is owned by CurvSurf, Inc. NVIDIA Omniverse Kit and NVIDIA registry extensions are downloaded from NVIDIA distribution endpoints and are governed by NVIDIA's applicable terms. See THIRD_PARTY_NOTICES.md for third-party notices.