# Feature reference

Generated from the package declarations. Values below are defaults, not live node values. Short names are the normal interface. Existing `physics...` styles and `physics ...` key aliases remain supported.

Use `\physicshelp{wedge}` inside a `tikzpicture` to display the same reference. For a named object use `show keys` or `show anchors`.

All objects support ordinary TikZ styling; see the manual for transformation and sizing limitations. Percentage families accept integers 0 through 100.

## platform-left (node)

| Key | Default |
| --- | --- |
| `minimum width` | 5cm |
| `minimum height` | 2cm |
| `strip width` | 0.25cm |
| `wall angle` | -90 degrees |

Size aliases: platform width = minimum width; platform depth = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, corner, floor-tl, floor-tr, floor-br, floor-bl, floor-top-mid, floor-bottom-mid, floor-left-mid, floor-right-mid, floor-center, wall-A, wall-B, wall-C, wall-D, wall-outer-mid, wall-inner-mid, wall-near-mid, wall-far-mid, wall-center, text

**Families:** floor-bottom-0..100, floor-right-0..100, floor-top-0..100, floor-left-0..100, wall-outer-0..100, wall-inner-0..100, wall-near-0..100, wall-far-0..100

Default hook: `every platform`.

## platform-right (node)

| Key | Default |
| --- | --- |
| `minimum width` | 5cm |
| `minimum height` | 2cm |
| `strip width` | 0.25cm |
| `wall angle` | -90 degrees |

Size aliases: platform width = minimum width; platform depth = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, corner, floor-tl, floor-tr, floor-br, floor-bl, floor-top-mid, floor-bottom-mid, floor-left-mid, floor-right-mid, floor-center, wall-A, wall-B, wall-C, wall-D, wall-outer-mid, wall-inner-mid, wall-near-mid, wall-far-mid, wall-center, text

**Families:** floor-bottom-0..100, floor-right-0..100, floor-top-0..100, floor-left-0..100, wall-outer-0..100, wall-inner-0..100, wall-near-0..100, wall-far-0..100

Default hook: `every platform`.

## platform (node)

| Key | Default |
| --- | --- |
| `minimum width` | 5cm |
| `minimum height` | 2cm |
| `strip width` | 0.25cm |
| `wall angle` | -90 degrees |
| `left wall angle` | -90 degrees |
| `right wall angle` | -90 degrees |

Size aliases: platform width = minimum width; platform depth = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-corner, right-corner, floor-tl, floor-tr, floor-br, floor-bl, floor-top-mid, floor-bottom-mid, floor-center, left-wall-A, left-wall-B, left-wall-C, left-wall-D, left-wall-outer-mid, left-wall-inner-mid, left-wall-far-mid, left-wall-near-mid, right-wall-A, right-wall-B, right-wall-C, right-wall-D, right-wall-outer-mid, right-wall-inner-mid, right-wall-far-mid, right-wall-near-mid, text

**Families:** floor-bottom-0..100, floor-right-0..100, floor-top-0..100, floor-left-0..100, left-wall-outer-0..100, left-wall-inner-0..100, left-wall-near-0..100, left-wall-far-0..100, right-wall-outer-0..100, right-wall-inner-0..100, right-wall-near-0..100, right-wall-far-0..100

Default hook: `every platform`.

## wedge (node)

| Key | Default |
| --- | --- |
| `minimum width` | 4cm |
| `wedge height` | derived |
| `wedge angle` | 30 degrees |
| `wedge right angle at` | br |
| `surface guide length` | 0.5cm |

Size aliases: wedge width = minimum width.

**Anchors:** surface-start, surface-end, center, north, south, east, west, north east, north west, south east, south west, bl, br, top, base-mid, right-mid, slope-mid, slope-right-mid, centroid, mid, text

**Families:** base-0..100, right-0..100, slope-0..100, surface-0..100, tangent-before-0..100, tangent-after-0..100, normal-0..100, right-surface-0..100, right-tangent-before-0..100, right-tangent-after-0..100, right-normal-0..100

surface runs left to right on the usable incline; top mode uses the left face. right-surface selects the right face in top mode. Legacy slope/right/base families keep their CCW directions. Directions and normals are local to the node.

Default hook: `every wedge`.

## ground (node)

| Key | Default |
| --- | --- |
| `minimum width` | 6cm |
| `minimum height` | 0.3cm |

Size aliases: ground width = minimum width; ground depth = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, top-left, top-right, top-mid, bottom-left, bottom-right, bottom-mid, left-mid, right-mid, surface, text

**Families:** bottom-0..100, right-0..100, top-0..100, left-0..100

Default hook: `every ground`.

## ceiling (node)

| Key | Default |
| --- | --- |
| `minimum width` | 2cm |
| `minimum height` | 0.3cm |

Size aliases: ceiling width = minimum width; ceiling depth = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, top-left, top-right, top-mid, bottom-left, bottom-right, bottom-mid, left-mid, right-mid, surface, text

