Point Cloud Editing#

The Selection Box is an interactive 3D bounding-box tool. Use it to spatially filter and operate on Point Cloud data in the viewport. It is part of the omni.pointcloud.ui extension and loads automatically with the Point Cloud Streaming Bundle extension.

Use the Selection Box to:

  • Visually define a region of interest within a streamed or imported Point Cloud to run clash detection queries.

  • Run spatial operators (Cut Inside, Cut Outside, Copy & Paste) on USD Points or streamed Point Clouds.

  • Snapshot the current box state as a hidden USD prim for comparison or reuse.

Selection Box Window Panels#

The Selection Box window contains five collapsible panels.

Selection Workflow describes how to use the Selection Box.

Selection Workflow panel in the Selection Box window

Selection Options — display and behavior toggles:

Selection Options panel in the Selection Box window
  • Show Selection Box — Toggles solid box prim visibility in the viewport (default: on).

  • Show Wireframe Outline — Toggles a viewport wireframe overlay on the selection box (default: off).

  • Show Curve Outline — Toggles the BasisCurves prim outline (default: on).

  • Use Section Planes — Clips everything outside the box.

Point Cloud viewport with Use Section Planes disabled

Use Section Planes Off#

Point Cloud viewport with Use Section Planes enabled

Use Section Planes On#

Selection Box Parameters — defines the spatial extent of the box:

Selection Box Parameters panel with minimum and maximum position fields
  • Minimum Position (X, Y, Z) — Lower bound of the axis-aligned bounding box (default: -1.0, -1.0, -1.0).

  • Maximum Position (X, Y, Z) — Upper bound of the axis-aligned bounding box (default: 1.0, 1.0, 1.0).

    Note

    The minimum and maximum position values update automatically so the minimum is always smaller than the maximum across all dimensions.

  • Load from Box Prim — Imports bounds from an existing box-type USD prim in the Stage.

    Note

    You can create box-type USD prims manually (for example, Create > Shape > Cube) for use with the Selection Box.

  • Copy Selection To Stage — Saves the current box to the Stage as a hidden snapshot under <defaultPrim>/SelectionStates with auto-incremented names (for example, SelectionToolBox01, SelectionToolBox02).

The following steps describe how to open the Selection Box and place it:

  1. Open Tools > Selection Box.

    Selection Box item in the Tools menu
  2. Confirm the temporary SelectionToolBox prim (Cube type) and SelectionToolCurves prim (BasisCurves) in the Stage.

    Temporary SelectionToolBox and SelectionToolCurves prims in the Stage tree
  3. Confirm that the active viewport tool is Selection Box.

    Note

    By default, Selection Box edits are authored in the USD session layer (useSessionLayer = true). They are not saved to the root layer unless you change this setting.

  4. Right-click a Point Cloud surface in the viewport where you want to place the box.

  5. Select Place Selection Box from the context menu.

    Viewport in Selection Box mode with Place Selection Box context menu

The Selection Box center moves to the indicated world position, and the box uses default dimensions.

Note

If no valid hit point is found (for example, when you right-click empty space), a warning toast notification appears and the box does not move.

Resize and save the box:

  1. Use the viewport pivot to position and resize the box.

  2. Select the SelectionToolBox prim in the Stage to use the standard viewport transform.

    Selection Box placed on a Point Cloud surface in the viewport

    Note

    The Minimum Position and Maximum Position fields in the Selection Box Parameters panel stay synchronized automatically.

  3. To save the box permanently to the Stage, select Copy Selection To Stage. You can create multiple boxes with different dimensions and locations in the Stage.

    Note

    Until you select Copy Selection To Stage, the current box is temporary and is removed when you close the Selection Box window.

Point Set Operators — applies spatial operations scoped to the current box bounds:

