Phone Stand V1
implemented unverified
Free-standing desk phone stand: base slab, tilted back rest and a front lip forming the device slot (slot width = device_thickness / sin(tilt) + clearances — exact trigonometry, measured on the profile). Charging cutout through the lip center with a cable trough across the slot floor. The stability check proves the combined part+device center of mass stays inside the base footprint BEFORE anything is printed.
Built from a real example — orbit to inspect.
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_phone_stand
archetype: phone_stand_v1@1
params:
device_w: 78mm
device_thickness: 11mm
tilt_deg: 68deg
base_depth: 75mm
charging_cutout: True
modifiers:
- id: add_voronoi_field
target: base_bottom Parameters
| parameter | type | default | range | role | |
|---|---|---|---|---|---|
device_w | length | 78mm | 55mm … 120mm | functional | exposed |
device_thicknessphone thickness incl. case | length | 11mm | 6mm … 20mm | functional | exposed |
tilt_deg>= 45 keeps the back rest overhang printable | angle | 68deg | 45deg … 80deg | functional | exposed |
lip_h | length | 9mm | 5mm … 18mm | functional | |
lip_t | length | 3.5mm | 2.5mm … 6mm | structural | |
fit_clearance | length | 0.5mm | 0.2mm … 1.5mm | manufacturing | |
base_t | length | 6mm | 4mm … 10mm | structural | |
base_depth | length | 75mm | 50mm … 120mm | structural | exposed |
rest_len | length | 90mm | 60mm … 140mm | structural | |
rest_t | length | 5mm | 3.5mm … 8mm | manufacturing | |
width | length | expr(device_w * 0.85) | 40mm … 120mm | functional | |
charging_cutout | bool | True | — | functional | exposed |
cutout_w | length | 14mm | 8mm … expr(width - 20) | functional | |
cutout_dropcable trough depth in the slot floor | length | 3mm | 2mm … expr(base_t - 2) | functional | |
device_massnominal device mass (g) for the stability check | number | 220 | 120 … 400 | safety_locked | |
device_com_lendevice COM distance up the rest | length | 70mm | 40mm … 110mm | safety_locked | |
stability_margin | length | 5mm | 3mm … 15mm | safety_locked |
Regions
-
base_bottommounting surface -
device_restsoft contact surface -
lipretaining flexure forbids: add_hex_perforation -
rest_roothigh stress region forbids: add_hex_perforation -
base_lighteningaesthetic lightening -
rest_lighteningaesthetic lightening
Contract
Guarantees
must-have features and invariants — verified on every build
device_reststable_footprinttilt_deg >= 45
Will refuse
explicit prohibitions — the engine refuses to build these
tipping_standboxy_rectangular_hook
Not claimed
what passing validation does not mean
- Provided “as is” under Apache-2.0 — no warranty of fitness for a particular purpose.
Allowed modifiers
add_voronoi_fieldadd_hex_perforationadd_grid_slot_field
Subscribed validators (7)
form.device_slot_fitsform.stability_footprintform.cuts_respect_keepoutsform.contact_edges_roundedtopology.single_connected_solidtopology.cutout_presenttopology.ribs_present