"Route StarDist label validation, star-distance representations,
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill evaluation-geometry --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Evaluation Geometry?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-evaluation-geometry)More formats (shields.io, HTML) on the badges page.
---
name: "evaluation-geometry"
description: "Route StarDist label validation, star-distance representations,
polygon/polyhedron rendering, NMS, matching metrics, patch sampling, and
visualization/error overlays."
metadata:
disco-role: operating
disable-model-invocation: true
license: BSD 3-Clause
---
# Evaluation and geometry
Use this sub-skill for standalone label/data work: star distances, polygon or
polyhedron conversion, dense/sparse non-maximum suppression, instance matching,
temporal label grouping, patch centers, threshold concepts, and 2D diagnostic
overlays. Keep neural model construction/training and model prediction in
[2d-workflows](../2d-workflows/SKILL.md) or
[3d-workflows](../3d-workflows/SKILL.md). Keep file CLIs and optional
BioImage.IO, ImageJ/ROI, OBJ, and QuPath integration in
[deployment-integration](../deployment-integration/SKILL.md).
## Route
1. Validate integer, non-negative labels; shape/rank; grid powers of two; and
3D `Rays_*` alignment before native calls.
2. Read [api-reference.md](references/api-reference.md) for exact signatures,
shapes, dtypes, tuples, and threshold inclusivity. Use
[representations.md](references/representations.md) to keep `(Y,X)` versus
`(Z,Y,X)`, grid, rays, and physical scales aligned.
3. Use CPU `mode="cpp"` and compiled C++ extensions for the required baseline;
use `mode="python"` only as a bounded fallback. OpenCL is optional and must
be explicitly probed, never inferred from CUDA visibility.
4. Evaluate with [evaluation.md](references/evaluation.md), visualize with
[visualization.md](references/visualization.md), and recover failures with
[troubleshooting.md](references/troubleshooting.md).
5. Run `scripts/smoke_geometry.py` after the installed package and compiled CPU
extensions are available. It is tiny, deterministic, CPU-only, and has no
network or source-checkout dependency.
## Core invariants
`star_dist(a,n_rays,grid,mode)` takes a 2D label image and returns `float32`
`(ceil(Y/gy),ceil(X/gx),R)` on the native path. `star_dist3D(lbl,rays,grid,mode)`
takes a label image plus a `Rays_*` object and returns `float32`
`(ceil(Z/gz),ceil(Y/gy),ceil(X/gx),len(rays))`. `dist_to_coord` returns
`(N,2,R)` and `dist_to_coord3D` returns `(N,R,3)`, both in row/column or
`(z,y,x)` coordinates respectively. Dense NMS returns `(points,prob,dist)`;
sparse NMS adds `original_indices`. `matching` returns a metrics named tuple
and optionally match details.
`polygons_to_label` returns a 2D `int32` image. In this baseline a non-empty
native `polyhedron_to_label` result is `int32`, while its empty-point fast path
is `uint16`; normalize explicitly if a downstream format requires one dtype.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!