relmesh booting…
loading the relmesh engine…
(first load fetches Python — give it a few seconds)

relmesh — DSL reference

orient: north = front (+Z) · up = +Y · east = +X. Faces: north/south/east/west/top/bottom.

define things

yellow: rgb 248,196,30a color
hull: box size=10,2,4 color=yellowa named primitive
wheel: part(d=2.6) … enda reusable part (params in parens)
core: inlineenda one-off nested sub-part, inherits the enclosing part's params — extrude/cut it as a whole
out: carbuild 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.6taper a cap (north/south/east/west/top/bottom = scale; 0.6 or 0.6,1)
wedge size=x,y,za 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.facefuse into one solid (offset=N, at top=0.4 optional)
cut hole.face from body.facesubtract — a window / recess / hole
attach wheel.axle to body.flplace as a separate node (spins) — wheels
nose: anchor hood.northexport a mount point
mounts: anchorsenda 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.