Skip to content

Add NanoVDB TEACHME interactive tutorial + docs-compile test harness#2226

Open
harrism wants to merge 1 commit into
AcademySoftwareFoundation:masterfrom
harrism:nanovdb-teachme
Open

Add NanoVDB TEACHME interactive tutorial + docs-compile test harness#2226
harrism wants to merge 1 commit into
AcademySoftwareFoundation:masterfrom
harrism:nanovdb-teachme

Conversation

@harrism
Copy link
Copy Markdown
Contributor

@harrism harrism commented Jun 3, 2026

Adds doc/nanovdb/TEACHME/ — an interactive, LLM-guided tutorial for the
NanoVDB user API, plus a test harness that keeps it from drifting from the
real headers.

  • User lesson (nanovdb_user_lesson.md) — 10 modules: sparse-grid
    foundations, GridHandle/IO, ReadAccessor, NodeManager, math + sampling +
    HDDA, GPU kernels, GPU grid builders (PointsToGrid/MeshToGrid), topology
    operators + data re-homing (Injection), IndexGrid/VoxelBlockManager,
    and OpenVDB ↔ NanoVDB conversion.
  • Cheat sheet (nanovdb_user_cheatsheet.md) — one-page API reference.
  • Capstone (capstone/) — a GPU level-set ray-march renderer (scaffold +
    reference + CMake), rendering an SDF sphere on the device.

Why a test harness

Markdown code in docs is never compiled, so it silently rots as the API
changes. test/ extracts every C++/CUDA block and compiles it (compile-only)
against the real NanoVDB headers, and validates every #include / prose header
reference. ~64 blocks compile green; run test/run.sh. This is in the same
spirit as the doc-quality CI gates being added in #2217.

A CI workflow (.github/workflows/teachme.yml) runs the harness whenever the
NanoVDB headers (nanovdb/nanovdb/**) or the tutorial change, so an API change
that breaks a lesson is caught automatically. It's compile-only (~90s on a
standard runner, no GPU) and reuses the existing aswf/ci-openvdb CUDA image.

Notes

  • Docs + harness + a CI workflow that runs it — no changes to NanoVDB headers.
  • The harness is compile-only by design (catches API drift); the capstone is
    the runnable end-to-end check.
  • Authored interactively with Claude (see commit co-author trailer).

@harrism harrism requested a review from kmuseth as a code owner June 3, 2026 06:48
@harrism harrism force-pushed the nanovdb-teachme branch from 9fb57ad to a0abc50 Compare June 3, 2026 07:43
@harrism harrism marked this pull request as draft June 3, 2026 07:43
@harrism harrism force-pushed the nanovdb-teachme branch 6 times, most recently from be3d2b9 to c4c5e8e Compare June 4, 2026 06:03
doc/nanovdb/TEACHME/ is an interactive, LLM-guided tutorial for the
NanoVDB user API: 10 modules (reading grids, ReadAccessor, math/HDDA
sampling, GPU kernels, GPU grid builders, topology operators + data
re-homing via Injection, IndexGrid/VoxelBlockManager, OpenVDB
conversion), a cheat sheet, and a GPU level-set ray-march capstone.

To keep the tutorial from drifting from the API, the test harness in
doc/nanovdb/TEACHME/test/ extracts every C++/CUDA code block from the
docs and compiles it against the real NanoVDB headers, and validates
that every #include and prose header reference resolves. ~64 blocks
compile green.

A CI workflow (.github/workflows/teachme.yml) runs the harness whenever
the NanoVDB headers or the tutorial change, so API drift is caught
automatically. It is compile-only and needs no GPU.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Mark Harris <mharris@nvidia.com>
@harrism harrism force-pushed the nanovdb-teachme branch from c4c5e8e to 86dc181 Compare June 4, 2026 06:13
@harrism harrism marked this pull request as ready for review June 4, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant