# Component catalog

> All registered component kinds. Parts you can place in a bench.

- [`shaft`](/docs/components/shaft) (mech) — Cylindrical rotating axle. Typically anchors one or more gears via `mech.couple` so they spin together.
- [`spur-gear`](/docs/components/spur-gear) (mech) — Cylindrical gear with straight teeth. The canonical mechanical building block: mates with other spur gears of the same module via `mech.mesh`.
- [`pulley`](/docs/components/pulley) (mech) — Smooth rotating disc used as a belt anchor. Pairs with another pulley via `mech.belt`; the ratio is driven by the pitch diameters.
- [`htd5m-pulley`](/docs/components/htd5m-pulley) (mech) — Synchronous timing-belt pulley with the HTD 5M profile (5 mm pitch, curved teeth) and optional side flanges. Meshes with HTD5M timing belts; 3D-printable.
- [`rack`](/docs/components/rack) (mech) — Straight toothed bar. Engages a spur gear (the pinion) via `mech.rackPinion`; the pair converts rotation into linear translation along the rack local X axis.
- [`bevel-gear`](/docs/components/bevel-gear) (mech) — Cone-shaped gear for transmitting rotation between intersecting axes. Two bevel gears of the same module mesh with their axes meeting at `pitchAngle_a + pitchAngle_b` (usually 90°).
- [`helical-gear`](/docs/components/helical-gear) (mech) — Cylindrical gear with teeth cut at a helix angle. Quieter engagement than a spur gear; meshes with another helical of the same normal module and equal helix angle with opposite hand on parallel axes via `mech.helicalMesh`.
- [`crank`](/docs/components/crank) (mech) — Rigid arm that rotates around a pivot. The pivot sits at the component origin; the arm extends along the local +X axis for `length` mm. Same single rotational port as a shaft, different visual footprint.
- [`motor`](/docs/components/motor) (mech) — Rotational source. Produces a constant RPM on its axis port every tick; connecting a shaft or gear via `mech.couple` / `mech.mesh` drives the downstream chain.
- [`sprocket`](/docs/components/sprocket) (mech) — Toothed wheel that engages a chain without slipping. Pairs with another sprocket via `mech.chain`; the ratio is driven by tooth counts (not diameters, unlike pulleys).
- [`worm`](/docs/components/worm) (mech) — Single- or multi-start helical screw. Pairs with a spur gear (the worm wheel) via `mech.wormMesh` for very high reduction ratios (typical 1:20 up to 1:100).
- [`steel-tube-square`](/docs/components/steel-tube-square) (static) — Hollow square-section steel profile — the primary structural member for benches and frames. Runs along its local Z axis; rotate it to stand or lie as needed.
- [`steel-tube-rectangular`](/docs/components/steel-tube-rectangular) (static) — Hollow rectangular-section steel profile for frame rails and stretchers. Section w (X) × h (Y), length along local Z.
- [`steel-sheet`](/docs/components/steel-sheet) (static) — Flat steel plate. Lies flat: length along X, width along Z, thickness along Y. Use as a metal worktop, gusset, or base plate.
- [`wood-panel`](/docs/components/wood-panel) (static) — Flat wood board — OSB, MDF, plywood or pine. The classic bench worktop or shelf. Length along X, width along Z, thickness along Y.
- [`steel-angle`](/docs/components/steel-angle) (static) — Equal-leg L-section steel bar for brackets, gussets and reinforcement. Cross-section leg × leg, length along local Z.
- [`bolt`](/docs/components/bolt) (static) — Simplified metric hex bolt: hex head plus plain shank (no thread modeled). Runs along local Z, head at the +Z end. For fastened joints and the BOM.
- [`generic-solid`](/docs/components/generic-solid) (static) — Neutral rectangular block used as a bounding-box stand-in for parts that do not yet have a dedicated kind (round bar, channel, custom profiles). Sized width (X) × height (Y) × length (Z), centered on the local origin.
- [`steel-flat-bar`](/docs/components/steel-flat-bar) (static) — Solid rectangular steel bar (barra chata) for braces, straps, feet and gussets. Width along local X, thickness along local Y, length along local Z.
- [`steel-tube-round`](/docs/components/steel-tube-round) (static) — Hollow round-section steel tube for handrails, legs and light frames. Runs along its local Z axis; rotate it to stand or lie as needed.
- [`steel-channel-u`](/docs/components/steel-channel-u) (static) — Open U (channel) steel section — a stiff cross member. Web along local X, flanges rising along local Y, length along local Z.
- [`caster-wheel`](/docs/components/caster-wheel) (static) — Swivel caster: square mounting plate + steel fork + nylon wheel. Bolts under a leg or a base frame so the assembly rolls. Plate faces up (+Y), wheel touches the floor (−Y).
- [`leveling-foot`](/docs/components/leveling-foot) (static) — Adjustable foot: a round base pad and a threaded stud that screws into a leg to level a bench on an uneven floor. Pad at the bottom (−Y), stud pointing up (+Y).
- [`hinge`](/docs/components/hinge) (static) — A flat steel butt hinge: two leaves and a knuckle pin. Shown open and flat — leaves span local X (width), pin runs along local Z (length), thin along local Y.
- [`handle`](/docs/components/handle) (static) — A tubular U-shaped pull handle: a grip along local X standing off the surface by its two legs along local Y. For drawers, doors and lids.
- [`drawer-slide`](/docs/components/drawer-slide) (static) — A telescopic steel drawer slide. Runs along its local Z axis; the section is width (X) × height (Y). Comes in pairs (one per side).
- [`profile`](/docs/components/profile) (static) — A custom 2D polygon extruded along local Z — for gussets, brackets, mão-francesa braces and cut plates. Points are [x, y] pairs in mm, authored counter-clockwise; the shape is centered and extruded by `thickness`.
- [`custom-part`](/docs/components/custom-part) (static) — A part you drew in the sketch/body editor (the parts library) placed into a bench. It carries a reference to the saved body plus a denormalized snapshot of its bounding box, weight and material, so the bench renders the real evaluated mesh while its graph, layout and BOM stay self-contained.