**Families:** bottom-0..100, right-0..100, top-0..100, left-0..100

Default hook: `every ceiling`.

## wall-left (node)

| Key | Default |
| --- | --- |
| `minimum width` | 0.3cm |
| `minimum height` | 3cm |

Size aliases: wall thickness = minimum width; wall height = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, top-left, top-right, top-mid, bottom-left, bottom-right, bottom-mid, left-mid, right-mid, surface, text

**Families:** bottom-0..100, right-0..100, top-0..100, left-0..100

Default hook: `every wall-left`.

## wall-right (node)

| Key | Default |
| --- | --- |
| `minimum width` | 0.3cm |
| `minimum height` | 3cm |

Size aliases: wall thickness = minimum width; wall height = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, top-left, top-right, top-mid, bottom-left, bottom-right, bottom-mid, left-mid, right-mid, surface, text

**Families:** bottom-0..100, right-0..100, top-0..100, left-0..100

Default hook: `every wall-right`.

## ramp (node)

| Key | Default |
| --- | --- |
| `minimum width` | 8.6cm |
| `ramp run` | 2.6cm |
| `ramp rise` | derived |
| `ramp angle` | 30 |
| `ramp depth` | 0.25cm |
| `ramp wall height` | 1.5cm |
| `ramp wall width` | 0.25cm |
| `ramp direction` | right |
| `ramp guide length` | 0.5cm |

**Anchors:** center, surface-start, surface-mid, surface-end, floor-start, floor-mid, floor-end, ramp-foot, ramp-mid, ramp-top, wall-top, wall-mid, wall-bottom, base-start, base-end, angle-baseline, angle-label, angle-first, angle-second, text

**Families:** surface-0..100, tangent-before-0..100, tangent-after-0..100, normal-0..100; legacy .0..100 shorthand also available

surface follows the whole contact path by distance. At the sharp joint the tangent uses the incline side.

Default hook: `every ramp`.

## curved-ramp (node)

| Key | Default |
| --- | --- |
| `curved ramp floor length` | 2.5cm |
| `curved ramp radius` | 4cm |
| `curved ramp angle` | 90 |
| `curved ramp back extension` | 1cm |
| `ramp depth` | 0.25cm |
| `ramp direction` | right |
| `ramp guide length` | 0.5cm |

**Anchors:** center, surface-start, surface-mid, surface-end, curve-center, curve-start, curve-mid, curve-end, floor-start, floor-mid, floor-end, base-start, base-end, back-top, back-bottom, text

**Families:** surface-0..100, curve-0..100, tangent-before-0..100, tangent-after-0..100, normal-0..100, curve-tangent-before-0..100, curve-tangent-after-0..100, curve-normal-0..100; legacy .0..100 shorthand also available

surface follows floor plus arc by distance; curve follows the arc only.

Default hook: `every curved-ramp`.

## block (node)

| Key | Default |
| --- | --- |
| `minimum width` | 1cm |
| `minimum height` | 1cm |

Size aliases: block width = minimum width; block height = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, base, base east, base west, mid, mid east, mid west, text

**Families:** Numeric anchors are angles in degrees, as in ordinary TikZ.

Default hook: `every block`.

## pulley (node)

| Key | Default |
| --- | --- |
| `minimum size` | 1cm |
| `pulley axle radius` | 2pt |
| `pulley axle color` | black |

Size aliases: pulley diameter = minimum size.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, base, base east, base west, mid, mid east, mid west, text

**Families:** Numeric anchors are angles in degrees, as in ordinary TikZ.

Use a circular pulley with external rope endpoints. Set pulley axle radius=none to hide the axle.

Default hook: `every pulley`.

## particle (node)

| Key | Default |
| --- | --- |
| `minimum size` | 3mm |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, base, base east, base west, mid, mid east, mid west, text

**Families:** Numeric anchors are angles in degrees, as in ordinary TikZ.

Default hook: `every particle`.

## disk (node)

| Key | Default |
| --- | --- |
| `minimum size` | 15mm |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, base, base east, base west, mid, mid east, mid west, text

**Families:** Numeric anchors are angles in degrees, as in ordinary TikZ.

Default hook: `every disk`.

## ring (node)

| Key | Default |
| --- | --- |
| `minimum size` | 15mm |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, base, base east, base west, mid, mid east, mid west, text

**Families:** Numeric anchors are angles in degrees, as in ordinary TikZ.

Default hook: `every ring`.

## spring (path)

| Key | Default |
| --- | --- |
| `pre length` | 5pt |
| `post length` | 5pt |
| `amplitude` | 4.5pt |
| `segment length` | 4.5pt |
| `aspect` | 0.5 |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Use draw[spring] (A)--(B). No private anchors. Lead lengths may be zero; amplitude and segment length must be positive.

Default hook: `every spring`.

## rope (path)

