Grounded
A grounded instance does not move. It is the reference frame the solver places everything else against — the part you would bolt to the bench. Ground exactly one instance per mechanism; the joints carry the rest.
In the viewport
- Right-click an instance's row in the Parts panel and choose Toggle grounded. A ground glyph appears on the row and
.grounded()is chained onto itsinsert()statement. Toggling another row moves the glyph — and the chain — there. - A grounded instance ignores the transform gizmo and every mate: it stays where its
.translate()/.rotate()put it.

The code behind it
import { assembly, insert, mate } from 'fluidcad/core';
import { plate } from './asm-plate.part.js';
import { standoff } from './asm-standoff.part.js';
export const groundedExample = assembly('grounded-example', () => {
// Exactly one thing is grounded: it is the frame everything else is
// solved against. Ground the part you would bolt to the bench.
const base = insert(plate).grounded();
// An ungrounded instance is free until a mate places it. The pose
// written here is only where it starts.
const post = insert(standoff).translate(0, 0, 40).name('Front-left standoff');
mate('fastened', base.connectors.hole1, post.connectors.foot);
});
Why one
Mates are relative. With no grounded instance the whole cluster is free and the solver leaves it where the inserts placed it; with two grounded instances joined by a mate the mate has nothing to move and reports a conflict. A base with a hinged lever grounds the base; a lever hinged to a free frame grounds nothing and hinges to an assembly connector instead.
Sub-assemblies
Inside an assembly() body, .grounded() marks the anchor of that body's frame. Whether the anchor is fixed in the world depends on the parent:
| Parent statement | Result |
|---|---|
insert(sub) | The occurrence is free; nothing inside it is world-grounded. |
insert(sub).grounded() | The occurrence's frame is pinned; the instances it declared grounded are pinned with it. |
| A body with no declared anchor, inserted grounded | Its first instance is pinned as a fallback. |
Grounding therefore reads top-down: a sub-assembly says "this is my base", and each parent says whether that base stands still.