Packs
A pack is not a folder of models. It ships archetypes, operations, modifiers, validators, examples, documentation and golden tests — a complete domain toolkit that plugs into the engine's registries.
Official
Artifact Forge Showcase Pack
freeVertical Farm
A complete modular grow-system toolkit: interlocking cassette rails, root chambers, a lowered sump with a radial funnel, drain-screen baskets and magnetic end-caps — every part support-free and validated to drain dry, seal at the laps, and route water continuously across a whole row.
Build your own
Most new products can be expressed as YAML — archetypes, examples and presets with no Python at all. Python enters only when a geometric or validation capability itself is missing. Community packs live in their own repositories and register through a standard entry point.
- 01
Copy a template
yaml-pack (archetypes + examples, zero Python beyond a two-line register()) or python-pack (adds self-registering checks with tests). Rename the package, update pack.yaml and the entry-point name.
- 02
Register via entry point
The engine discovers packs through the artifact_forge_ng.packs entry-point group. register(ctx) runs once at catalog load, fail-fast; collisions with existing ops/joints/checks are errors unless explicitly declared as overrides.
- 03
Follow the honesty rules
Every archetype ships an example that passes forge validate in strict mode. Every new check has PASS, FAIL and n/a tests on real op-built forms. Claims are explicit — default non-claims stay non-claims unless externally certified.
- 04
Test locally
uv pip install -e your-pack, forge validate your example, pytest your tests — and verify the core still imports clean with packs disabled.