> For the complete documentation index, see [llms.txt](https://2yeet.gitbook.io/anvilcsg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://2yeet.gitbook.io/anvilcsg/geometry/primitives.md).

# Creating brushes

Primitives are the starting shapes used to build a map. Create them in the Top, Front, or Side pane. Primitive creation does not start in Perspective.

## Creating a primitive

1. Choose a primitive from the left toolbar.
2. Drag its footprint in an orthographic pane.
3. Check the live size while dragging.
4. Release the mouse to create it.

The new shape is selected and Anvil returns to the Select tool.

New brushes use the current View Filter and the **World Geometry** Build Section. They also use the active Material Paint material. If **NoDraw create** is enabled, their new faces use NoDraw instead.

## Box

Shortcut: `Shift+B` or `Alt+1`

Box creates a normal six-face convex brush. It is the usual starting point for walls, floors, ceilings, pillars, and trim.

A normal Box can also be used with Hollow and Box Bevel. Face, edge, and vertex editing can change its shape later.

## Wedge

Shortcut: `Alt+2`

Wedge creates a five-face convex brush. Use **Shape Settings** to set its angle from 1 to 89 degrees.

Wedges are useful for simple ramps and sloped surfaces.

## Cylinder

Shortcut: `Alt+3`

Cylinder creates a filled circular shape made from convex wedge segments. The default shape uses 16 segments.

The result is a generated group. Its generator owns the child geometry, so change the shape through its options instead of editing individual child brushes.

## Spike

Shortcut: `Alt+4`

Spike creates a pyramid. **Shape Settings** controls the number of sides from 3 to 32.

## Stair

Shortcut: `Alt+5`

Stair creates a generated wrapper containing convex step brushes. The **Stair Options** window opens after creation.

### Size and steps

* **Bounds Size** sets the total space used by the stairs.
* **Height** mode derives the step count from the requested target rise.
* **Count** mode keeps the requested number of steps and adjusts their rise to fit the bounds.
* **Reverse Direction** changes which way the stairs climb.

### Construction style

* **Solid** creates a filled stair shape.
* **Sloped Underside** uses a sloped bottom.
* **Open** creates separate open steps.

### Collision

* **Steps** follows the visible stair profile.
* **Ramp** creates a smooth invisible collision ramp and removes collision from the visible steps.
* **None** creates no stair collision.

Ramp collision is often easier for a player controller to walk over.

### Materials

Stairs have separate material slots for:

* Tread
* Riser
* Bottom
* Back
* Left Side
* Right Side

Painting a generated stair face updates the matching logical material slot.

> Generated stair children are rebuilt from the wrapper settings. Regeneration can replace manual edits made directly to child geometry, materials, or UVs.

## Arch

Shortcut: `Alt+6`

Arch creates a generated doorway or window arch. The **Arch Options** window opens after creation.

Available settings include:

* Bounds Size X, Y, and Z
* Round or Segmental style
* Wall Width
* Connect for Carve
* Grid-perfect curve
* Workspace or custom Vertex Grid
* Curve Segments

**Connect for Carve** adds internal NoDraw fill. This lets the complete arch act as one connected cutter when carving a wall.

For nested arch trim or depth details, keep Size X/Y, Wall Width, Curve Segments, and Vertex Grid the same. Change only the depth. This keeps matching curve vertices on the same grid positions.

## Arc

Shortcut: `Alt+7`

Arc creates a radial ring or a filled fan made from convex segments. The **Arc Options** window opens after creation.

Available settings include:

* Circular Radius
* Outer Radius, or separate Outer Radius X/Z
* Height
* Connect to Center
* Wall Width
* Number of Sides
* Arc Sweep
* Start Angle
* Add Height per Segment

Enable **Connect to Center** for a filled fan. Disable it for a ring. **Add Height per Segment** can create a rising or spiral form.

## Trigger

Shortcut: `Alt+9`

Trigger creates a Box with Anvil trigger authoring data. Its visible authoring mesh is disabled in the built map and its runtime collider is marked as a trigger.

Trigger does not have a button in the left primitive toolbar. Use the shortcut, or change an ordinary Box into a trigger later from its context menu.

## Generated shapes

Cylinders, stairs, arches, and arcs are generated shapes. Their wrappers keep the settings needed to rebuild them.

You can move, rotate, scale, group, paint, and build them like other map geometry. For shape changes, use their generator options. Editing a generated child directly can be lost when the wrapper rebuilds.

Terrain and entities have separate workflows and are covered in their own sections.
