> 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

## 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](/files/-LamJ4Jodpk5EGaSC2sI)

## 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.](/files/-LamJ4JmGI0nTxgMddXW)

## 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](/files/-LamJ4JnpVr0kreI2TKy)

## Output Geometry

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

![Figure 3.0 - Output Geometry](/files/-LarEGYPBhjSytKSF5P2)

## Definition

The above grasshopper definition can be downloaded here:

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