Substrate Retainer Frame V1
implemented unverified
Vertical Farm Pack v1: the Snap Retainer Frame — a flat ring plate that clicks onto the coco cassette and holds the mat down LIGHTLY (retention, not compression: coco breathes, roots pass the opening). Four cantilever hooks (two per +-X side) flip down into the cassette's snap windows; the insertion strain and lip engagement are verified by the snap joint in the assembled pose, not hoped for. Everything is open geometry — no pocket a brush cannot reach, nothing that traps water. Removes by hand: flex two hooks, lift.
Declaration example
A minimal product declaration for this archetype — exposed parameters at
their defaults. Validate and build it with
forge validate / forge build.
schema: product/v1
id: my_substrate_retainer_frame
archetype: substrate_retainer_frame_v1@1
params:
cassette_l: 220mm
band_w: 10mm Parameters
| parameter | type | default | range | role | |
|---|---|---|---|---|---|
cassette_lcassette envelope the frame rides — shared with the cassette | length | 220mm | 180mm … 236mm | assembly | exposed |
cassette_wallcassette wall thickness — positions the hooks inside it | length | 2.4mm | 2mm … 3.2mm | assembly | |
frame_t | length | 3mm | 2.4mm … 4mm | structural | |
band_wring band width pressing the substrate rim | length | 10mm | 8mm … 16mm | functional | exposed |
corner_r | length | 3mm | 2mm … 6mm | aesthetic | |
beam_thook beam thickness — thinner flexes easier | length | 1.6mm | 1.2mm … 2.2mm | structural | |
hook_w | length | 8mm | 6mm … 12mm | structural | |
hook_lencantilever length — longer means lower insertion strain | length | 9mm | 7mm … 14mm | structural | |
lip_dlip undercut depth into the snap window | length | 1.4mm | 1mm … 2mm | assembly | |
lip_h | length | 3mm | 2mm … 4mm | assembly | |
syY spacing between the two hooks on each side | length | 120mm | 60mm … 200mm | assembly |
Regions
-
frame_bandmounting surface -
snap_root_0high stress region -
snap_root_1high stress region -
snap_root_2high stress region -
snap_root_3high stress region
Contract
Guarantees
must-have features and invariants — verified on every build
cleanable_snap_interface1.5 * lip_d * beam_t / (hook_len * hook_len) <= 0.05
Will refuse
explicit prohibitions — the engine refuses to build these
uncleanable_snap_cavity
Not claimed
what passing validation does not mean
- Provided “as is” under Apache-2.0 — no warranty of fitness for a particular purpose.
Built from operations
retainer_frame_bodyframe_snap_hooks
Subscribed validators (8)
interface.frame_existsinterface.frame_orthonormalinterface.normal_points_outwardinterface.up_consistentform.snap_pockets_cleanabletopology.cutout_presenttopology.single_connected_solidtopology.ribs_present