application-flow
High-level overview of a typical ovrtx application lifecycle. Use when user asks how to structure an ovrtx program, what the main…
Interpreting already-read lidar PointCloud tensors: channel meanings, units, valid point ranges, coordinate-frame implications, flags, IDs, normals, velocity, and visualization values. Use reading-sensor-pointclouds when the user needs to map or fetch the tensors first.
$ npx -y skills add nvidia-omniverse/ovrtx --skill interpreting-lidar-pointclouds --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/interpreting-lidar-pointcloudsContext preview
The summary Claude sees to decide when to auto-load this skill.
Interpreting already-read lidar PointCloud tensors: channel meanings, units, valid point ranges, coordinate-frame implications, flags, IDs, normals, velocity, and visualization values. Use reading-sensor-pointclouds when the user needs to map or fetch the tensors first.
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-NvidiaProprietary # # NVIDIA CORPORATION, its affiliates and licensors retain all intellectual # property and proprietary rights in and to this material, related # documentation and any modifications thereto. Any use, reproduction, # disclosure or distribution of this material and related documentation # without an express license agreement from NVIDIA CORPORATION or # its affiliates is strictly prohibited. name: interpreting-lidar-pointclouds description: > Interpreting already-read lidar PointCloud tensors: channel meanings, units, valid point ranges, coordinate-frame implications, flags, IDs, normals, velocity, and visualization values. Use reading-sensor-pointclouds when the user needs to map or fetch the tensors first. license: LicenseRef-NvidiaProprietary author: NVIDIA ovrtx tags: - ovrtx - lidar - pointclouds tools: - Read - Grep
Use this skill when the user asks what already-read lidar Coordinates, Intensity, TimeOffsetNs, Flags, IDs, normals, velocity, or other PointCloud tensors mean. Use `reading-sensor-pointclouds` instead when the user needs map/read code to obtain the tensors.
Resolve inputs in this order: existing repository files and referenced snippets, explicit user request, then broader agent context.
1. Identify the lidar channels being interpreted and the settings that define their coordinate frame, units, and validity behavior. 2. Read the matching interpretation source snippet before explaining channel behavior or visualization choices. 3. Use `Counts[0]` for tensor bounds and `Flags` bit tests for per-point validity when invalid points may be present. 4. Explain channel meaning without adding mapping boilerplate unless the user also asks how to read the tensors. 5. Combine configuration, reading, and interpretation skills only when the user asks for an end-to-end sensor workflow. 6. When changing code, run the narrow docs test or example that owns the snippet whenever practical.
This skill has no scripts.
Lidar `PointCloud` output is a composite render var with per-point tensors. Use `Counts[0]` to bound the delivered point entries before interpreting any channel, and use the `Flags` `VALID` bit for per-entry validity when invalid points may be present.
> **Source:** `examples/python/lidar/main.py` snippet `read-lidar-pointcloud` > **Source:** `examples/c/lidar/main.cpp` snippet `read-lidar-pointcloud`
The lidar examples demonstrate a minimal interpretation path: read `Coordinates`, `Counts`, `Intensity`, and `TimeOffsetNs`, slice each per-point tensor to the delivered range, and summarize or visualize the result. Their scenes explicitly set `includeInvalidPoints = false`, so the delivered range is also the valid range.
These are the available lidar `PointCloud` channels from `omni.sensors.nv.lidar`.
| Channel | Type / Shape | Unit | Meaning | |---|---|---|---| | `Counts` | `int32` scalar | points | Model-delivered point entry count; use it to bound every per-point tensor. With default invalid-point dropping this is the valid point count, but `includeInvalidPoints = true` can preserve invalid entries inside the range. | | `Coordinates` | `float` 2D, `3 x N` | m, rad | Point coordinates. Representation is controlled by `elementsCoordsType`: Cartesian positions or spherical components. Frame is controlled by `outputFrameOfReference`. | | `Intensity` | `float` 1D, `N` | unitless | Processed return strength, normalized by the lidar intensity processing mode. Range depends on scaling and mapping attribute, base is [0,1] | | `TimeOffsetNs` | `int32` 1D, `N` | ns | Per-point time offset relative to the sensor frame timestamp. | | `Flags` | `uint8` 1D, `N` | unitless | Model-delivered point status flags. `VALID` (`1 << 6`, `0x40`) marks a valid point. Lidar also uses `FLAG_7` (`1 << 5`, `0x20`) to mark that the point starts a new scan. | | `EmitterId` | `uint32` 1D, `N` | unitless | Internal emitter or laser index in the emitter state array. | | `ChannelId` | `uint32` 1D, `N` | unitless | Detector/channel index. This can differ from emitter index for complex channel configurations. | | `TickId` | `uint32` 1D, `N` | unitless | Tick or scan-step index for the hit. | | `EchoId` | `uint8` 1D, `N` | unitless | Return index for multi-echo lidar beams. | | `TickState` | `uint8` 1D, `N` | unitless | Active scan pattern state for the tick that produced the point. | | `MaterialId` | `uint32` 1D, `N` | unitless | Encoded nonvisual material ID of the hit surface
ovrtx is a C and Python library for embedding Omniverse RTX sensor simulation and visualization directly into applications.
High-level overview of a typical ovrtx application lifecycle. Use when user asks how to structure an ovrtx program, what the main…
Asynchronous operation patterns including polling, timeouts, and non-blocking workflows. Use when user asks about async…
Replacing persistent ovrtx attribute bindings with reusable ovstage queries for repeated writes or maps. Use when user asks about…
Binding materials to prims at runtime. Use when user asks to assign a material, change a material, set material binding, or swap…
Available camera render outputs for Real-Time Path-Tracing (RT2) mode. Use when user asks what AOVs/render vars are available,…
Cloning USD subtrees to create copies at new paths. Use when user asks to clone, duplicate, copy a prim, or create instances of…