Astropy
zLanqing/codex-claude-academic-skills
Comprehensive Python library for astronomy and astrophysics.
Create a new dataset adapter for the PhysicsNeMo CFD benchmarking workflow.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .claude/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .claude/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .agents/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .agents/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .cursor/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .cursor/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/NVIDIA/physicsnemo-cfd.git --path skills/physicsnemo-cfd-create-dataset-adapter--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .gemini/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .gemini/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .github/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .github/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-dataset-adapter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/physicsnemo-cfd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/physicsnemo-cfd-create-dataset-adapter .opencode/skills/physicsnemo-cfd-create-dataset-adapter && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "physicsnemo-cfd-create-dataset-adapter" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-dataset-adapter into .opencode/skills/physicsnemo-cfd-create-dataset-adapter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-dataset-adapter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
physicsnemo-cfd-create-dataset-adapterCreate a new dataset adapter for the PhysicsNeMo CFD benchmarking workflow.
Physicsnemo Cfd Create Dataset Adapter is an agent skill from NVIDIA/physicsnemo-cfd, published by the product's own GitHub organization. Create a new dataset adapter for the PhysicsNeMo CFD benchmarking workflow. Use when the user wants to add a new CFD dataset, write a DatasetAdapter, integrate a new mesh format, or benchmark models on custom data.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `BENCHMARK.md`, `evals/evals.json` and `skill-card.md`).
It sits in Research & Science, covering Physical and earth sciences. It works with NVIDIA AI Platform. The repository describes itself as: Library for using the models trained in PhysicsNeMo in Engineering and CFD workflows. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0612ec4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Physicsnemo Cfd Create Dataset Adapter loads about 3k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 956 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from NVIDIA/physicsnemo-cfd at commit 0612ec4, republished under its Apache-2.0 licence (© NVIDIA). 956 words, ~3,017 tokens.
.claude/skills/physicsnemo-cfd-create-dataset-adapter/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Guide the user through adding a new CFD dataset to the benchmarking
workflow by writing a DatasetAdapter subclass.
Before starting, read these files for context:
physicsnemo/cfd/evaluation/datasets/adapter_registry.py — base class and registryphysicsnemo/cfd/evaluation/datasets/schema.py — CanonicalCase and build_predictions_dictphysicsnemo/cfd/evaluation/datasets/adapters/drivaerml.py —
reference adapter implementationworkflows/benchmarking/notebooks/adding_a_new_dataset.ipynb —
end-to-end tutorial (writes a DrivAerStar adapter: format conversion,
field renaming, WSS sign flip, STL creation)Ask the user for the dataset path, then inspect one file. Report not just
array names but their component count, dtype, and value range, plus
mesh.bounds and any geometry arrays — the decision table below needs
all of these:
import numpy as np
import pyvista as pv
mesh = pv.read("<path_to_one_file>")
print(f"Type: {type(mesh).__name__}, Points: {mesh.n_points}, Cells: {mesh.n_cells}")
print(f"Bounds (xmin,xmax,ymin,ymax,zmin,zmax): {mesh.bounds}")
for loc, data in [("cell", mesh.cell_data), ("point", mesh.point_data)]:
for name in data.keys():
arr = np.asarray(data[name])
comps = arr.shape[1] if arr.ndim > 1 else 1
print(f" [{loc}] {name}: comps={comps}, dtype={arr.dtype}, "
f"range=({arr.min():.3g}, {arr.max():.3g})")
# Explicit geometry arrays some datasets ship (DrivAerML has none):
print("Has Normals:", "Normals" in mesh.cell_data or "Normals" in mesh.point_data)
print("Has Area:", "Area" in mesh.cell_data or "Area" in mesh.point_data)Identify these differences from the canonical schema:
| Question | What to look for |
|---|---|
| File format | .vtp, .vtu, .vtk, or a non-VTK format (CGNS, OpenFOAM, HDF5, CSV, ...)? Model wrappers ultimately read .vtp (surface) or .vtu (volume) XML — see "Reading non-PyVista source formats". |
| Directory layout | Flat directory? Nested run_<id>/ dirs? How are case IDs derived from filenames? |
| Pressure field name | The canonical key is pressure. What is the VTK array name? |
| WSS field name | The canonical key is shear_stress (N, 3). Is it a single vector or separate scalar components? |
| Sign conventions | Compare field ranges with DrivAerML. Are normals, WSS, or pressure flipped? |
| Extra arrays | Are there explicit Normals or Area arrays? DrivAerML has none — remove them if present. |
| STL files | Are separate STL geometry files available? If not, the surface mesh itself is the geometry. |
| Coordinate frame & scale | Compare mesh.bounds and units against the training dataset. Matters only for geometry-referenced checkpoints (e.g. DrivAerML-trained). See "Match geometry orientation and scale". |
| Inference domain | Surface (.vtp) or volume (.vtu)? |
Subclass DatasetAdapter with these methods:
from pathlib import Path
from physicsnemo.cfd.evaluation.datasets.adapter_registry import DatasetAdapter, register_adapter
from physicsnemo.cfd.evaluation.datasets.schema import CanonicalCase
class MyDatasetAdapter(DatasetAdapter):
def __init__(self, root: str, **kwargs):
self._root = Path(root)
@classmethod
def inference_domain_from_kwargs(cls, kwargs=None):
return "surface" # or "volume"
def list_cases(self):
# Return list of case ID strings
...
def load_case(self, case_id: str) -> CanonicalCase:
# 1. Read the mesh file
# 2. Build ground_truth dict with canonical keys:
# - "pressure": np.float32 array
# - "shear_stress": np.float32 array of shape (N, 3)
# For volume: "pressure", "velocity" (N,3), "turbulent_viscosity"
# 3. Return CanonicalCase(case_id, mesh_path, mesh_type, ground_truth, inference_domain)
...ground_truth must use the framework's canonical keys, but source files
rarely use those names. The canonical vocabulary (see schema.py /
build_predictions_dict) is:
| Canonical key | Shape | Domain |
|---|---|---|
pressure | (N,) | surface, volume |
shear_stress | (N, 3) | surface |
velocity | (N, 3) | volume |
turbulent_viscosity | (N,) | volume |
Build an explicit rename map from the source names you found in Step 1:
RENAME = {"pMean": "pressure", "wallShearStress": "shear_stress"}
ground_truth = {
canon: np.asarray(mesh.cell_data[src], dtype=np.float32)
for src, canon in RENAME.items()
}When names are ambiguous, disambiguate by: component count (a 3-comp
field is velocity or shear_stress), dtype/value range, and —
decisively — what the model's training data called each field (see
"Why conventions must match the training data"). Do not confuse this
source→canonical map with the separate canonical→VTK-name map in
output.mesh_field_names (Step 4), which controls the written arrays.
load_caseReading non-PyVista source formats: pv.read handles VTK-family
files, but CFD ground truth often ships as CGNS, OpenFOAM cases, Ensight,
Tecplot, HDF5/.npz, or CSV point clouds. Only reading changes — the
target is still a canonical .vtp/.vtu mesh plus a ground_truth
dict:
# meshio covers many formats (CGNS, Ensight, ...); wrap to PyVista:
import meshio, pyvista as pv
mesh = pv.wrap(meshio.read(src_path))
# OpenFOAM case directory:
mesh = pv.OpenFOAMReader(case_foam_file).read()
# Raw arrays (HDF5 / npz / CSV): build the mesh, then attach fields:
cloud = pv.PolyData(points_xyz) # (N, 3) float array
cloud["pressure"] = p_values # attach source arraysFormat conversion (legacy .vtk → .vtp):
mesh = pv.read(vtk_path).extract_surface()
mesh.save(vtp_path)Combining separate WSS scalars into a vector:
wss = np.stack([mesh.cell_data["WSSx"], mesh.cell_data["WSSy"], mesh.cell_data["WSSz"]], axis=1)Removing explicit Normals/Area (DrivAerML convention):
for key in ["Normals", "Area"]:
if key in mesh.cell_data:
del mesh.cell_data[key]Creating STL from surface mesh (when no STL is shipped):
mesh.extract_surface().triangulate().save(stl_path)The STL must be named drivaer_{int(case_id)}.stl in the same directory
as the VTP for the model wrappers to find it.
Geometry-referenced models (e.g. DoMINO) normalize the mesh/STL
coordinates against a fixed bounding box baked into the checkpoint
from its training dataset: DoMINO reads
cfg.data.bounding_box_surface.min/max (and bounding_box.min/max for
volume) and maps every coordinate into that box. If the new dataset's
geometry sits in a different frame, origin, or unit scale, it lands in
the wrong normalized space — predictions are wrong even when field names
and signs are correct.
This only matters when the checkpoint was trained on a specific geometry-referenced dataset (e.g. DrivAerML). For scale/translation-invariant models, or when the model was trained on this same dataset, skip it.
Match three things to the training dataset (DrivAerML reference bounds below, in meters, from the DoMINO config):
| Box | min (x, y, z) | max (x, y, z) |
|---|---|---|
| Surface | -1.5, -1.4, -0.32 | 5.0, 1.4, 1.4 |
| Volume | -3.5, -2.25, -0.32 | 8.5, 2.25, 3.00 |
Check mesh.bounds and transform in load_case before saving the prepared VTP/STL:
b = mesh.bounds # (xmin, xmax, ymin, ymax, zmin, zmax)
# ~1000x larger extents => mm; scale to meters. A swapped axis range => reorient.
mesh.points *= 0.001
mesh.points += np.array([x_off, y_off, z_off], dtype=np.float32) # translate to match originDo expensive conversions lazily and cache:
def _prepare_case(self, case_id):
prepared_path = self._root / "_prepared" / f"{case_id}.vtp"
if not prepared_path.exists():
# ... convert and save
return str(prepared_path)register_adapter("my_dataset", MyDatasetAdapter)
adapter = MyDatasetAdapter(root="/path/to/data")
cases = adapter.list_cases()
case = adapter.load_case(cases[0])
assert case.ground_truth is not None
assert "pressure" in case.ground_truthBuild a config and run:
from physicsnemo.cfd.evaluation.config import Config
from physicsnemo.cfd.evaluation.benchmarks.engine import run_benchmark
config = Config.from_dict({
"run": {"device": "cuda:0", "output_dir": "results"},
"model": {"name": "<model_name>", "inference_domain": "<surface|volume>", ...},
"dataset": {"name": "my_dataset", "root": "/path/to/data", "case_ids": cases[:2]},
"output": {
"ground_truth_mesh_field_names": {"pressure": "<vtk_gt_name>", "shear_stress": "<vtk_gt_name>"},
"mesh_field_names": {"pressure": "<vtk_pred_name>", "shear_stress": "<vtk_pred_name>"},
},
"metrics": ["l2_pressure", "l2_shear_stress", "drag", "lift"],
"reports": {"enabled": False},
})
results = run_benchmark(config)Save the adapter to
physicsnemo/cfd/evaluation/datasets/adapters/<name>.py and register in
adapters/__init__.py:
from physicsnemo.cfd.evaluation.datasets.adapters.<name> import MyDatasetAdapter
register_adapter("my_dataset", MyDatasetAdapter)The field name mappings, sign conventions, and format conversions in the adapter exist because the model checkpoint was trained on a specific dataset (e.g., DrivAerML) with specific conventions. The adapter bridges the gap between the new dataset's conventions and the training data's conventions — not some abstract standard. If a model is retrained directly on the new dataset, the adapter would not need these transformations. When writing an adapter, always ask: "What conventions did the model's training data use?" and map to those.
DistributedManager.initialize(). In notebooks without torchrun,
set env vars first: WORLD_SIZE=1, RANK=0, LOCAL_RANK=0,
MASTER_ADDR=localhost, MASTER_PORT=12355.drivaer_{tag}.stl, GeoTransolver
looks for drivaer_{tag}_single_solid.stl then *.stl. Both now fall
back to any *.stl in the directory..vtk files must be converted to .vtp/.vtu.trusted_torch_load_context() for PyTorch 2.6+ checkpoint
compatibility.l2_pressure resolves to different
implementations for surface vs volume based on inference_domain. Use
the same metric name for both.© NVIDIA, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in skills/physicsnemo-cfd-create-dataset-adapter of NVIDIA/physicsnemo-cfd.
Open the folder on GitHubat commit 0612ec4
Physicsnemo Cfd Create Dataset Adapter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Physicsnemo Cfd Create Dataset Adapter this skillNVIDIA/physicsnemo-cfd | 153 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| AstropyzLanqing/codex-claude-academic-skills | 4.6k | 14 repos | ~2.9k | Automated safety check: Pass | BSD-3-Clause | |
| PymatgenzLanqing/codex-claude-academic-skills | 4.6k | 12 repos | ~5k | Automated safety check: Pass | MIT | |
| Cantera Ignition DelayK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Weathertrpc-group/trpc-agent-go | 1.8k | 8 repos | ~591 | Automated safety check: Pass | Apache-2.0 | |
| Pymol VisualizationChatMol/ChatMol | 372 | — | ~1.2k | Automated safety check: Pass | MIT |
zLanqing/codex-claude-academic-skills
Comprehensive Python library for astronomy and astrophysics.
zLanqing/codex-claude-academic-skills
Materials science toolkit. An agent skill from zLanqing/codex-claude-academic-skills.
K-Dense-AI/scientific-agent-skills
Runs Cantera constant-volume or constant-pressure ignition simulations and reports temperature-based ignition delay with mechanism provenance and checks.
trpc-group/trpc-agent-go
Get current weather and forecasts via wttr.in or Open-Meteo.
ChatMol/ChatMol
Generate publication-quality molecular visualization images using PyMOL.
NVIDIA-BioNeMo/bionemo-agent-toolkit
Run a complete protein binder design campaign with NVIDIA Proteina-Complexa: resolve a target structure and hotspots from a name/sequence/PDB, co-design binder sequence+structure with reward-guided…
NVIDIA/physicsnemo-cfd
Create a new model wrapper for the PhysicsNeMo CFD benchmarking workflow.
NVIDIA/physicsnemo-cfd
Create a custom metric for the PhysicsNeMo CFD benchmarking workflow.
Works with
Categories
Create a new dataset adapter for the PhysicsNeMo CFD benchmarking workflow. Physicsnemo Cfd Create Dataset Adapter is an agent skill from NVIDIA/physicsnemo-cfd, published by the product's own GitHub organization. Create a new dataset adapter for the PhysicsNeMo CFD benchmarking workflow.
Physicsnemo Cfd Create Dataset Adapter fits situations like: the user wants to add a new CFD dataset; write a DatasetAdapter; integrate a new mesh format; benchmark models on custom data.
Run `npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a claude-code`. Or copy the skill folder (skills/physicsnemo-cfd-create-dataset-adapter in NVIDIA/physicsnemo-cfd) into .claude/skills/physicsnemo-cfd-create-dataset-adapter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a codex`. Or copy the skill folder (skills/physicsnemo-cfd-create-dataset-adapter in NVIDIA/physicsnemo-cfd) into .agents/skills/physicsnemo-cfd-create-dataset-adapter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-dataset-adapter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/physicsnemo-cfd-create-dataset-adapter, .gemini/skills/physicsnemo-cfd-create-dataset-adapter, .github/skills/physicsnemo-cfd-create-dataset-adapter and .opencode/skills/physicsnemo-cfd-create-dataset-adapter in your project.
SKILL.md names no scripts, command-line tools or credentials: Physicsnemo Cfd Create Dataset Adapter is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Physicsnemo Cfd Create Dataset Adapter is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Physicsnemo Cfd Create Dataset Adapter: Astropy (zLanqing/codex-claude-academic-skills, 4.6k stars), Pymatgen (zLanqing/codex-claude-academic-skills, 4.6k stars), Cantera Ignition Delay (K-Dense-AI/scientific-agent-skills, 48k stars) and Weather (trpc-group/trpc-agent-go, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/physicsnemo-cfd, which has 153 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 18, 2026.
Source: NVIDIA/physicsnemo-cfd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.