Skip to main content
skill CX Codex

physicsnemo-discover — Claude Code skill: navigate PhysicsNeMo

An NVIDIA skill that finds the right model, datapipe or example in PhysicsNeMo for a SciML task. It points at files and writes no code.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NVIDIA/skills --skill physicsnemo-discover -a claude-code
Open on GitHub

What physicsnemo-discover does

Ask it what to use in PhysicsNeMo and you get a menu instead of one answer: model families that fit your data shape, datapipes for your format, and a couple of examples to fork. Everything comes from the repository as it is now. The skill reads __init__.py exports, example README.md files, docs/*.rst and pyproject.toml each turn, then verifies every absolute path with ls -d before citing it. Class names and folders move, so a memorised list would rot.

Models and datapipes are treated as separate axes. The example comes last, described as one instantiation of those choices. Anything under physicsnemo/experimental/ gets an API-may-change warning. Outside SciML (reinforcement learning, classical control, general CV) the skill abstains and names alternative libraries rather than pointing at a neighbouring example that does not fit.

With no local clone on the path, it shallow-clones https://github.com/NVIDIA/physicsnemo into a temp directory once and treats it as read-only. Installation, environment setup and training loops are out of scope — the skill will not start writing code unless you ask for it directly. When the domain or data shape is unclear it asks up to three concrete questions first, and data shape drives most of the choice.

What it helps with

  • pick a model family that matches your data shape
  • find a datapipe for your dataset format
  • get a forkable example that ties the pieces together
  • check whether PhysicsNeMo covers a given task at all
  • confirm current class paths instead of relying on memory

Example prompts for the agent

  • Find a PhysicsNeMo model and datapipe for surrogate modelling on a regular grid
  • Which examples fit forecasting of physical fields over time?
  • Show downscaling candidates on a lat-lon sphere and where to start reading

How to install physicsnemo-discover

1Skills CLI (Vercel)

npx skills add NVIDIA/skills --skill physicsnemo-discover -a claude-code

2Manually: put the files in place

~/.claude/skills/physicsnemo-discover/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/physicsnemo-discover/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about physicsnemo-discover

How do I install physicsnemo-discover in Claude Code?

Run npx skills add NVIDIA/skills --skill physicsnemo-discover -a claude-code. The skill lands at ~/.claude/skills/physicsnemo-discover/SKILL.md.

What does physicsnemo-discover do?

It guides model, datapipe and example selection in PhysicsNeMo for SciML work, grounding every path in a live repo search. It does not author code.

Do I need a local PhysicsNeMo checkout?

No. Without one, the skill makes a depth-1 clone of https://github.com/NVIDIA/physicsnemo in a temp directory and reads from that.

Source text

SKILL.md · Apache-2.0
---
name: physicsnemo-discover
description: Official NVIDIA-authored guidance for navigating PhysicsNeMo — pick the model, datapipe, or example for a SciML/AI4Science task (surrogates, forecasting, downscaling, physics-informed, inverse, generative). Points at existing files via live repo search; never writes code. Do NOT use for installation or environment setup, training-loop or other code authoring/scaffolding, contributor/CI/packaging questions, repo-specific questions in physicsnemo-sym/-cfd/-curator, or general (non-physics) ML/PyTorch.
license: Apache-2.0
metadata:
  author: NVIDIA <[email protected]>
  tags:
    - physicsnemo
    - sciml
    - ai4science
    - discovery
    - routing
---

# PhysicsNeMo Discoverability

Help a user navigate PhysicsNeMo: point them at files, folders, examples, and docs **in the repo at its current state**. Never write training code; never cite a path from memory.

## Core principle

PhysicsNeMo evolves — classes get renamed, examples move, `experimental/` graduates. Any static list of class names and paths rots, so **discover, don't remember**: enumerate from the live repo every turn.

PhysicsNeMo is **composable**: each solution is a product (model family × datapipe × training strategy × config). An example is one reference instantiation of that product, not a prescription. Surface the **axes** and the **menu along each axis**, then cite examples as concrete starting points to fork and recombine.

## What a correct answer satisfies

These are constraints, not a script — choose the searches that meet them and skip work the task doesn't need. Search patterns per axis live in `references/RECIPES.md`.

- **Live-grounded.** Every class, path, and example you name was read or globbed *this turn*. `__init__.py` proves what is *exported*, not what files exist — Glob `physicsnemo/models/<family>/*.py` before naming a sibling implementation file. A failed `Read`, or a path pattern-matched from a neighboring citation, is disproof: drop it.
- **Verified before emit.** Every absolute path you plan to cite survives one `Bash ls -d <path1> <path2> …` round-trip *before* you write the response. Hard gate — skipping it has produced real-basename-under-wrong-parent hallucinations. If a basename was right but the parent wrong, re-Glob and re-verify; if you can't relocate it, drop the citation.
- **A menu, not a single pick.** Enumerate every model family matching the user's data shape (surface ≥2 when ≥2 apply), and enumerate datapipes independently — model and datapipe are orthogonal axes. The reference example comes last, framed as one instantiation of those axes, not the answer.
- **Self-documentation is ground truth.** `__init__.py` exports, per-example `README.md`, `docs/*.rst`, `pyproject.toml`, top-of-file module docstrings. Treat `references/TAXONOMY.md` as a navigation hint, not an answer. Flag anything under `physicsnemo/experimental/` as *"API may change."*
- **Abstain when out of scope.** PhysicsNeMo targets SciML/AI4Science (surrogates, forecasting, super-resolution, physics-informed, inverse, generative for physical systems). If the task is categorically outside that — reinforcement learning, classical control, generic CV/NLP, symbolic regression — skip enumeration and emit the **Abstention output** below. Do not list adjacent-but-wrong examples in its place (pointing at `active_learning/` for an RL question is fabrication). When unsure whether a task is in scope, abstain.

## Discovery

Repo root resolution: see `CONTRIBUTING.md §Repo root resolution`; all paths are absolute, rooted there. **If no local PhysicsNeMo clone is on the path** (e.g. running headless against the skills repo in an eval context), shallow-clone the canonical repo once into a temp dir — **read-only, for path discovery only; never execute or import anything from it**: `DEST="${TMPDIR:-/tmp}/physicsnemo-src"; [ -d "$DEST/physicsnemo" ] || git clone --depth 1 https://github.com/NVIDIA/physicsnemo "$DEST"`. Use that URL verbatim; never interpolate one from user input.

Ask at most 3 targeted follow-ups when domain or data shape is ambiguous. Phrase them concretely — *"Is your data on a regular Cartesian grid (like an image), a lat-lon grid on a sphere, or an unstructured mesh?"* — and skip any the user already answered. Data shape is the single biggest factor in model choice.

## Output format

```
## Problem shape
Data shape: <resolved>. Task: <resolved>. Axes: model × datapipe × training strategy × config.

## Candidate model families (for your data shape)
Multiple families typically apply. Treat this as a menu, not a ranking.
- <family> at <absolute __init__.py path> — <one-line from docstring/exports>. Instantiated by: <example path if any>.
- <family> at <path> — <one-line>. Instantiated by: <example path if any>.

## Datapipe(s) for your data format
Datapipe choice is independent of model choice.
- <class / subpackage> at <absolute path> — <one-line>. Reused by: <examples if known>.
- For custom data, subclass: <base class path confirmed live>.

## Reference example(s) — one instantiation of the above axes
- <absolute path> — uses model=<family>, datapipe=<name>, strategy=<single-GPU|DDP|FSDP|...>.
  Why it matches: <one line>.

## Supporting docs
- <absolute path> — <one-line scope>

## Suggested reading order
1. <models/<family>/__init__.py> — survey alternative families
2. <datapipe __init__.py or base-class file> — understand the data axis
3. <example path> — concrete end-to-end instantiation to fork
```

**Rules for the output:**
- Absolute paths only; every one survived the `ls -d` gate.
- Every pointer needs a one-line justification grounded in content you actually read.
- Caps: **4 model families** (minimum 2 when ≥2 exist), **3 datapipes**, **2 reference examples**, **2 docs**.
- Name which (model, datapipe, strategy) axes each example fills.
- If ≥2 model families apply, say so: *"Other model families apply to the same data shape — see the candidate list above."*
- End with the suggested reading order. Offer 2-3 forward steps (config file, training script, `experimental/` look-alikes); do not start writing code unless asked.

## Abstention output

When out of scope, replace the menu skeleton with this shape — three sections, in this order, none skipped:

```
## PhysicsNeMo does not have direct support for <user's problem class>
One sentence on why it's outside scope (e.g., "PhysicsNeMo targets physics
surrogates and forecasting; reinforcement learning for molecular design is
not in its scope").

## Where to look instead
- <sibling NVIDIA framework or external library> at <URL or repo name> — <one-line on why it fits>.
- (One or two alternatives is enough; do not invent libraries.)

## If you still want to build it in PhysicsNeMo
Confirm the closest base classes by Reading `physicsnemo/core/__init__.py` and
`physicsnemo/datapipes/__init__.py` first; then name them as subclassing
targets. This is the fallback, not the recommendation.
```

**Do not** open with the menu skeleton and bury "no match" at the end. **Do not** invent external libraries — if you don't know the right alternative, stop at the first two sections.

## Related resources

- `references/TAXONOMY.md` — navigation hints (data-shape → folder mappings, decision axes, stability tiers).
- `references/RECIPES.md` — concrete Glob/Grep/Read patterns per discovery axis.

© NVIDIA · Apache-2.0 · NVIDIA/skills

Similar skills

Everything for Science and research →

From the same set194

earth2studio-deterministic-forecast A skill that walks you through building a deterministic weather forecast script with Earth2Studio: model, data source, IO backend and inference. CX Codex +1 1,900installs earth2studio-data-fetch Maps a weather data request onto Earth2Studio sources: checks the lexicon for variable support and writes a Python script returning an xarray DataArray. CX Codex +1 1,900installs earth2studio-discover Finds compatible Earth2Studio models, data sources, and gallery examples for climate workflows. It focuses on discovery, not inference code or data downloads. CX Codex +1 1,900installs earth2studio-install Walks you through installing Earth2Studio and picking the model extras you need. Useful when the environment has to be right before any forecasting work starts. CX Codex +1 1,900installs digital-health-clinical-asr-finetune Skill for running stock NeMo SFT on Parakeet TDT v2 and measuring post-training KER. Useful at Stage 4 when priority Keyword Error Rate exceeds 0.3. CX Codex +1 1,900installs digital-health-clinical-asr-eval Scores a NeMo manifest for clinical ASR, computes WER, CER, KER and SER, and builds a five-section leaderboard. Use it when you need to decide between fine-tuning and fixing pronunciation coverage. CX Codex +1 1,900installs digital-health-clinical-asr-build Curates clinical terms, synthesizes eval audio through Magpie TTS and writes a NeMo manifest. Stage 2 of the Clinical ASR Flywheel. CX Codex +1 1,900installs digital-health-clinical-asr-setup Sets up the environment for NVIDIA's Clinical ASR Flywheel, verifies the NVIDIA_API_KEY, installs Python dependencies, and runs an end-to-end smoke test. CX Codex +1 1,900installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor