Valence
A curated registry of hydrodynamic domains and meshes — one canonical manifest.toml, with mesh files fetched on demand from a HuggingFace mirror.
Thomas Estep & Dominik Mattioli
Unaffiliated
Table of Contents
- Why Valence
- Installation
- Quick start
- Examples
- Demos
- Registry
- Ecosystem
- Status & roadmap
- Citation
- Contact
- License
flowchart LR
A["registry_data/\nmanifest.toml"] --> B["valence_domains/data/\nmanifest.toml\n(bundled in wheel)"]
A --> C["Parquet sidecar\n(derived at publish)"]
B --> D["HuggingFace Hub\ndomattioli/Valence"]
C --> D
D -->|"Mesh.load()\non demand"| E["chilmesh.Mesh"]
Why Valence
Hydrodynamic mesh data is scattered across papers, lab drives, and agency portals, and rarely reproducible. Valence consolidates it into one registry of 14 Domains and 46 Meshes (~112 MB) (27 of the Meshes sit in 5 Collections, which are not Domains), addressable by composite ID (WNAT/hagen@v1):
- One canonical
manifest.tomlis the single source of truth for every mesh's metadata — provenance, element type, lineage. The Parquet sidecar is derived from it at publish time, never authoritative. - Mesh files load on demand.
Mesh.load()pulls a.14/.2dmfrom the HuggingFace mirror and caches it; the base wheel ships no mesh bytes (~50 KB install). - Contribution is a validated pull request. The PR validator runs on every push; provenance is mandatory, so a generated stand-in cannot masquerade as a published mesh.
- Code and data release on separate tracks. Code/API/schema changes tag
vX.Y.Z→ PyPI + HF; mesh add/edit publishes to HF only (data-YYYY-MM-DD-<sha7>), leaving the PyPI version untouched.
These are the public release surfaces:
| Surface | Contents |
|---|---|
domattioli.github.io/Valence |
Website — browse / preview / download / contribute (planned) |
pypi.org/project/valence-domains |
Python package (published; 0.4.3 is the current release) |
huggingface.co/datasets/domattioli/Valence |
Mesh files + Parquet sidecar + dataset card (not yet published) |
This repository holds the data, schema, publisher pipeline, and CI for contributors and maintainers. End users do not need to clone it — pip install valence-domains[hf] is enough.
Installation
pip install valence-domains # bundled manifest only (~50 KB, no mesh downloads)
pip install valence-domains[hf] # + Mesh.load() — fetches mesh files from the HF mirror
pip install valence-domains[gen] # + the synthetic-mesh generator (numpy + scipy)
The query API (find_domains, find_meshes, get_mesh, test_meshes, Mesh.load) is documented on the HF dataset card. For pytest fixtures, from valence_domains import test_meshes returns every registry mesh flagged for testing.
Quick start
The generator writes deterministic fort.14 meshes for tests, docs, and comparison fixtures:
valence-domains generate --output mesh.14 --seed 42 --node-count 500
valence-domains generate --output tri.14 --element-type triangle --seed 1
valence-domains generate --output quad.14 --element-type quad --seed 1
Identical --seed + --node-count + --element-type produce byte-identical output. Requires the [gen] extra.
Examples
Query the registry and load a mesh on demand (requires the [hf] extra):
from valence_domains import find_domains, find_meshes, get_mesh, test_meshes
find_domains() # every domain in the manifest
find_meshes(domain="WNAT") # meshes within a domain
mesh = get_mesh("WNAT/hagen@v1") # registry metadata (no download yet)
fort14_path = mesh.load() # downloads from the HF mirror, cached → local Path
for m in test_meshes(): # meshes flagged as test fixtures
...
Full API reference: the HuggingFace dataset card.
Demos
Start here — the canonical offline walkthrough:
make venv && make demo # offline, deterministic, ~1–2 min; no key/credential/network
make demo runs examples/build_proposal_notebook.py --check: the intent-guided
region-proposal notebook executed end to end offline — compile structured constraints
(supported / advisory / unsupported diagnostics) → rank deterministic proposals from
precomputed synthetic selection artifacts → cross the single human-approval boundary to
an approved region. It is the first thing to send a new evaluator, collaborator,
user/funder, or developer.
Valence's region-proposal → change-controlled review subsystem is also demonstrated
through the hosted web lifecycle. Full detail (audience, runtime, internet, optional deps,
exact command, what each proves vs. does not) is in
docs/DEMO-MATRIX.md. The public product
imports precomputed SegmentAnyMesh selection artifacts and ranks them by your
constraints (the always-available path). In-product candidate generation from
constraints is wired but runs only with the proprietary, owner-only SegmentAnyMesh
engine (not publicly installable); without it the produce path fails closed with an
actionable error, never a fixture.
It is advisory planning, not a claim of scientific necessity, optimality, or simulation
accuracy; approval is a human gate (see docs/current-capability-model.md).
| Want to… | Run | Needs |
|---|---|---|
| Get started (canonical, offline) | make demo (= build_proposal_notebook.py --check) |
.venv only |
| See the real product (constraints + selection artifacts → ranked proposals → approve → review) | Web lifecycle at /projects/[id]/… |
backend + npm run dev |
| Reproduce the whole chain offline / in CI | Portable notebook: .venv/bin/python examples/build_proposal_notebook.py --check |
.venv only |
Walkthroughs (CLI + timed demo scripts): docs/DEMO-GUIDE.md.
No demo needs an LLM or network at run time.
Registry
packages/valence_domains/ Python package — schema, manifest loader, query API,
CLI, HF publisher, dataset-card template
packages/valence_domains/data/ Bundled manifest.toml shipped in the wheel
apps/backend/ FastAPI contribution backend (Vercel)
apps/frontend/ Next.js site (Vercel)
registry_data/ Source-of-truth manifest + mesh files (.14, .2dm);
excluded from wheel/sdist, mirrored to HF
DomI/specs/consumers/Valence/specs/ Spec-driven design docs (one folder per feature)
scripts/ One-shot data tooling (mesh import, bbox extractor)
tests/ pytest suite (mocked huggingface_hub)
.github/workflows/ release.yml (tag → PyPI + HF), validate-pr.yml (CI)
Ecosystem
| Repo | Role |
|---|---|
| CHILmesh | Core mesh engine; Mesh.from_admesh_domain() reads from this registry |
| ADMESH | Triangle mesh generator this registry complements; WNAT_Hagen.14 is its reference domain |
| QuADMESH | Quad mesh generator; uses registry domains as test inputs |
| MADMESHing | Benchmark harness; pulls Block-O from this registry |
Status & roadmap
- Status — package version
0.4.3, published on PyPI asvalence-domains. Registry holds 14 Domains + 46 Meshes (~112 MB), 27 of them in 5 Collections. Code and data release on separate tracks (PyPI + HF for code/schema; HF only for data) — see CHANGELOG.md for the per-version history. - Next — content-UID identity for deduplication, domain lineage graph, expanded test-suite coverage.
See CHANGELOG.md for the full release history.
Citation
Mattioli, D. & Estep, T. (2026). Valence: Curated registry of hydrodynamic domains and meshes. (DOI pending publication.)
Contact
- Thomas Estep — github.com/thomas-estep
- Dominik Mattioli — github.com/domattioli
License
Noncommercial / research use only. PolyForm Noncommercial License 1.0.0 with an additional No-AI/ML-training restriction — see LICENSE. No commercial use and no use as AI/ML training data without a separate written license; for either, contact Dominik Mattioli at https://github.com/domattioli.
Metadata
Release files for valence-domains 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| valence_domains-0.4.3.tar.gz | 188.9 kB | Without provenance | Details for valence_domains-0.4.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| valence_domains-0.4.3-py3-none-any.whl | Python 3 | none | any | Details for valence_domains-0.4.3-py3-none-any.whl |
Total release size: 394.4 kB
Release files / valence_domains-0.4.3.tar.gz
| Download URL | valence_domains-0.4.3.tar.gz |
|---|---|
| Size | 188.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
05aa2c7383829e052056c0bae8481ffeb850eeb5466872edfde09f93a38818e7
|
|
BLAKE2b-256 checksum How to use checksums |
968dad8f4871c1b5c86546a67fbeea6b10fc90d5706b8ef72a0f427b7feeac16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / valence_domains-0.4.3-py3-none-any.whl
| Download URL | valence_domains-0.4.3-py3-none-any.whl |
|---|---|
| Size | 205.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d82bc9a0d126da14c7ba862e6bbe595321eb76b3e17854bb6b9ec09f49f0659b
|
|
BLAKE2b-256 checksum How to use checksums |
f89b54616bfc07e155806d5e6589b7cede72ba826f10e69b5b84c00d8e8690d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for valence-domains 0.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.