---
title: Operations
order: 9
---

Operations act on whole shapes: they convert between Chisel shapes and meshes, flatten or untangle modifier stacks, refresh the proxy mesh, and hide helpers. Map baking is under [Baking](render-engine/baking.md); making a Tube, Outline or Lathe from a Blender curve is under [From Curve](primitives/paths/from-curve.md).

## Where they are

| Operation | Object panel (*SDF*) | Pie `Q` ▸ N | Right-click | Other |
|---|---|---|---|---|
| [Convert to Mesh](#convert-to-mesh) | **To Mesh** | **To Mesh** | **Convert to Mesh** | |
| [Convert to SDF](#convert-to-sdf) | **Convert Mesh to SDF** | | **Convert to SDF** | |
| [Apply Modifiers](#apply-modifiers) | | | | Chisel Modifiers ▸ `⋮` ▸ **Apply All** |
| [Rebuild Mesh](#rebuild-mesh) | **Rebuild Mesh** | **Rebuild** | **Rebuild** | |
| [Clean](#clean) | **Clean** | **Clean** | **Clean** | |
| [Clean Mods](#clean-mods) | **Clean Mods** | the unlink icon beside *Clean* | **Clean Mods** | Chisel Modifiers ▸ `⋮` ▸ **Clean Mods** |
| [Veil & Unveil](#veil--unveil) | | | **Veil** / **Unveil** | `V`, `Alt + V`, `Shift + Alt + V` |

## Convert to Mesh

Turns the selected Chisel shapes, Text shapes included, into ordinary Blender meshes for export, sculpting, UV work or other engines.

![the converted mesh in Solid shading with wireframe (Dual Contouring)](assets/convert-result.webp)

![the Convert to Mesh dialog](assets/convert-panel.webp)

| Setting | Default | Range | What it does |
|---|---|---|---|
| **Algorithm** | *Dual Contouring* | *Dual Contouring*, *Marching Cubes* | *Dual Contouring* makes mostly-quad meshes that keep sharp edges, with finer cells near features: best for hard-surface work. *Marching Cubes* makes triangle meshes on an even grid: best for smooth, organic shapes, and needs little memory even at high resolution. |
| **Cell Size** | `0.1 m` | from `0.001`, soft max `1` | Size of a grid cell. Each halving gives finer detail at about eight times the work. Capped at `256` cells per side for Dual Contouring and `1024` for Marching Cubes; a smaller size is clamped. |
| **Detail Size** | `0.01 m` | from `0.0001`, soft max `0.1` | Dual Contouring only. Cell size near sharp features, when smaller than *Cell Size*. |
| **Feature Angle** | `15` | `5 – 90` | Dual Contouring only. How sharp a turn in the surface counts as a feature; lower refines more. |
| **SDF Normals** | on | | Give the mesh custom normals taken from the shape, so it shades like the Chisel view. |
| **Vertex Colors** | off | | Bake the material colours into a colour attribute. |
| **Replace Original** | off | | Turn each shape into its mesh instead of making a new object. A Text shape always gets a new object. |
| **OK** / **Cancel** | | | Convert, or close without converting. |

While the dialog is open, the viewport shows the meshing box and its grid in orange, following *Cell Size*.

- Each shape becomes one mesh object, in a collection named **Remesh**. The Chisel shapes stay unless *Replace Original* is on.
- The mesh matches the rendered surface: chamfered booleans keep their faces, wide blends are not clipped, and every copy of an Array is meshed.
- The status bar shows the progress.

## Convert to SDF

Turns the selected plain mesh objects into Chisel shapes. **Convert Mesh to SDF** bakes each mesh into a distance grid once; from then on the object is a [Mesh primitive](primitives/mesh.md) that takes booleans, carves, blends, mirrors, arrays and materials like any other shape.

![a cutter moved through a converted mesh: the cut follows live](assets/convert-sdf-boolean.webp)

![the Convert Mesh to SDF dialog](assets/convert-sdf-dialog.webp)

| Setting | Default | Range | What it does |
|---|---|---|---|
| **Resolution** | `128` | `8 – 1024` | Grid cells along the mesh's longest side. At the default, curved meshes can show stepped, terraced faces; a higher value smooths them. Above about `256` a grid takes gigabytes of graphics memory and the bake takes minutes. |
| **Field Margin** | `8` | `6 – 64` | The exact shell baked around the surface, in grid cells. Blends, emboss strengths and carve offsets that reach past it go coarse. |
| Estimate | | | One line per object with its grid size and graphics memory, for example `Suzanne: 144×96×109 — 3 MB GPU`. A line turns red, naming the largest resolution that fits, when the grid would not fit the graphics card or the [SDF Store Budget](render-engine/display.md#mesh-sdf-storage); nothing bakes until every line fits. |
| **OK** / **Cancel** | | | Bake, or close without baking. |

- Each mesh bakes in the background; the status bar shows `Chisel: baking SDF 40% (1/3) — Esc to cancel`, and each object turns into a Chisel shape when its grid is ready.
- The object keeps its mesh as its display mesh: wireframe, bounds and selection outline stay.
- The bake uses the mesh with its Blender modifiers applied. A smooth-shaded mesh bakes smooth, a flat-shaded one faceted.
- *Bake Resolution*, *Field Margin* and **Rebake SDF** are on the [Mesh primitive](primitives/mesh.md)'s panel.

A plain mesh shows only its selection outline in *Material Preview* and *Rendered*; *Solid* shading shows it.

> [!warning] Mixed face orientation
> A *winding confidence* warning means some faces point inward and the inside may be wrong in places. Run *Mesh ▸ Normals ▸ Recalculate Outside* on the source and convert again.

## Apply Modifiers

Bakes a host and every target of its stack into one Chisel shape, and empties its modifier stack. The result is a [mesh shape](primitives/mesh.md), not a plain mesh: it renders exactly what the stack produced, takes new modifiers, blends with its neighbours, and can still be converted to a mesh.

**Apply All**, in the Chisel Modifiers panel's `⋮` menu, opens this dialog for the active host:

![the Apply Chisel Modifiers dialog](assets/apply-modifiers-dialog.webp)

| Setting | Default | Range | What it does |
|---|---|---|---|
| **Field Resolution** | `128` | `8 – 1024` | Grid cells along the result's longest side: the shape's detail from now on. Above about `256` the grid takes gigabytes of graphics memory and the bake takes minutes. |
| **Mesh Resolution** | `128` | `16 – 1024` (capped at `256`) | Density of the display mesh. |
| **Field Margin** | `8` | `6 – 64` | The exact shell baked around the surface, in grid cells. Blends and emboss strengths added later must fit inside it. |
| **Delete Sources** | on | | Delete the targets the stack used. Targets that still render, or that another host's stack uses, are kept, and the report says how many. [Carve](joins/carve.md) targets are never deleted. |
| **OK** / **Cancel** | | | Apply, or close without applying. |

A resolution whose grid would not fit the graphics card or the [SDF Store Budget](render-engine/display.md#mesh-sdf-storage) is refused, with a message naming the largest one that fits.

The result is one Chisel shape that matches what the stack rendered, with an empty stack. Its display mesh is shaded from the baked shape, so it looks smooth at any *Mesh Resolution*.

*Apply All* is greyed out on a [Text](primitives/text.md) shape. [Convert it to a mesh](#convert-to-mesh) and run [Convert to SDF](#convert-to-sdf) on the result instead.

## Rebuild Mesh

Folds each selected shape's scale into its own size, and rebuilds its [proxy mesh](render-engine/display.md#proxy-mesh).

![Rebuild Mesh on a stretched capsule: the scale goes to 1, the size stays and the ends turn round](assets/rebuild.webp)

- **Folds the scale into the shape.** The object's world scale (its own and its parents') goes into the shape's dimensions, and its *Scale* resets to `1`. *Dimensions* and children stay where they were. Roundings, blends and modifier values then measure in the shape's own size.
- **Rebuilds the proxy mesh** with the current *Proxy Mode* and *Proxy Voxel Size*, modifiers included.

The report says how many shapes were rebuilt. Each kind of shape takes the scale differently:

| Shape | How it takes the scale |
|---|---|
| Box, Cylinder, Cone and the other standard shapes | Dimensions scale per axis. Rounded parts are no longer stretched: a stretched capsule's ends turn round again. |
| Prism with four or more sides | Keeps an even cross-section, sized by the smaller scaled side. |
| Torus | The ring takes the scale; the tube keeps its thickness. |
| Ngon | Each point scales; corner roundings take the smaller axis and stay circular. |
| [Tube, Lathe, Outline, Rail](primitives/paths/index.md) | Each point and its handles scale; the tube radius and roundings take the smallest axis. |
| Array modifier | A linear offset scales per axis, a circle radius by the average scale. |
| [Mesh](primitives/mesh.md) and [Text](primitives/text.md) shapes | Skipped. |

## Clean

Takes the selected targets out of their hosts' stacks and makes them solid, stand-alone shapes again.

![Clean on a cutter: the notch disappears and the cutter renders as a solid box](assets/clean.webp)

On each selected Chisel shape, **Clean**:

- **Removes the modifiers that target it** from its parent host (Chisel parents every target it makes to its host). The host's other modifiers stay, and so does a modifier on any other host.
- **Clears its own stack** if it is a host. Every shape parented to it is unparented in place, made solid and set to render.
- **Makes it solid:** unparents it in place, displays it as *Textured* without bounds, and turns its *Render* switch on.

The report says how many modifiers were removed, for example *Cleaned 1 modifier(s) from 1 object(s)*. The button is greyed out unless a Chisel shape is selected. To remove only the modifiers whose target is gone, use [Clean Mods](#clean-mods).

## Clean Mods

Removes every modifier whose target is gone from the selected Chisel shapes.

![a red (no target) row in the Chisel Modifiers panel](assets/clean-mods.webp)

A Boolean, Emboss, Engrave or Carve modifier needs a target. When its target is deleted or unlinked from every collection, or was never picked, its row turns red and reads, for example, *Difference: (no target)*.

**Clean Mods** removes every red row on the selected shapes. All other modifiers stay. The report says how many were removed from how many objects.

The button is greyed out when nothing selected has a red row; its tooltip says *"Select a Chisel object with a red (no target) modifier first"*. It is also in the Chisel Modifiers panel's `⋮` menu, after *Delete All*. To take a target out of its host's stack instead, use [Clean](#clean).

## Veil & Unveil

Hide every helper at once, and bring back just the ones the selection uses. Helpers are Chisel objects with the [Render](render-engine/display.md#render-switch-and-cutters) switch off: cutters, Emboss and Engrave targets, and other shapes that do not render on their own.

![V hides the cutters, Alt + V brings back the selection's cutters](assets/veil-unveil.webp)

With the Chisel tool active and the mouse over the 3D view:

| Key | Action | What it does |
|---|---|---|
| `V` | **Veil** | Hide every unselected helper. |
| `Alt + V` | **Unveil** | Show the hidden objects the selection uses: its children and its modifiers' targets. |
| `Shift + Alt + V` | **Unveil**, swap selection | Unveil, then select the shown objects instead of the current selection. *Swap Selection* in the redo panel does the same. |

Both are also in the right-click menu.

- Veil uses Blender's own hide, so `Alt + H` also brings everything back.
- Unveil with nothing selected reports `No selection — pick a parent first`.
- A veiled cutter keeps cutting and draws no [cutter outline](interface/gizmos.md#cutter-outlines). With modifier dots turned on in the [Gizmos](render-engine/gizmo-settings.md) panel, **Hidden Objects** keeps a dot on each veiled cutter.
