The question
py-mat 3.11.0 ships ~80 curated materials with _sources provenance and a licensing gate. The long tail of engineering materials is vast — every CAD user we don't ship is a user who needs a path to define their own. Today there are three plausible modes, and we don't yet have an opinion on the right default.
- Personal config —
Material(name="MyAlloy", density=...) ad-hoc in the user's own script. Zero ceremony; no provenance; no shared correctness.
- Per-project / per-vendor TOML — committed to the user's repo, loaded via
pymat.load_toml(path). Per-team curation; provenance preserved; users pay the schema cost. (Existing API, undocumented as the recommended pattern.)
- Upstream PR — material added to
src/pymat/data/<category>.toml with citations + license, reviewed against docs/data-policy.md. Everyone gets it; highest friction.
What I'd like your read on, @bernhard-42
Three things, where build123d's user-base shape is the strongest signal:
- What's the realistic split? Of build123d users who reach for
shape.material = ..., how many would land at (a) ad-hoc, (b) per-team TOML, (c) upstream PR? Order-of-magnitude is enough.
- Is the schema bar a barrier for the long tail? A user who just wants
density for shape.mass (your Level-2 ergonomic) faces the full TOML schema today. Is a lighter "drive-by" path worth building?
- Is the licensing/provenance gate (citation + license per property) reasonable for community contributions, or does it filter the long tail before it reaches a PR?
Picking a default unilaterally would lock in the wrong choice if your users actually behave differently than we'd guess. No timeline.
References
The question
py-mat 3.11.0 ships ~80 curated materials with
_sourcesprovenance and a licensing gate. The long tail of engineering materials is vast — every CAD user we don't ship is a user who needs a path to define their own. Today there are three plausible modes, and we don't yet have an opinion on the right default.Material(name="MyAlloy", density=...)ad-hoc in the user's own script. Zero ceremony; no provenance; no shared correctness.pymat.load_toml(path). Per-team curation; provenance preserved; users pay the schema cost. (Existing API, undocumented as the recommended pattern.)src/pymat/data/<category>.tomlwith citations + license, reviewed againstdocs/data-policy.md. Everyone gets it; highest friction.What I'd like your read on, @bernhard-42
Three things, where build123d's user-base shape is the strongest signal:
shape.material = ..., how many would land at (a) ad-hoc, (b) per-team TOML, (c) upstream PR? Order-of-magnitude is enough.densityforshape.mass(your Level-2 ergonomic) faces the full TOML schema today. Is a lighter "drive-by" path worth building?Picking a default unilaterally would lock in the wrong choice if your users actually behave differently than we'd guess. No timeline.
References
_sourcesprovenance + licensing gatedocs/data-policy.md— the bar for shipped data