row
uisset 138× in templates and rigs
A flow container: lays its children out left to right (+x), each measured by its real 3D size and re-packed every frame, so a child that grows pushes its neighbours apart. Children need no x/y.
row#d09-family(gap=55.25 align=center position="0 -25.5 0")
Attributes
aligntextWhere each child sits across the row: `start` (top), `center` (default) or `end` (bottom).129×position"x y z"120×justifytextWhere the whole run sits on the container's origin: `start` (begins there), `center` (default) or `end` (ends there).102×anchortext`bottom` or `top`: the container's origin becomes that edge of the layout, so `position` names the line the row stands on (pair `bottom` with `align=end`).99×gapnumberSpace between neighbouring children, mm (default 0).98×Where it goes
Examples
row#d09-familyin camera/camera-framing-devicesOpen and play →row#d09-family(gap=55.25 align=center position="0 -25.5 0")
iphone#d09-phone(safe-top=off scale=0.95 rotation="0 22 0")
ui(width=71 height=154)
card(anchor=top-left w=71 h=142 r=0 fill=#141d33 shadow=false)
text(text=mobile anchor=top inset="58.24 0" size=7.21 weight=800 color=#f8fafc align=center)
text(text="node=d09-phone" anchor=top inset="69.06 0" size=3.61 color=#7dd3fc align=center)
laptop#d09-mac(scale=0.9)
ui(width=346 height=223)
card(anchor=top-left w=346 h=216 r=0 fill=#141d33 shadow=false)
text(text=laptop anchor=top inset="86.5 0" size=15.38 weight=800 color=#f8fafc align=center)
text(text="node=d09-mac" anchor=top inset="110 0" size=7.21 color=#a5b4fc align=center)
ipad#d09-pad(height=285 rotation="0 -22 0")
ui(width=200 height=266)
card(anchor=top-left w=200 h=267 r=0 fill=#141d33 shadow=false)
text(text=tablet anchor=top inset="108 0" size=14.59 weight=800 color=#f8fafc align=center)
text(text="node=d09-pad" anchor=top inset="131 0" size=7.29 color=#5eead4 align=center)
row#cv01-rowin coverage/coverageOpen and play →row#cv01-row(gap=42.5 align=center justify=center position="0 12.75 0")
// cylinder — radius/height/radial_segments
primitive#cv01-cylinder
geometry(type=cylinder radius=44.2 height=128 radial_segments=48)
material(ref=standard color=#66e0ff metalness=0.35 roughness=0.28)
// cone — radius/height/segments
primitive#cv01-cone
geometry(type=cone radius=52.7 height=136 segments=48)
material(ref=standard color=#ffb454 metalness=0.3 roughness=0.32)
// octahedron — radius/detail (detail=0 keeps the 8 hard faces)
primitive#cv01-octahedron
geometry(type=octahedron radius=69.7 detail=0)
material(ref=standard color=#b98bff metalness=0.55 roughness=0.22)
// capsule — as GEOMETRY (the <capsule> tag is a different authoring path)
primitive#cv01-capsule
geometry(type=capsule radius=30.6 length=0.9 cap_segments=12 radial_segments=32)
material(ref=standard color=#7dffc4 metalness=0.3 roughness=0.3)
// disc — a circle pre-rotated onto XZ, so it lies on the floor
primitive#cv01-disc
geometry(type=disc radius=72.25 segments=64)
material(ref=standard color=#ff7ea8 metalness=0.4 roughness=0.35)
row#cv02-rowin coverage/coverageOpen and play →row#cv02-row(gap=76.5 align=center justify=center position="0 -12.75 0")
// flat rounded rect (buildRoundedRectGeometry) via the LONG alias
primitive#cv02-flat(rotation="0 -18 0")
geometry(type=rounded-rectangle width=170 height=111 radius=22.1)
material(ref=basic color=#66e0ff toneMapped=false transparent=true opacity=0.92)
// extruded + bevelled slab (buildExtrudedRoundedRectGeometry)
primitive#cv02-extruded(rotation="0 22 0")
geometry(type=extruded-rounded-rect width=170 height=111 radius=22.1 depth=28.9 bevel_thickness=0.05 bevel_size=0.05 bevel_segments=8 curve_segments=48)
material(ref=physical color=#b98bff metalness=0.65 roughness=0.18)