Point Set Operators panel with Source Geometry and Operator dropdowns
  • Source Geometry — Lists all compatible Point Cloud prims in the Stage (USD Points or NVSealedUsdArchive streamed point sets).

  • Operator — Available operators depend on the target prim type.

    USD Points Type:

    • Cut Inside — Removes non-rotated points inside the current Selection Box and keeps points outside.

    • Cut Outside — Keeps non-rotated points inside the current Selection Box and removes points outside.

    • Merge Points — Merges sibling USD point sets under the same parent group into a single USD point set.

    • Copy & Paste — Copies non-rotated points inside the Selection Box into a new USD point set.

    • Pointset Info — Logs diagnostics about the selected USD points prim.

    • Meshing — Reconstructs a mesh from USD Points using the local GPU.

    Streamed Points Type:

    • Streamed Points Copy & Paste — Extracts streamed points inside the Selection Box at the highest resolution and writes them as editable USD points.

    • Streamed Points Copy Nodes — Copies streamed nodes that intersect the Selection Box into a new streamed points prim at the highest resolution. This can include points outside the Selection Box.

    • Streamed Points LOD Box — Creates a streamed LOD Selection Box (exclusion) from the current selection bounds and a fresh _crop_NN sibling that carries its own inclusion-mode box.

    • Meshing — Reconstructs a mesh from streamed point clouds at the highest resolution using the local GPU.

  • Run Operator — Executes the selected operator. Result and timing are logged to the console. Potential errors are highlighted by a warning message.

Selection Highlighting — assigns and live-updates a highlight material on a point set:

Selection Highlighting panel in the Selection Box window
  • Point Highlight Material — Select a USD Points prim as the highlight target.

  • Selection Box Material — Select a compatible MDL material from the Stage (must expose minPosition and maxPosition parameters).

  • Selection Box Auto Scale — Auto-scales the Selection Box curve outline based on camera distance on placement.

  • Curve Radius — Adjusts the width of the curve outline (default: 0.02).

  • Section Plane Offset — Outward distance (world units) between the box faces and the RTX section planes. This offset keeps the selection box and curve outlines from being clipped when Use Section Planes is on (default: 0.05).

  • Add Selection Box Material — Creates a transparent material in the Stage, binds it to the Selection Box, and places it under <defaultPrim>/Looks.

Operator: Cut Inside#

The following steps describe how to use the Cut Inside operator:

  1. Position the Selection Box around the area of interest.

  2. In the Point Set Operators panel, select the target USD Points prim from the Source Geometry dropdown.

  3. Select Cut Inside from the Operator dropdown.

  4. Select Run Operator.

Points inside the Selection Box are removed from the target prim.

Cut Inside operator result before running the operator

Points inside the positioned Selection Box#

Cut Inside operator result after running the operator

Result after removing the points inside the Selection Box#

Operator: Cut Outside#

The Cut Outside operator keeps points inside the current Selection Box and removes points outside it from the target USD Points prim.

  1. Position the Selection Box around the points you want to keep.

  2. In the Point Set Operators panel, select the target USD Points prim from the Source Geometry dropdown.

  3. Select Cut Outside from the Operator dropdown.

  4. Select Run Operator.

The target prim contains only the points inside the Selection Box. As with Cut Inside, this operator is documented for non-rotated points.

Cut Outside operator result in the viewport

Operator: Merge Points#

The Merge Points operator combines sibling USD point sets under the same parent group into a single USD point set.

  1. In the Stage, identify the sibling USD Points prims under the parent group you want to merge.

  2. In the Point Set Operators panel, select a USD Points prim in that group from the Source Geometry dropdown.

  3. Select Merge Points from the Operator dropdown.

  4. Select Run Operator.

  5. Select Run Operator again for each additional sibling USD point set.

  6. Inspect the resulting USD point set in the Stage and viewport.

The merge is based on the sibling point sets under the same parent group; it is not an extraction of points inside the Selection Box.

Merge Points operator result in the viewport

Operator: Copy and Paste#

The Copy & Paste operator copies non-rotated points inside the Selection Box from a USD Points prim into a new USD point set.

  1. Position the Selection Box around the points you want to copy.

  2. In the Point Set Operators panel, select the source USD Points prim from the Source Geometry dropdown.

  3. Select Copy & Paste from the Operator dropdown.

  4. Select Run Operator.

  5. Locate the new USD Points prim in the Stage and inspect the copied subset.

