# 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. Use `show keys` or `show anchors` on a node; a name is optional for the overlay. All objects support ordinary TikZ styling; see the manual for transformation and sizing limitations. Percentage families accept integers 0 through 100. Start with the [debug overlay guide](debug-overlays.md) for `show anchors`, `show keys`, and `\physicshelp` examples across nodes, paths, and pics. For boundary directions, see the [surface-anchor guide](surface-anchors.md), [wedge-anchor guide](wedge-anchors.md), and [ramp-anchor guide](ramp-anchors.md). Each has a rendered `show anchors` gallery. ## platform-left (node) | Key | Default | | --- | --- | | `minimum width` | 5cm | | `minimum height` | 2cm | | `strip width` | 0.25cm | | `wall angle` | -90 degrees | | `wall inset` | 0cm | | `wall drop` | 0cm | | `pulley edge` | off; preset uses 0.5cm inset and drop | Size aliases: platform width = minimum width; platform depth = minimum height. **Anchors:** center, north, south, east, west, north east, north west, south east, south west, surface, pulley-center, wall-root, floor-center, wall-center, text **Families:** bottom-0..100, right-0..100, surface-0..100, left-0..100, transition-0..100, wall-surface-0..100, wall-back-0..100, wall-base-0..100, wall-tip-0..100 surface runs left to right across the floor; bottom, left, and right cover its other edges. wall-surface and wall-back run from root to tip; wall-base and wall-tip span the end caps. transition runs from pulley-center to wall-root. Upward walls require zero inset and drop. Use 50 for any edge midpoint. Default hook: `every platform`. ## platform-right (node) | Key | Default | | --- | --- | | `minimum width` | 5cm | | `minimum height` | 2cm | | `strip width` | 0.25cm | | `wall angle` | -90 degrees | | `wall inset` | 0cm | | `wall drop` | 0cm | | `pulley edge` | off; preset uses 0.5cm inset and drop | Size aliases: platform width = minimum width; platform depth = minimum height. **Anchors:** center, north, south, east, west, north east, north west, south east, south west, surface, pulley-center, wall-root, floor-center, wall-center, text **Families:** bottom-0..100, right-0..100, surface-0..100, left-0..100, transition-0..100, wall-surface-0..100, wall-back-0..100, wall-base-0..100, wall-tip-0..100 surface runs left to right across the floor; bottom, left, and right cover its other edges. wall-surface and wall-back run from root to tip; wall-base and wall-tip span the end caps. transition runs from pulley-center to wall-root. Upward walls require zero inset and drop. Use 50 for any edge midpoint. 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 | | `wall inset` | 0cm | | `left wall inset` | 0cm | | `right wall inset` | 0cm | | `wall drop` | 0cm | | `left wall drop` | 0cm | | `right wall drop` | 0cm | | `pulley edge` | off; shared preset uses 0.5cm inset and drop | | `left pulley edge` | off; left-side preset uses 0.5cm inset and drop | | `right pulley edge` | off; right-side preset uses 0.5cm inset and drop | | `pulley edges` | off; both-side alias of pulley edge | Size aliases: platform width = minimum width; platform depth = minimum height. **Anchors:** center, north, south, east, west, north east, north west, south east, south west, surface, left-pulley-center, right-pulley-center, left-wall-root, right-wall-root, floor-center, left-wall-center, right-wall-center, text **Families:** bottom-0..100, right-0..100, surface-0..100, left-0..100, left-transition-0..100, right-transition-0..100, left-wall-surface-0..100, left-wall-back-0..100, left-wall-base-0..100, left-wall-tip-0..100, right-wall-surface-0..100, right-wall-back-0..100, right-wall-base-0..100, right-wall-tip-0..100 surface runs left to right across the floor. Each wall has surface, back, base, and tip families with left-wall or right-wall prefixes; each transition runs from its pulley-center to wall-root. Upward walls require zero inset and drop. Use 50 for any edge midpoint. Default hook: `every platform`. ## wedge (node) | Key | Default | | --- | --- | | `minimum width` | 4cm | | `wedge height` | derived | | `wedge angle` | 30 degrees | | `wedge right angle at` | br | | `wedge top inset` | 0cm | | `wedge top drop` | 0cm | | `pulley edge` | off; preset uses 0.5cm inset and 1cm drop | | `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, pulley-center, wall-root, transition-mid, base-mid, right-mid, slope-mid, slope-right-mid, centroid, mid, text **Families:** base-0..100, right-0..100, slope-0..100, transition-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 base, right, and slope follow the outline counterclockwise from bl. surface runs left to right on the primary usable incline; in top mode right-surface selects the second incline. right-mid equals right-50; slope-mid equals surface-50. A pulley edge is supported in br and bl modes, and its centroid follows the filled four-point body. 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, bottom-left, bottom-right, surface, text **Families:** bottom-0..100, right-0..100, surface-0..100, left-0..100 surface runs left to right on the top contact face; bottom, left, and right cover the other edges. Use 50 for an edge midpoint. 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, bottom-left, bottom-right, surface, text **Families:** surface-0..100, right-0..100, top-0..100, left-0..100 surface runs left to right on the underside; top, left, and right cover the other edges. Use 50 for an edge midpoint. 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, bottom-left, bottom-right, surface, text **Families:** bottom-0..100, surface-0..100, top-0..100, left-0..100 surface runs bottom to top on the right contact face; top, bottom, and left cover the other edges. Use 50 for an edge midpoint. 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, bottom-left, bottom-right, surface, text **Families:** bottom-0..100, right-0..100, top-0..100, surface-0..100 surface runs bottom to top on the left contact face; top, bottom, and right cover the other edges. Use 50 for an edge midpoint. 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:** floor-0..100, incline-0..100, wall-surface-0..100, wall-back-0..100, wall-tip-0..100, base-0..100, end-0..100, surface-0..100, tangent-before-0..100, tangent-after-0..100, normal-0..100; legacy .0..100 shorthand also available surface follows floor plus incline by distance; floor and incline select each component. wall-surface, wall-back, wall-tip, base, and end cover the remaining outline. At the sharp joint the tangent uses the incline side. Default hook: `every ramp`. ## curved-ramp (node) | Key | Default | | --- | --- | | `curved ramp floor length` | 3.75cm | | `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:** floor-0..100, start-0..100, base-0..100, back-0..100, top-0..100, 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. floor, start, base, back, and top cover the remaining boundary. 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` | 1.5pt | | `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`. ## polar element (node) | Key | Default | | --- | --- | | `element inner radius` | 1.8cm | | `element outer radius` | 2cm | | `element radial thickness` | derived | | `element start angle` | 30 degrees | | `element delta angle` | 30 degrees | | `element dimension offset` | 4mm | | `element radius label` | r | | `element radial label` | dr | | `element angular label` | d theta | | `element arc label` | r d theta | | `show dimensions` | off | **Anchors:** center, text, north, south, east, west, north east, north west, south east, south west, centroid, inner-start, inner-mid, inner-end, outer-start, outer-mid, outer-end, start-mid, end-mid **Families:** inner-0..100, outer-0..100, start-0..100, end-0..100 An annular sector from inner-start to outer-end. Set inner radius to zero for a sector or delta angle to 360 degrees for a full ring. Default hook: `every polar element`. ## differential sector (node) | Key | Default | | --- | --- | | `element inner radius` | 0cm | | `element outer radius` | 2cm | | `element radial thickness` | derived | | `element start angle` | 30 degrees | | `element delta angle` | 30 degrees | | `element dimension offset` | 4mm | | `element radius label` | r | | `element angular label` | d theta | | `element arc label` | r d theta | | `show dimensions` | off | **Anchors:** center, text, north, south, east, west, north east, north west, south east, south west, centroid, inner-start, inner-mid, inner-end, outer-start, outer-mid, outer-end, start-mid, end-mid **Families:** inner-0..100, outer-0..100, start-0..100, end-0..100 A polar-element preset with zero inner radius. The outer arc represents r d theta and numeric families follow every boundary. Default hook: `every differential sector`. ## differential ring (node) | Key | Default | | --- | --- | | `element inner radius` | 1.8cm | | `element outer radius` | 2cm | | `element radial thickness` | derived | | `element delta angle` | 360 degrees | | `element radius label` | r | | `element radial label` | dr | | `show dimensions` | off | **Anchors:** center, text, north, south, east, west, north east, north west, south east, south west, centroid, inner-start, inner-mid, inner-end, outer-start, outer-mid, outer-end, start-mid, end-mid **Families:** inner-0..100, outer-0..100, start-0..100, end-0..100 A polar-element preset with a 360-degree sweep. Use source element on an unwrapped ring to copy its radii. Default hook: `every differential ring`. ## unwrapped ring (node) | Key | Default | | --- | --- | | `element inner radius` | 1.8cm | | `element outer radius` | 2cm | | `element radial thickness` | derived | | `source element` | optional named element | | `element circumference label` | 2 pi r | | `element radial label` | dr | | `show dimensions` | off | **Anchors:** center, text, centroid, north, south, east, west, north east, north west, south east, south west, top-left, top-right, bottom-left, bottom-right **Families:** bottom-0..100, right-0..100, top-0..100, left-0..100 A differential approximation with width 2 pi times the inner reference radius and height equal to the radial thickness. source element copies both radii from a named polar element. Default hook: `every unwrapped ring`. ## spherical shell (node) | Key | Default | | --- | --- | | `element inner radius` | 1cm | | `element outer radius` | derived | | `element radial thickness` | 1.5mm | | `element delta angle` | 360 degrees | | `element radius label` | r | | `element radial label` | dr | | `show dimensions` | off | **Anchors:** center, text, north, south, east, west, north east, north west, south east, south west, centroid, inner-start, inner-mid, inner-end, outer-start, outer-mid, outer-end, start-mid, end-mid **Families:** inner-0..100, outer-0..100, start-0..100, end-0..100 A concentric differential shell shown in section. Its full-sweep anchors and radial geometry match the spherical-shell construction. Default hook: `every spherical shell`. ## hollow sphere (node) | Key | Default | | --- | --- | | `element inner radius` | 1cm | | `element outer radius` | 2cm | | `element radial thickness` | derived | | `element delta angle` | 360 degrees | | `element cavity radius label` | a | | `element body radius label` | R | | `show dimensions` | off | **Anchors:** center, text, north, south, east, west, north east, north west, south east, south west, centroid, inner-start, inner-mid, inner-end, outer-start, outer-mid, outer-end, start-mid, end-mid **Families:** inner-0..100, outer-0..100, start-0..100, end-0..100 A finite spherical wall shown in section, with independent inner and outer radii. Default hook: `every hollow sphere`. ## rectangular element (node) | Key | Default | | --- | --- | | `element width` | 8mm | | `element height` | 6mm | | `element width label` | dx | | `element height label` | dy | | `show dimensions` | off | **Anchors:** center, text, centroid, north, south, east, west, north east, north west, south east, south west, top-left, top-right, bottom-left, bottom-right **Families:** bottom-0..100, right-0..100, top-0..100, left-0..100 A Cartesian differential area with independent width and height, complete boundary anchors, and optional dimension labels. Default hook: `every rectangular element`. ## rectangular strip (node) | Key | Default | | --- | --- | | `element width` | 4cm | | `element height` | 2mm | | `element width label` | b | | `element height label` | dx | | `show dimensions` | off | **Anchors:** center, text, centroid, north, south, east, west, north east, north west, south east, south west, top-left, top-right, bottom-left, bottom-right **Families:** bottom-0..100, right-0..100, top-0..100, left-0..100 A full-width strip preset. Change its width and differential thickness independently. Default hook: `every rectangular strip`. ## rectangular sheet (node) | Key | Default | | --- | --- | | `element width` | 5cm | | `element height` | 3cm | **Anchors:** center, text, centroid, north, south, east, west, north east, north west, south east, south west, top-left, top-right, bottom-left, bottom-right **Families:** bottom-0..100, right-0..100, top-0..100, left-0..100 A finite unshaded sheet node used alone or as the body in a sheet element diagram. Default hook: `every rectangular sheet`. ## differential ring diagram (pic) | Key | Default | | --- | --- | | `element inner radius` | 1cm | | `element outer radius` | 1.2cm | | `element radial thickness` | derived | | `element body radius` | 2cm | | `element diagram gap` | 5mm | | `element center dot radius` | 1.2pt | | `show dimensions` | on for both parts | **Anchors:** center, body-north, body-south, body-east, body-west, ring (node), strip (node) **Families:** None Use pic (D) {differential ring diagram={...}}. It keeps the body circle, ring, centre mark, and unwrapped strip together. Components are (D-ring) and (D-strip). Default hook: `every differential ring diagram`. ## sphere shell diagram (pic) | Key | Default | | --- | --- | | `element body radius` | 2cm | | `element inner radius` | 1cm | | `element radial thickness` | 1.5mm | | `element formula label` | dV = 4 pi r squared dr | **Anchors:** center, body (node), shell (node), formula-anchor **Families:** None A solid sphere with a highlighted spherical shell. Components are (S-body) and (S-shell); (S-center) marks the common centre. Default hook: `every sphere shell diagram`. ## sphere slice diagram (pic) | Key | Default | | --- | --- | | `element body radius` | 2cm | | `element axial thickness` | 2mm | | `element position` | 0.35 in (-1 | | `element projection ratio` | 0.24 | | `element axial label` | dx | | `element formula label` | dV = pi y squared dx | **Anchors:** center, body (node), slice (node), formula-anchor **Families:** None A solid sphere with a projected disk slice at a signed normalized axial position. Components are (S-body) and (S-slice). Default hook: `every sphere slice diagram`. ## hollow sphere diagram (pic) | Key | Default | | --- | --- | | `element inner radius` | 9mm | | `element outer radius` | 2cm | | `element cavity radius label` | a | | `element body radius label` | R | | `element formula label` | V = 4 pi over 3 times (R cubed - a cubed) | **Anchors:** center, body-north, body-south, wall (node), formula-anchor **Families:** None A hollow sphere in section. Component (H-wall) exposes the inner and outer boundaries. Default hook: `every hollow sphere diagram`. ## cylinder shell diagram (pic) | Key | Default | | --- | --- | | `element body radius` | 1.6cm | | `element body height` | 3.4cm | | `element inner radius` | 9mm | | `element radial thickness` | 1.5mm | | `element projection ratio` | 0.25 | | `element formula label` | dV = 2 pi r h dr | **Anchors:** center, body (node), shell or slice (node), formula-anchor **Families:** None A projected cylinder with a radial cylindrical shell. Components are (C-body) and (C-shell). Default hook: `every cylinder shell diagram`. ## cylinder slice diagram (pic) | Key | Default | | --- | --- | | `element body radius` | 1.6cm | | `element body height` | 3.4cm | | `element axial thickness` | 2mm | | `element position` | 0.55 | | `element projection ratio` | 0.25 | | `element axial label` | dz | | `element formula label` | dV = pi R squared dz | **Anchors:** center, body (node), shell or slice (node), formula-anchor **Families:** None A projected cylinder with an axial disk slice. Components are (C-body) and (C-slice). Default hook: `every cylinder slice diagram`. ## cone slice diagram (pic) | Key | Default | | --- | --- | | `element body radius` | 1.8cm | | `element body height` | 4cm | | `element axial thickness` | 2mm | | `element position` | 0.58 from apex | | `element projection ratio` | 0.24 | | `element axial label` | dx | | `element formula label` | dV = pi r(x) squared dx | **Anchors:** center, apex, base, body (node), slice (node), formula-anchor **Families:** None A projected cone with a thin disk slice. element position is measured from apex to base. Components are (K-body) and (K-slice). Default hook: `every cone slice diagram`. ## sheet element diagram (pic) | Key | Default | | --- | --- | | `element body width` | 5cm | | `element body height` | 3cm | | `element width` | 8mm | | `element height` | 6mm | | `element position` | 0.58 | | `element transverse position` | 0.58 | | `element formula label` | dA = dx dy | **Anchors:** center, body (node), element (node), formula-anchor **Families:** None A rectangular sheet with a named Cartesian element. Components are (A-body) and (A-element). Default hook: `every sheet element diagram`. ## u tube diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 2cm | | `fluid height` | 4cm | | `fluid tube width` | .3cm | | `fluid left level` | .75 | | `fluid right level` | .55 | | `fluid level` | .65 | **Anchors:** origin, center, bottom, top, left, right, left-surface, right-surface, interface, upper-surface **Families:** None Two-liquid U tube. level adds a second liquid only above left level. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every u tube`. ## gas manometer (pic) | Key | Default | | --- | --- | | `fluid width` | 1.8cm | | `fluid height` | 3.8cm | | `fluid tube width` | .3cm | | `fluid left level` | .45 | | `fluid right level` | .8 | **Anchors:** origin, center, bottom, top, left, right, left-surface, right-surface, gas **Families:** None Gas reservoir connected to a U tube. body label names the gas. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every gas manometer`. ## hydraulic press (pic) | Key | Default | | --- | --- | | `fluid width` | 4cm | | `fluid height` | 3.5cm | | `fluid tube width` | .3cm | | `fluid left level` | .4 | | `fluid right level` | .8 | **Anchors:** origin, center, bottom, top, left, right, large-piston, small-piston **Families:** None Large piston width is 0.32 times width; tube width sets the small piston. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every hydraulic press`. ## fluid cylinder diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 1.6cm | | `fluid height` | 3.2cm | | `fluid level` | .65 | **Anchors:** origin, center, bottom, top, left, right, surface **Families:** None Projected cylinder with an elliptical liquid surface. width is the diameter. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every fluid cylinder`. ## fluid tank diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 3cm | | `fluid left level` | .7 | | `fluid right level` | .7 | **Anchors:** origin, center, bottom, top, left, right, left-surface, right-surface, surface **Families:** None Open vessel. Equal endpoint levels give a horizontal free surface. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every fluid tank`. ## pressure element diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 2cm | | `fluid height` | .65cm | **Anchors:** origin, center, bottom, top, left, right **Families:** None Projected horizontal fluid element with inward pressure forces. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every pressure element`. ## rotating tube (pic) | Key | Default | | --- | --- | | `fluid width` | 5cm | | `fluid height` | .5cm | | `fluid tube width` | .3cm | | `fluid level` | .48 | **Anchors:** origin, center, bottom, top, left, right, element-left, element-right **Families:** None Horizontal tube with a differential section. level locates its left face along width. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every rotating tube`. ## rotating fluid diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 3.5cm | | `fluid level` | .5 | | `fluid bend` | .35 | **Anchors:** origin, center, bottom, top, left, right, vertex, rim-surface **Families:** None Parabolic surface. level is the vertex height; bend is the wall-to-vertex rise divided by height. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every rotating fluid`. ## buoyancy (pic) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 3cm | | `fluid left level` | .8 | | `fluid right level` | .8 | **Anchors:** origin, center, bottom, top, left, right, left-surface, right-surface, surface, body **Families:** None Immersed body with schematic inward pressure arrows. Arrow lengths do not encode pressure magnitude. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every buoyancy`. ## flow tube diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 5cm | | `fluid height` | 1.3cm | | `fluid bend` | .45 | **Anchors:** origin, center, bottom, top, left, right, inlet, outlet **Families:** None Curved flow tube; outlet height is 0.55 times inlet height. bend controls vertical curvature. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every flow tube`. ## meniscus diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 1.2cm | | `fluid height` | 2.7cm | | `fluid level` | .7 | | `fluid bend` | .2 | **Anchors:** origin, center, bottom, top, left, right, contact-left, contact-right, surface **Families:** None Positive bend is concave; negative bend is convex. Contact angle is measured through the liquid. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every meniscus`. ## capillary (pic) | Key | Default | | --- | --- | | `fluid width` | 4cm | | `fluid height` | 3cm | | `fluid level` | .35 | | `fluid left level` | .7 | | `fluid bend` | .12 | **Anchors:** origin, center, bottom, top, left, right, contact-left, contact-right, reservoir **Families:** None Capillary rise. level is the reservoir surface and left level is the contact-line height. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every capillary`. ## surface tension ring (pic) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 1cm | **Anchors:** origin, center, bottom, top, left, right **Families:** None Projected circular contact line. width and height are the ellipse diameters. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every surface tension ring`. ## liquid ring diagram (pic) | Key | Default | | --- | --- | | `fluid width` | 3.5cm | | `fluid tube width` | .4cm | | `fluid angle` | 225 | | `fluid sweep` | 70 | **Anchors:** origin, center, bottom, top, left, right, liquid-start, liquid-end **Families:** None Annular liquid sector. width is outer diameter, tube width is radial thickness. Angles use degrees counterclockwise from right. Use (F-origin), (F-center), and the listed (F-...) coordinates; these are pic coordinates, not node anchors. Default hook: `every liquid ring`. ## fluid tank (node) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 3cm | | `fluid left level` | .7 | | `fluid right level` | .7 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-surface, right-surface, surface, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every fluid tank`. ## meniscus (node) | Key | Default | | --- | --- | | `fluid width` | 1.2cm | | `fluid height` | 2.7cm | | `fluid level` | .7 | | `fluid bend` | .2 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-surface, right-surface, surface, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every meniscus`. ## rotating fluid (node) | Key | Default | | --- | --- | | `fluid width` | 3cm | | `fluid height` | 3.5cm | | `fluid level` | .5 | | `fluid bend` | .35 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-surface, right-surface, surface, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every rotating fluid`. ## fluid cylinder (node) | Key | Default | | --- | --- | | `fluid width` | 1.6cm | | `fluid height` | 3.2cm | | `fluid level` | .65 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-surface, right-surface, surface, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every fluid cylinder`. ## pressure element (node) | Key | Default | | --- | --- | | `fluid width` | 2cm | | `fluid height` | .65cm | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, inlet, outlet, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every pressure element`. ## flow tube (node) | Key | Default | | --- | --- | | `fluid width` | 5cm | | `fluid height` | 1.3cm | | `fluid bend` | .45 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, inlet, outlet, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every flow tube`. ## liquid ring (node) | Key | Default | | --- | --- | | `fluid width` | 3.5cm | | `fluid tube width` | .4cm | | `fluid angle` | 225 | | `fluid sweep` | 70 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, liquid-start, liquid-end, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every liquid ring`. ## u tube (node) | Key | Default | | --- | --- | | `fluid width` | 2cm | | `fluid height` | 4cm | | `fluid tube width` | .3cm | | `fluid left level` | .75 | | `fluid right level` | .55 | **Anchors:** center, north, south, east, west, north east, north west, south east, south west, left-surface, right-surface, surface, text, base, base east, base west, mid, mid east, mid west **Families:** None Default hook: `every u tube`. ## 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`.