| Key | Default |
| --- | --- |
| `line width` | 0.5pt |
| `over pulley` | required node name |
| `string route` | surface-right |
| `string start solution` | 2 |
| `string end solution` | 1 |
| `string wrap` | clockwise |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Use draw[rope] (A) to[over pulley=P] (B). Endpoints must lie outside a circular pulley. Labels on to sit on the final straight segment. shortest changes wrap only, not the tangent pair.

Default hook: `every rope`.

## force (path)

| Key | Default |
| --- | --- |
| `line width` | 0.7pt |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Default hook: `every force`.

## velocity (path)

| Key | Default |
| --- | --- |
| `line width` | 0.6pt |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Default hook: `every velocity`.

## acceleration (path)

| Key | Default |
| --- | --- |
| `line width` | 0.6pt |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Default hook: `every acceleration`.

## torque (path)

| Key | Default |
| --- | --- |
| `line width` | 0.7pt |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Default hook: `every torque`.

## rod (path)

| Key | Default |
| --- | --- |
| `line width` | 2pt |

**Anchors:** No private anchors; use path endpoints and nodes along the path.

**Families:** None

Default hook: `every rod`.

## pin-support (pic)

| Key | Default |
| --- | --- |
| `support size` | 6mm |

**Anchors:** pivot, base, left, right

**Families:** None

Use pic (S) {pin-support}; anchors are coordinates (S-pivot), (S-base), (S-left), (S-right).

Default hook: `every support`.

## roller-support (pic)

| Key | Default |
| --- | --- |
| `support size` | 6mm |

**Anchors:** pivot, base, left, right

**Families:** None

Use pic (S) {roller-support}; anchors are coordinates (S-pivot), (S-base), (S-left), (S-right).

Default hook: `every support`.

## pendulum (pic)

| Key | Default |
| --- | --- |
| `pendulum length` | 2cm |
| `pendulum angle` | 30 degrees |

**Anchors:** pivot, bob (node)

**Families:** None

Use pic (P) {pendulum}. Angle is measured from downward vertical; positive swings right. Length is pivot to bob centre. Use (P-pivot) and (P-bob.center).

Default hook: `every pendulum`.

## concave-mirror (node)

| Key | Default |
| --- | --- |
| `mirror radius` | 5cm |
| `mirror thickness` | 0.25cm |
| `mirror aperture angle` | 30 degrees |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, vertex, arc-mid, surface-mid, front-mid, back-mid, front-top, front-bottom, surface-top, surface-bottom, back-top, back-bottom, top, bottom, text

**Families:** surface-0..100, front-0..100, back-0..100; legacy .0..100 shorthand also available

Default hook: `every concave-mirror`.

## convex-mirror (node)

| Key | Default |
| --- | --- |
| `mirror radius` | 5cm |
| `mirror thickness` | 0.25cm |
| `mirror aperture angle` | 30 degrees |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, vertex, arc-mid, surface-mid, front-mid, back-mid, front-top, front-bottom, surface-top, surface-bottom, back-top, back-bottom, top, bottom, text

**Families:** surface-0..100, front-0..100, back-0..100; legacy .0..100 shorthand also available

Default hook: `every convex-mirror`.

## convex-lens (node)

| Key | Default |
| --- | --- |
| `convex lens radius` | 5cm |
| `convex lens thickness` | 0.2cm |
| `convex lens aperture angle` | 25 degrees |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, front-mid, back-mid, front-top, front-bottom, back-top, back-bottom, top, bottom, text

**Families:** front-0..100, back-0..100; legacy .0..100 shorthand also available

Default hook: `every convex-lens`.

## concave-lens (node)

| Key | Default |
| --- | --- |
| `concave lens radius` | 5cm |
| `concave lens thickness` | 0.2cm |
| `concave lens aperture angle` | 25 degrees |

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, front-mid, back-mid, front-top, front-bottom, back-top, back-bottom, top, bottom, text

**Families:** front-0..100, back-0..100; legacy .0..100 shorthand also available

Default hook: `every concave-lens`.

## slab (node)

| Key | Default |
| --- | --- |
| `minimum width` | 1.2cm |
| `minimum height` | 3cm |

Size aliases: slab width = minimum width; slab height = minimum height.

**Anchors:** center, north, south, east, west, north east, north west, south east, south west, front, back, front-top, front-bottom, back-top, back-bottom, top, bottom, text

**Families:** front-0..100, back-0..100, top-0..100, bottom-0..100; legacy .0..100 shorthand also available

Default hook: `every slab`.

## prism (node)

| Key | Default |
| --- | --- |
| `minimum width` | 3cm |
| `minimum height` | 2.6cm |
| `prism apex angle` | derived |

Size aliases: prism width = minimum width; prism height = minimum height.

**Anchors:** center, centroid, north, south, east, west, north east, north west, south east, south west, apex, base-left, base-right, base-mid, left-mid, right-mid, entry-mid, exit-mid, text

**Families:** base-0..100, right-0..100, left-0..100; legacy .0..100 shorthand also available

Default hook: `every prism`.