Use Streamed Points Copy & Paste instead when the source is a streamed point cloud (NVSealedUsdArchive).

Copy & Paste operator result in the viewport Copy & Paste operator result in the Stage

Operator: Pointset Info#

The Pointset Info operator logs diagnostics about the selected USD Points prim to the console.

  1. In the Point Set Operators panel, select the USD Points prim you want to inspect from the Source Geometry dropdown.

  2. Select Pointset Info from the Operator dropdown.

  3. Select Run Operator.

  4. Review the diagnostics in the console.

Use this operator to inspect the selected point set. Its output is diagnostic information rather than a new point set or a cropped subset.

Operator: Streamed Points Copy and Paste#

The following steps describe how to use the Streamed Points Copy & Paste operator:

  1. Position the Selection Box around the area of interest.

  2. In the Point Set Operators panel, select the source streamed point cloud (NVSealedUsdArchive) from the Source Geometry dropdown.

  3. Select Streamed Points Copy & Paste from the Operator dropdown.

  4. Select Run Operator.

  5. Locate the new USD Points prim in the Stage. Inspect, transform, or save it as a separate USD.

    Stage tree showing the new extracted USD Points prim Viewport showing the copied Point Cloud subset inside the Selection Box

Operator: Streamed Points Copy Nodes#

The Streamed Points Copy Nodes operator copies streamed nodes that intersect the Selection Box into a new streamed points prim at the highest resolution.

  1. Position the Selection Box around the region of interest.

  2. In the Point Set Operators panel, select the source streamed point cloud (NVSealedUsdArchive) from the Source Geometry dropdown.

  3. Select Streamed Points Copy Nodes from the Operator dropdown.

  4. Select Run Operator.

  5. Locate the new streamed points prim in the Stage and inspect the result in the viewport.

Copy Nodes operator result in the Stage Copy Nodes operator result

Note

This operator copies intersecting nodes, so the result can include points outside the Selection Box. To extract only points inside the box as editable USD Points, use Streamed Points Copy & Paste.

Operator: Streamed Points LOD Box#

The following steps describe how to run the Streamed Points LOD Box operator:

  1. Position the Selection Box around the region of interest that should be streamed within a different box.

    Selection Box positioned around a region of interest in the viewport
  2. In the Point Set Operators panel, select the source streamed point cloud (NVSealedUsdArchive) from the Source Geometry dropdown.

  3. Select Streamed Points LOD Box from the Operator dropdown.

  4. Select Run Operator.

Inspect the result:

  1. Close the Selection Box tab for better visibility in the viewport.

  2. Locate the new prim with a _crop_NN suffix in the Stage.

    Stage tree showing the original prim and new _crop_NN prim after Streamed Points LOD Box
  3. Confirm that the new prim contains the points excluded from the Point Cloud dataset.

  4. Switch between the two prims using Hide and Show in the Stage. Edit, transform, or save the new prim as a separate USD.

Streamed Point LOD Box result showing excluded points inside the crop prim

Excluded points#

Streamed Point LOD Box result showing outside points with the excluded region

Outside points with excluded region#

Viewport with both original and crop Point Cloud subsets visible

Both prims visible#

Operator: Meshing#

The Meshing operator in Selection Box > Point Set Operators reconstructs a mesh directly from point cloud data using the local GPU. It is provided by omni.pointcloud.ui in the Point Cloud Streaming Bundle.

Use this operator to reconstruct surfaces from the source points. For an image-based workflow that generates an asset from a viewport snapshot, refer to Generative Meshing.

Prerequisites#

  • Enable omni.pointcloud.ui version 1.1.8, or a compatible later version. This extension ships with Kit 110.4.

  • Load a USD Points prim or a streamed point cloud (NVSealedUsdArchive).

  • For CUDA meshing, the application must include working mesh_tools_lib Python bindings. If the availability check fails, the panel displays a message.

  • For streamed point clouds, use CUDA and enable Limit to Selection Box. Activate and position the Selection Box over the required region.

Meshing Methods#

