✕
relmesh — DSL reference
orient: north = front (+Z) · up = +Y · east = +X. Faces: north/south/east/west/top/bottom.
define things
yellow: rgb 248,196,30 | a color |
hull: box size=10,2,4 color=yellow | a named primitive |
wheel: part(d=2.6) … end | a reusable part (params in parens) |
core: inline … end | a one-off nested sub-part, inherits the enclosing part's params — extrude/cut it as a whole |
out: car | build a part — any top-level name: part. The name is yours (out, t, …), not a keyword. |
primitives (all take color=)
box size=x,y,z | |
cylinder diameter= height= sides= | built along +Y |
frustum size=x,y,z north=0.6 | taper a cap (north/south/east/west/top/bottom = scale; 0.6 or 0.6,1) |
wedge size=x,y,z | a triangular prism |
extrude — grow a section off a face
hood: extrude core.north by 4 scale=1,0.6 anchor=bottom color=paint
scale tapers the far cap; anchor=bottom drops the top while the sill stays flat (a hood line). The section keeps real faces — hood.north, etc.
Off a cylinder cap (tube: extrude post.top by 2 scale=0.5) it sweeps the rim into a tapered tube / cone. These chain: extrude tube.top by … steps up again. (anchor= n/a on a round cap.)
join & shape
merge a.face to b.face | fuse into one solid (offset=N, at top=0.4 optional) |
cut hole.face from body.face | subtract — a window / recess / hole |
attach wheel.axle to body.fl | place as a separate node (spins) — wheels |
nose: anchor hood.north | export a mount point |
mounts: anchors … end | a group of mount points |
cutting a sub-part descends into it: cut bore from wheel.west carves the sub-part's own geometry (a wheel well in a body). at offsets on its bounds face position the bore. This preview fakes sub-part fusing (no manifold in Pyodide) but strips buried seams, so it renders close to the real thing — odd partial overlaps may still differ from the CLI/Studio.
faces & offsets
at top=0.5 slides within a face: 0 = center, 1 = edge, −1 = opposite edge. core.west at top=-0.6, north=0.62 = low & toward the front.
params & math
part(len=13) then use len; expressions work: core_len: len*0.64. Comments start with #.
shortcuts
⌘/Ctrl+Enter render · ⌘/Ctrl+S save · Ctrl+Space autocomplete · ⌘/Ctrl+/ comment lines · ⇧⌘/Ctrl+/ this help · Esc close
Autocomplete pops up as you type (or Ctrl+Space): keywords + names you've defined, and faces/anchors after a .
Click the ▸ triangles in the gutter to collapse/expand a part … end block.