# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.blenderguppy.com/add-ons/random-flow/functions/random-tubes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