Available methods#

Method

Input

Description

CUDA (default)

USD Points or streamed point clouds

Voxel-based reconstruction with controls for resolution, optimization, tiling, and color. Requires mesh_tools_lib.

Warp

A single USD Points prim

Marching-cubes reconstruction using Warp. No additional parameters are exposed in the panel.

Warp Textured

A single USD Points prim

Warp reconstruction with per-vertex color transfer from the point cloud. No additional parameters are exposed in the panel.

The Warp methods do not require mesh_tools_lib, but do require a working Warp runtime. Warp Textured transfers vertex colors; it does not create texture images.

Selection Box with Point Set Operators expanded, a point cloud selected, Operator set to Meshing, and the CUDA controls visible

Create a Mesh#

  1. Open Tools > Selection Box > Point Set Operators.

  2. Select the Meshing operator and set Method to CUDA.

  3. Position the Selection Box around the region you want to mesh. Leave Limit to Selection Box enabled.

  4. Select Run Operator with the default settings.

  5. Review the mesh in the Stage, then adjust resolution or surface refinement as needed.

Stage tree showing the new mesh after CUDA reconstruction

To combine multiple point cloud datasets, select (All Point Sets) and use CUDA. The operator gathers the supported sources in world space and creates one combined mesh. With Limit to Selection Box enabled, only points within the box contribute. Streamed sources are skipped when that option is disabled. Use a specific USD Points prim with either Warp method.

CUDA Parameters#

The read-only CUDA Method field displays Voxel-based reconstruction.

Resolution#

Mesh resolution depends on the point sampling distance, which represents the spacing between input points, and Relative Voxel Size:

Voxel edge length = Point sampling distance × Relative Voxel Size

Smaller voxels can capture finer detail, but require more processing time and GPU memory. Increasing resolution beyond the detail available in the source points does not add new detail.

Point Sampling Distance#

Choose how the sampling distance is determined.

Point sampling distance options#

Option

Behavior

When to use it

reconstructor — default

Estimates spacing from the loaded points on the GPU. The estimate can change when the selection box changes.

To adapt resolution to the density of the input points.

octree

Uses spacing information from the streamed dataset’s level of detail, without an additional measurement pass or extra memory. Falls back to reconstructor for non-streamed input.

To reduce measurement overhead when working with streamed datasets.

explicit

Uses the value entered in Sampling Distance, in stage units.

To use a fixed sampling distance across runs.

With reconstructor, Max Points/Tile also limits the number of points used to estimate spacing. Disabling this limit can substantially increase memory use during measurement.

With octree, the sampling distance is reproducible for the same selection box and Streamed Max LOD.

Sampling Distance#

Applies when Point Sampling Distance is set to explicit.

Enter a positive distance in stage units. The default, 0, is treated as unset.

  • A value smaller than the actual point spacing increases the voxel count without adding source detail.

  • A larger value reduces resolution and can bridge gaps between separate surfaces.

Relative Voxel Size#

Default: 5.0 · Range: 0.5–50

Controls voxel size relative to the point sampling distance.

  • Decrease it for finer reconstruction.

  • Increase it to reduce processing time and memory use.

Before reconstruction, the operator estimates the surface vertex count. If the estimate exceeds 120 million vertices, it stops and provides guidance. Increase Relative Voxel Size or reduce the selected region before trying again.

Surface Refinement#

These settings control the shape and triangle structure of the reconstructed mesh.

Surface refinement settings#

Parameter

Default

Description

Target Edge Length

0.8

Target triangle edge length as a fraction of the voxel edge length. Larger values produce coarser triangles. Range: 0.05–10.

Optimize Edges (Remesh)

On

Adjusts triangle edges to produce a more regular mesh. This can make the surface look smoother even when Smooth Mesh is off.

Smooth Mesh

On

Smooths the mesh during each optimization iteration.

Shrink to Points

On

Moves mesh vertices toward the source geometry along their surface normals.

Contraction Iters

3

Number of contraction iterations applied before projection onto the source geometry. Higher values round off the initial voxel surface. Range: 0–10.

