> For the complete documentation index, see [llms.txt](https://ms-kb.msd.unimelb.edu.au/next-lab/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ms-kb.msd.unimelb.edu.au/next-lab/3d-printing/key-techniques/mesh-techniques/other-techniques/thicken-a-mesh-using-weaverbird-and-grasshopper.md).

# Thicken a Mesh with Grasshopper

Thickening a mesh is an important step in producing printable objects.

## Weaverbird

**Weaverbird** (developed by Giulio Piacentino) is a **topological mesh editing tool** for **Grasshopper**. It is an essential tool for working with Meshes in Rhino and Grasshopper.&#x20;

Learn more about Weaverbird components on [Grasshopper Learn](https://rhino.github.io/addons/weaverbird.html).

{% hint style="info" %}
**Weaverbird**  is available for download [on the author's website](http://www.giuliopiacentino.com/weaverbird/).
{% endhint %}

### Mesh Thicken

[Mesh Thicken](https://rhino.github.io/components/weaverbird/meshThicken.html) or `wbThicken` is a Weaverbird component which **offsets** a mesh to give it a **'thickness'**. Mesh Thicken uses an algorithm to **offset the individual vertices** of a mesh and construct new faces.

This component can be used to convert an open mesh to a closed mesh **in certain circumstances**.

![Figure 0.1 - wbThicken Component](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4Jodpk5EGaSC2sI%2Fdefinition2.png?alt=media\&token=b5654775-6290-4026-ab7b-63dbc94d1fb4)

## Use Case

This definition can be used to **give a thickness to an open mesh**. This definition can also be used to **add thickness to a closed mesh**. This definition **does not** work well when a contains **non-manifold edges** or **intersecting faces**. The \[Check] command can be used to verify that this is the case.

![Figure 1.0 - Shell with all backfaces visible.](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4JmGI0nTxgMddXW%2Fgeo.png?alt=media\&token=768b7beb-7996-411b-be77-31c9525f5e79)

## Definition

* This definition first references the mesh using the `Mesh` component.&#x20;
* The `wbThicken` component is used to offset the **mesh normals** to a distance, `[D]`.&#x20;
  * A `panel` is used to specify the distance as `-2`. \
    A **Positive offset distance** will result in a **larger mesh** that has been offset **outward**. A **negative offset distance** offsets **inward**.
  * **2 mm** is chosen as the offset distance as this is the **minimum thickness recommended for 3D Printing**.
  * **Offset Type** is specified here as a local value. [Learn more about offset types](https://rhino.github.io/components/weaverbird/meshThicken.html).
* The `wbLoop` is a **subdivision** component which refines or smooths a mesh.
* The **other components** in this definition are used to **bake** the **output mesh** with **custom colours** and **names**.

![Figure 2.0 - Basic wbThicken Definition](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4JnpVr0kreI2TKy%2Fdefinition.png?alt=media\&token=c425e272-372c-431d-9c57-facd3bb14822)

## Output Geometry

The geometry should be output as a `"Closed Mesh"` in order for the object to be printable.

![Figure 3.0 - Output Geometry](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LarD90qNVqlrk7-MS1K%2F-LarEGYPBhjSytKSF5P2%2Foutput.png?alt=media\&token=9523eed8-b8b1-461d-ae94-9ab2ddb40cc2)

## Definition

The above grasshopper definition can be downloaded here:

{% file src="/files/-LarEY076QhngeLnKVfG" %}
ThickenMesh (Requires Weaverbird for Grasshopper)
{% endfile %}
