Cantera Ignition Delay
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.
Create a custom metric for the PhysicsNeMo CFD benchmarking workflow.
$ npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-custom-metric -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-custom-metric --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-custom-metric .claude/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .claude/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metricType 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-custom-metric -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-custom-metric --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-custom-metric .agents/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .agents/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metric -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-custom-metric --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-custom-metric .cursor/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .cursor/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metric--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-custom-metric -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NVIDIA/physicsnemo-cfd physicsnemo-cfd-create-custom-metric --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-custom-metric .gemini/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .gemini/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metricInstalls 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-custom-metric -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-custom-metric .github/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .github/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metric -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-custom-metric --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-custom-metric .opencode/skills/physicsnemo-cfd-create-custom-metric && 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-custom-metric" agent skill from https://github.com/NVIDIA/physicsnemo-cfd/tree/main/skills/physicsnemo-cfd-create-custom-metric into .opencode/skills/physicsnemo-cfd-create-custom-metric/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "physicsnemo-cfd-create-custom-metric", 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-custom-metricCreate a custom metric for the PhysicsNeMo CFD benchmarking workflow.
Physicsnemo Cfd Create Custom Metric is an agent skill from NVIDIA/physicsnemo-cfd, published by the product's own GitHub organization. Create a custom metric for the PhysicsNeMo CFD benchmarking workflow. Use when the user wants to add a new evaluation metric, implement a custom error measure, compute force coefficients, or extend the benchmark with domain-specific quantities.
Its SKILL.md is about 1.6k 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.
4 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 and yaml).
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 Custom Metric loads about 1.6k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 325 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). 325 words, ~1,588 tokens.
.claude/skills/physicsnemo-cfd-create-custom-metric/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 metric to the benchmarking workflow.
physicsnemo/cfd/postprocessing_tools/metric_registry.py —
register_metric, get_metric, MetricFnphysicsnemo/cfd/evaluation/metrics/builtin/forces.py — drag_error,
lift_error (dict-returning, mesh-based)physicsnemo/cfd/evaluation/metrics/builtin/l2.py — L2 metrics
(scalar-returning, numpy fallback)physicsnemo/cfd/evaluation/metrics/mesh_bridge.py —
build_comparison_mesh, resolve_comparison_mesh_for_metricphysicsnemo/cfd/postprocessing_tools/metrics/aero_forces.py —
compute_force_coefficients (normals, areas, integration)workflows/benchmarking/notebooks/adding_a_new_metric.ipynb —
end-to-end tutorialMetrics are plain callables, no base class:
MetricFn = Callable[..., float | dict[str, float]]Modern signature (accepts extended engine kwargs):
def my_metric(
ground_truth: dict, # canonical GT: {"pressure": ..., "shear_stress": ...}
predictions: dict, # canonical predictions from decode_outputs
*,
case: Any = None, # CanonicalCase from the dataset adapter
comparison_mesh: Any = None, # PyVista mesh with GT + pred arrays attached
metric_dtype: str | None = None, # "cell" or "point"
output: Any = None, # OutputConfig with field name mappings
**_: object, # absorb unknown kwargs
) -> float | dict[str, float]:
...Return types:
float — single scalar value (e.g., L2 error)dict[str, float] — multiple values; keys are auto-flattened by the
engine: {"error": 0.1, "pred": 42.0} from metric side_force becomes
side_force_error and side_force_pred in resultsimport numpy as np
def mae_pressure(ground_truth, predictions, **_):
gt = np.asarray(ground_truth.get("pressure", []), dtype=np.float64).ravel()
pred = np.asarray(predictions.get("pressure", []), dtype=np.float64).ravel()
if gt.size == 0 or pred.size == 0 or gt.shape != pred.shape:
return float("nan")
return float(np.mean(np.abs(gt - pred)))Use resolve_comparison_mesh_for_metric (shared helper in
mesh_bridge; do not copy a local _resolve_mesh) to get the
comparison mesh, then access arrays:
from physicsnemo.cfd.evaluation.metrics.mesh_bridge import resolve_comparison_mesh_for_metric
def my_force_metric(ground_truth, predictions, *, case=None, comparison_mesh=None,
metric_dtype=None, output=None, **_):
mesh, dtype = resolve_comparison_mesh_for_metric(
predictions,
case=case,
comparison_mesh=comparison_mesh,
metric_dtype=metric_dtype,
output=output,
)
if mesh is None or output is None:
return float("nan")
# Access fields by VTK array name from output config
p = mesh.cell_data[output.mesh_field_names["pressure"]]
wss = mesh.cell_data[output.mesh_field_names["shear_stress"]]
# Access mesh geometry
mesh = mesh.compute_normals().compute_cell_sizes()
normals = mesh["Normals"] # (N, 3)
areas = mesh["Area"] # (N,)
# Compute your metric...
return float(result)from physicsnemo.cfd.postprocessing_tools.metric_registry import register_metric
register_metric("my_metric", my_metric_fn, domain="surface") # or "volume" or Nonedomain="surface" — only used when model's inference domain is surfacedomain="volume" — only used for volume inferencedomain=None — domain-agnostic fallbackl2_pressure)Add the metric name to the metrics list:
config = Config.from_dict({
...
"metrics": ["l2_pressure", "drag", "lift", "my_metric"],
...
})Or in YAML:
metrics:
- l2_pressure
- my_metricPer-metric kwargs can be passed as a dict:
metrics:
- name: my_metric
some_param: 42Add to physicsnemo/cfd/evaluation/metrics/builtin/ and register from builtin/__init__.py:
def register_my_metrics():
register_metric("my_metric", my_fn, domain="surface")
# In __init__.py:
def register_all_builtin_metrics():
register_l2_metrics()
register_force_metrics()
register_physics_metrics()
register_my_metrics() # add this| Name | Domain(s) | Returns |
|---|---|---|
l2_pressure | surface, volume | float |
l2_shear_stress | surface | dict |
l2_pressure_area_weighted | surface | float |
l2_velocity | volume | dict |
l2_turbulent_viscosity | volume | float |
drag | surface | dict (error, true, pred) |
lift | surface | dict (error, true, pred) |
continuity_residual_l2 | volume | float |
momentum_residual_l2 | volume | float |
{"error": 0.1, "true": 5.0},
engine stores as metricname_error and metricname_true. An empty
string key "" maps to just metricname.float("nan") for failures; engine
accumulates NaN gracefully.TypeError it falls back to fn(gt, predictions, **mkwargs) only.
Modern metrics should accept **_ to absorb unknowns.benchmark_results.json is a plain
list[dict], not {"results": [...]}.output.mesh_field_names /
output.ground_truth_mesh_field_names; volume uses
output.volume_mesh_field_names /
output.ground_truth_volume_mesh_field_names.© 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-custom-metric of NVIDIA/physicsnemo-cfd.
Open the folder on GitHubat commit 0612ec4
Physicsnemo Cfd Create Custom Metric 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 Custom Metric this skillNVIDIA/physicsnemo-cfd | 153 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Cantera Ignition DelayK-Dense-AI/scientific-agent-skills | 48k | 2 repos | ~2.2k | Automated safety check: Pass | MIT | |
| 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 | |
| Weathertrpc-group/trpc-agent-go | 1.8k | 9 repos | ~591 | Automated safety check: Pass | Apache-2.0 | |
| Pymol VisualizationChatMol/ChatMol | 372 | — | ~1.2k | Automated safety check: Pass | MIT |
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.
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.
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 new dataset adapter for the PhysicsNeMo CFD benchmarking workflow.
Works with
Categories
Create a custom metric for the PhysicsNeMo CFD benchmarking workflow. Physicsnemo Cfd Create Custom Metric is an agent skill from NVIDIA/physicsnemo-cfd, published by the product's own GitHub organization. Create a custom metric for the PhysicsNeMo CFD benchmarking workflow.
Physicsnemo Cfd Create Custom Metric fits situations like: the user wants to add a new evaluation metric; implement a custom error measure; compute force coefficients; extend the benchmark with domain-specific quantities.
Run `npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-custom-metric -a claude-code`. Or copy the skill folder (skills/physicsnemo-cfd-create-custom-metric in NVIDIA/physicsnemo-cfd) into .claude/skills/physicsnemo-cfd-create-custom-metric in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NVIDIA/physicsnemo-cfd --skill physicsnemo-cfd-create-custom-metric -a codex`. Or copy the skill folder (skills/physicsnemo-cfd-create-custom-metric in NVIDIA/physicsnemo-cfd) into .agents/skills/physicsnemo-cfd-create-custom-metric 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-custom-metric -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-custom-metric, .gemini/skills/physicsnemo-cfd-create-custom-metric, .github/skills/physicsnemo-cfd-create-custom-metric and .opencode/skills/physicsnemo-cfd-create-custom-metric in your project.
SKILL.md names no scripts, command-line tools or credentials: Physicsnemo Cfd Create Custom Metric 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 Custom Metric 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 1.6k tokens (SKILL.md is roughly 6.4k 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 Custom Metric: Cantera Ignition Delay (K-Dense-AI/scientific-agent-skills, 48k stars), Astropy (zLanqing/codex-claude-academic-skills, 4.6k stars), Pymatgen (zLanqing/codex-claude-academic-skills, 4.6k 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.