Contraction Iters operates independently of the refinement toggles. Setting it to 0 disables contraction, but other enabled refinement settings can still change the surface.

To inspect the unrefined voxel surface, set Contraction Iters to 0 and turn off Optimize Edges (Remesh), Smooth Mesh, and Shrink to Points.

Limit to Selection Box#

This setting, Streamed Max LOD, and Max Points/Tile control how much data the operator loads and how it tiles reconstruction work.

Default: On

Reconstructs only the points inside the selection box. Use this to keep processing focused on a manageable region.

This setting is required for streamed datasets. If it is off, streamed datasets are skipped and a warning is logged.

Streamed Max LOD (0=all)#

Default: 0 · Range: 0–24

Limits the depth of point-cloud data loaded from a streamed dataset.

  • 0 allows all available levels of detail.

  • 1–24 caps the deepest level loaded. Lower caps load coarser data and reduce data volume.

Use a limit when loading large or remote datasets takes too long. Reducing the loaded detail can also reduce mesh detail.

This setting does not affect non-streamed point sets.

Max Points/Tile (M, 0=off)#

Default: 10 million · Range: 0–200 million

Divides reconstruction into tiles, each containing at most the specified number of points. The control displays values in millions.

The same limit also caps the sampling-distance measurement, helping control GPU memory use in both steps.

Set the value to 0 to disable tiling and process all input points in one pass. This can be faster and avoids duplicate geometry at tile boundaries, but memory use increases with the input point count.

Appearance#

Appearance settings#

Parameter

Default

Description

Color from Point Cloud

On

Applies source point-cloud colors to mesh vertices. Where reconstruction does not supply colors, the operator transfers them from nearby source points.

Emissive Intensity

0.3

Controls material self-illumination, helping the mesh remain visible in unlit scenes. Lower it if the mesh appears overexposed. Range: 0–1.

Flat Color

Orange; RGB (0.9, 0.55, 0.2)

Fallback color used when the mesh has no per-vertex colors.

Source colors come from the point cloud’s displayColor data. Color transfer remains available when Shrink to Points is off.

Troubleshooting#

Troubleshooting guidance#

Issue

Suggested adjustment

Reconstruction uses too much GPU memory

Reduce the selection box size, increase Relative Voxel Size, or lower Max Points/Tile. For streamed data, use a smaller positive Streamed Max LOD limit.

No points are inside the selection box

Move or resize the box over the source. For a complete USD Points prim, disable Limit to Selection Box.

The mesh lacks detail

Decrease Relative Voxel Size. For streamed data, check whether Streamed Max LOD is limiting source detail.

Separate surfaces are joined across gaps

If using an explicit sampling distance, check that it is not larger than the actual point spacing. Consider reducing the voxel size.

The surface looks too rounded

Reduce Contraction Iters and review the smoothing and remeshing settings.

Changing the selection box changes mesh resolution

The default sampling-distance estimate depends on the selected points. Use a positive explicit Sampling Distance to keep voxel size consistent.

A streamed dataset is skipped

Confirm that CUDA is selected, the box overlaps the dataset, and Limit to Selection Box is enabled.

CUDA bindings are unavailable

Check the application’s mesh_tools_lib packaging. Use a Warp method with a USD Points prim if Warp is available.

The voxel estimate exceeds the guard

Increase Relative Voxel Size or reduce the selected region. The guard rejects an estimated surface vertex count above 120 million, but smaller jobs can still exceed the available GPU memory.

For more diagnostic information, enable Verbose Reconstruct Log. It is off by default and adds reconstruction progress and timing messages to the console.

Every run also logs a benchmark summary with the applied settings, input and output sizes, GPU kernel invocation count, and processing time for each step.

CUDA Meshing Examples#

Use these three starting presets to compare a quick preview, a balanced mesh, and a finer reconstruction. They are suggested tuning values, not built-in presets or benchmarked quality levels. Actual detail, runtime, and GPU memory use depend on point density, dataset extent, the selected region, and hardware.

