> For the complete documentation index, see [llms.txt](https://www.blenderguppy.com/add-ons/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.blenderguppy.com/add-ons/random-flow/functions/random-tubes.md).

# Random Tubes

**Random Tubes** creates randomized pipes/tubes pattern from edges or edges in selected faces. The resulting object is curve type you can use [Flanges/Couplings](/add-ons/random-flow/functions/utility/flanges-couplings.md) on like [Random Cables](/add-ons/random-flow/functions/random-cables.md) before turning it to mesh.

<figure><img src="/files/XECtwS38O0cEV3qQ37D9" alt=""><figcaption><p>Figure 1</p></figcaption></figure>

Here are the redo properties and what they do:

### Mode

This has 2 options: **Face** and **Edge**. **Face** will use all the edges in the face selection when generating the random tubes.&#x20;

<figure><img src="/files/vaKbktkNXrD9nC0BWvef" alt=""><figcaption><p>Figure 2</p></figcaption></figure>

**Edge** will use only the selected edges when randomizing the tubes allowing for more control on the resulting pattern.

<figure><img src="/files/fg7eK6HUuFZEbgYL1I6t" alt=""><figcaption><p>Figure 3</p></figcaption></figure>

### Path

This has 3 options: **None**, **Shortest** and **Longest**. **None** will have no effect on the way the tubes are randomized, **Shortest** will favor the shortest edges in the face selection more when generating the tubes and **Longest** will favor the longest edges more in randomization.

<figure><img src="/files/a1PXL33VepRuPtnxA346" alt=""><figcaption><p>Figure 4</p></figcaption></figure>

{% hint style="info" %}
*This will have no effect if the edges in the selected faces have the same lengths.*
{% endhint %}

### Amount

The number of tubes that can be generated.

<figure><img src="/files/VFGda45q8zFDbNbvazsK" alt=""><figcaption><p>Figure 5</p></figcaption></figure>

### Align

This has 2 properties: **Segments** and **Angle**. **Segments** determines the number of straight segments a tube can have before trying to turn. **Angle** determines the edge angle to consider for a particular edge to be a tube segment used for a turn.

<figure><img src="/files/ARg4lqmwHBXBtxs62noe" alt=""><figcaption><p>Figure 6</p></figcaption></figure>

{% hint style="info" %}
*The segments property is not strict and the tubes can still turn without meeting the assigned number when there is no choice but to turn.*
{% endhint %}

### Length

This determines the minimum and maximum edge segment the tubes can have.

<figure><img src="/files/WkQm9UTWpRu0eixC2kLx" alt=""><figcaption><p>Figure 7</p></figcaption></figure>

{% hint style="info" %}
*This works differently than other min/max properties since the minimum removes existing tubes instead based on the number of their edge segments.*
{% endhint %}

### Seed

This randomizes the tube pattern using a seed number.

<figure><img src="/files/CKDiSJhmo253rbjB6bC2" alt=""><figcaption><p>Figure 8</p></figcaption></figure>

### Subdivision

This has 2 properties: Cuts and Smooth. Cuts lets you increase the level of subdivision of the selected faces allowing for more pipes to be generated because of the increased resolution. Smooth will apply a smoothing effect on the subdivision.

<figure><img src="/files/hGkdC8VO5rf80QHlmVU3" alt=""><figcaption><p>Figure 9</p></figcaption></figure>

### Margin

Creates a margin on the selected faces.

<figure><img src="/files/uCN3RXW054sTbwnd0yaC" alt=""><figcaption><p>Figure 10</p></figcaption></figure>

{% hint style="info" %}
*This does not work if the selection is the entire mesh.*
{% endhint %}

### Offset

This lets you set the minimum and maximum height or offset of the tube body from the source mesh when randomized.&#x20;

<figure><img src="/files/6wrZnMnosj7zbdXdb8rL" alt=""><figcaption><p>Figure 11</p></figcaption></figure>

The **Uniform Offset** toggle lets you use a single property to set the height or offset instead.

<figure><img src="/files/TLNTVibOslgf4cbdVLN5" alt=""><figcaption><p>Figure 12</p></figcaption></figure>

### Offset Seed

This lets you randomize the min/max offset of the tubes using a seed number.

<figure><img src="/files/NFZ569b7Bm3DLYstYy9g" alt=""><figcaption><p>Figure 13</p></figcaption></figure>

### Cut Method

This has 2 options: **Wrap** and **Split**. **Wrap** will let the tubes wrap around sharp edges while **Split** will split the faces in these areas so the tubes cannot wrap around to the next face which you can use to avoid spiking errors.

<figure><img src="/files/ITR2kb7IS9u3vljmRjiq" alt=""><figcaption><p>Figure 14</p></figcaption></figure>

### Cut Angle

The angle threshold for an edge to be considered for splitting using the **Cut Method: Split**.

### Curve

This has 2 properties: **Depth** and **Resolution**. **Depth** determines the thickness of the tubes.&#x20;

<figure><img src="/files/RvjUL3UE4cs60LB0q9V2" alt=""><figcaption><p>Figure 15</p></figcaption></figure>

**Resolution** lets you set the resolution of the tube body making it rounder with higher values.

<figure><img src="/files/GcBcyayWX1imLEhzveYH" alt=""><figcaption><p>Figure 16</p></figcaption></figure>

### Bevel Offset

This bevels sharp angled vertices using a minimum and maximum value.&#x20;

<figure><img src="/files/Q8itneIaLRh7Jaxc82uQ" alt=""><figcaption><p>Figure 17</p></figcaption></figure>

You can use the **Uniform Bevel** toggle to use a single property to bevel these vertices instead.

<figure><img src="/files/AZvuS6vDSGXqgcctVgC4" alt=""><figcaption><p>Figure 18</p></figcaption></figure>

### Bvl Seg/Angle

This has 2 properties: Segment and Angle. Segments determines the resolution of the bevel and Angle lets you determine which vertices are beveled based on an angle threshold.

<figure><img src="/files/LwVmySMAbw3AcgSgyR4H" alt=""><figcaption><p>Figure 19</p></figcaption></figure>

### Bevel Seed

This lets you randomize the bevel effect for each qualified vert using a seed number.

<figure><img src="/files/BtNoLJTYxOVgPAGBrURQ" alt=""><figcaption><p>Figure 20</p></figcaption></figure>

### Tri Mode

This has 2 options: **Percent** and **Number**. **Percent** lets you use a percentage based property to control the **Triangulation** property while **Number** lets you use an integer instead.

<figure><img src="/files/1JtA65o2vh7wVvW0PUJy" alt=""><figcaption><p>Figure 21</p></figcaption></figure>

### Triangulation

The amount of faces to be triangulated in the face selection.

<figure><img src="/files/X0fC3loGdnlOQK5cFQL8" alt=""><figcaption><p>Figure 22</p></figcaption></figure>

### Material Index

The **Material Index** property lets the resulting cloth sim mesh inherit a material from the active or work mesh.

The default value of -1 means it will use the active material in the work mesh if that material exists.

Using 0 and above means you will be using the 1st material in the material stack when using 0, the 2nd material when using 1 and so forth.

{% hint style="info" %}
*Using a material stack number when that material does not exist will assign no material to the resulting panel cut mesh.*
{% endhint %}

### Use Mirror

Symmetrize the randomization result using the source mesh's mirror modifier or use an applied version of the source mesh for an asymmetrical result instead.

<figure><img src="/files/xprO9CzwMmMKTepylohY" alt=""><figcaption><p>Figure 23</p></figcaption></figure>

### Limit Body

This makes the tubes avoid crossing over on an edge that's already set as another tube's body.

<figure><img src="/files/inEJBNOYECUhtXh9IgPK" alt=""><figcaption><p>Figure 24</p></figcaption></figure>

### Use Fallback

Disabling this will allow for a cleaner pattern but lesser number of tubes.

<figure><img src="/files/rz8gMB5gVvYdHeByKy2G" alt=""><figcaption><p>Figure 25</p></figcaption></figure>

### Shade Smooth

Shade smoothes the faces or the body of the tubes.

<figure><img src="/files/61MdSkV9Of3GDf9uOvMC" alt=""><figcaption><p>Figure 26</p></figcaption></figure>
