Skip to content
Back to skills

Mesh And Geometry

ASecurity

"Use PhysicsNeMo-Mesh for Mesh/DomainMesh creation, validation,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
devopspythongobashtestingapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill mesh-and-geometry --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mesh And Geometry?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mesh And Geometry
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-mesh-and-geometry/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-mesh-and-geometry)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mesh-and-geometry
description: "Use PhysicsNeMo-Mesh for Mesh/DomainMesh creation, validation,
  geometry/calculus, queries, repair/remesh, I/O, and visualization."
metadata:
  disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---

# PhysicsNeMo mesh-and-geometry

Use this sub-skill when the task is about PhysicsNeMo-Mesh objects or mesh preprocessing rather than choosing a neural model or building a data reader.

## Trigger phrases

- `Mesh`, `DomainMesh`, simplicial mesh, triangle mesh, tetrahedral mesh, point cloud, curve mesh.
- Mesh creation, field attachment, `point_data`, `cell_data`, `global_data`, TensorDict field ranks.
- Mesh validation, quality metrics, manifold/watertight checks, duplicate vertices, degenerate or inverted cells.
- Geometry or calculus: centroids, areas/volumes, normals, curvature, gradient, divergence, curl, Laplace-Beltrami.
- Neighbors, adjacency, BVH, spatial query, barycentric sampling/interpolation.
- Mesh repair, cleaning, subdivision, remeshing, transformations/deformation.
- PyVista/VTK conversion, Zarr/native mesh serialization, visualization caveats.

## Fast route

1. **Confirm the representation.** PhysicsNeMo-Mesh accepts pure simplicial complexes: 0-simplices/points, 1-simplices/edges, 2-simplices/triangles, 3-simplices/tetrahedra, or higher-dimensional simplices. Do not treat arbitrary VTK polygons/polyhedra as directly supported until they are triangulated/tetrahedralized or converted through an explicit helper.
2. **Choose object type.** Use `Mesh` for one geometry and `DomainMesh` for an interior mesh plus named boundary meshes.
3. **Import from the right surface.** Root `physicsnemo.mesh` exports only the core object model and field-rank helpers. Validation, I/O, sampling, repair, remeshing, spatial, and calculus functions live in submodules.
4. **Validate before expensive work.** Check tensor shape/dtype/device, out-of-bounds indices, degeneracy, duplicate vertices, and optional manifoldness/inversion. Then compute quality metrics if mesh health matters.
5. **Run operations on the mesh device.** `mesh.to("cuda")` moves geometry and attached data together; PyVista/VTK visualization and conversion are CPU/external-library workflows.
6. **Use references for details.** Recipes: [references/mesh-workflows.md](references/mesh-workflows.md). API/import map: [references/api-reference.md](references/api-reference.md). Failure modes: [references/troubleshooting.md](references/troubleshooting.md).

## Minimal import pattern

```python
from physicsnemo.mesh import DomainMesh, Mesh
from physicsnemo.mesh.validation import compute_quality_metrics, validate

# Compatibility alias exists in the validation submodule, not the mesh root:
from physicsnemo.mesh.validation import validate_mesh  # pending-deprecation alias
```

Never write `from physicsnemo.mesh import validate_mesh`; it is not a root export.

## Validation checklist

- `points`: floating tensor with shape `(n_points, n_spatial_dims)`.
- `cells`: integer tensor with shape `(n_cells, n_manifold_dims + 1)`, same device as `points`; omit it or pass `None` for a point cloud.
- `n_manifold_dims <= n_spatial_dims`; triangles in 3D are valid, tetrahedra in 2D are not.
- Cell indices are in `[0, n_points)` and one cell should not repeat a vertex unless intentionally testing degeneracy.
- `point_data` leaves start with `n_points`; `cell_data` leaves start with `n_cells`; `global_data` has no leading mesh batch dimension.
- For semantic rank schemas, use root field helpers such as `ranks_from_tensordict()` and `validate_data_contains_ranks()`.
- For `DomainMesh`, every boundary value must be a `Mesh` and share the interior spatial dimension; use `dm.validate()` plus `dm.is_boundary_watertight()` when boundary closure matters.

## Sibling routes

- Model-family choice for MeshGraphNet, Transolver, DoMINO, FIGConvNet, or graph/geometry models: route to sibling sub-skill `model-selection`.
- Mesh file readers inside a training data pipeline, including `MeshReader` or `DomainMeshReader`: route to sibling sub-skill `datapipes`.
- Multi-GPU/domain-parallel training after mesh preprocessing: route to sibling sub-skill `distributed-and-domain-parallel`.
- Active-learning loops or ONNX export after mesh-based inference: route to sibling sub-skill `active-learning-and-deployment`.

## Bundled smoke

Run a tiny local check without downloads:

```bash
python sub-skills/mesh-and-geometry/scripts/mesh_smoke.py
python sub-skills/mesh-and-geometry/scripts/mesh_smoke.py --cuda
```

The `--cuda` path only moves a three-point triangle mesh to CUDA when CUDA is available.

Files in this skill

  • SKILL.md4.5 KB
  • references/api-reference.md1.5 KB
  • references/mesh-workflows.md1.8 KB
  • references/troubleshooting.md1.4 KB
  • scripts/mesh_smoke.py1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.