Streamed Max LOD controls how much source detail is fetched from a streamed dataset. Relative Voxel Size controls reconstruction resolution, and Target Edge Length controls the remeshed triangle size. Finer triangles cannot recover features that are absent from the input points.

Common Setup#

  1. Open Tools > Selection Box > Point Set Operators.

  2. Select one point cloud in Source Geometry, set Operator to Meshing, and set Method to CUDA.

  3. Position the Selection Box tightly around a representative object or region. Use the same source and box for all three examples.

  4. Apply the common settings below, then choose the values for one example in the preset table and select Run Operator.

Settings shared by all three examples#

UI control

Value

CUDA Method

Voxel-based reconstruction (read-only)

Point Sampling Distance

Measured by reconstructor (reconstructor)

Sampling Distance

Not shown in this mode. Leave measurement to the reconstructor.

Limit to Selection Box

On

Smooth Mesh

On

Shrink to Points

On

Optimize Edges (Remesh)

On

Max Points/Tile (M, 0=off)

10 (10 million points)

Color from Point Cloud

On

Emissive Intensity

0.3

Flat Color

RGB (0.9, 0.55, 0.2). Used when vertex colors are unavailable.

Verbose Reconstruct Log

On, to compare reconstruction timings in the console.

Example Settings#

Suggested CUDA meshing presets#

UI control

Example 1: Low detail

Example 2: Medium detail

Example 3: High detail

Streamed Max LOD (0=all)

6

10

0 (all available levels)

Relative Voxel Size

10.0

5.0

2.0

Target Edge Length

1.2

0.8

0.5

Contraction Iters

1

3

1

The LOD values 6 and 10 are initial trial values, not universal definitions of low and medium detail. Octree depth varies between datasets. If the dataset is shallower than either limit, that limit can already include all its levels. Increase the preview limit if it contains too few points, or decrease a positive limit to fetch less data. 0 means all levels, not the lowest detail.

For an ordinary USD Points prim, Streamed Max LOD has no effect. Use the remaining settings to compare reconstruction detail on the same input points.

Example 1: Low Detail, Fast Preview#

Use this preset to confirm the selected region and overall surface shape. The shallower streamed input, larger voxels, and coarser remeshing target are intended to reduce work. Expect less detail around small features, thin structures, and edges. One contraction pass limits additional processing for the preview.

Example 2: Medium Detail, Balanced Reconstruction#

Use this preset as the baseline for evaluating object shape and surface detail. Its voxel size, remeshing target, and contraction count match this extension’s defaults. The positive streamed LOD limit bounds the input depth; adjust it if your dataset needs deeper levels to represent the object clearly.

Example 3: High Detail, Longer Calculation#

Use this preset on a small region when fine features matter. It fetches all available streamed levels, uses smaller voxels, and requests finer triangles. It is intended to retain more source detail, with higher memory use and longer calculation than the other examples. One contraction pass reduces rounding of small features; it can also leave more noise or voxel structure visible.

This preset does not guarantee a highly detailed result from sparse data. If the voxel guard rejects the run or GPU memory is insufficient, reduce the box size first, or raise Relative Voxel Size from 2.0 to 3.0 or 5.0. Reducing Max Points/Tile can reduce part of the memory demand but does not guarantee that a reconstruction fits.

Viewport after CUDA reconstruction with the low-detail, fast preset

Mesh reconstruction with low/fast parameters.#

Viewport after CUDA reconstruction with the medium-detail preset

Mesh reconstruction with medium parameters.#

Viewport after CUDA reconstruction with the high-detail, slower preset

Mesh reconstruction with high/slower parameters.#

Compare the Results#

Inspect each mesh from the same viewpoint, showing one result at a time. Compare small features, gaps, surface noise, and triangle counts alongside the recorded timings. Streamed data can already be cached after the first run, so total run times are not directly comparable unless cache conditions are equivalent.

References#

You can use the Selection Box to filter Point Cloud data, run spatial operators, and save edited subsets to the Stage. To import or stream Point Clouds before editing, refer to Workflow User Guide. To configure render settings and viewport overlays, refer to Streamed Point Clouds UI.