> 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FBp9DVJcYnD6gQYTeWg6r%2Fblender_0MG6OlcTWb.png?alt=media&amp;token=1952055b-c539-4207-8062-2a54d921775f" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FQRTkGIg7MmxQrzCBE5LN%2Fblender_bIucQf1Zki.gif?alt=media&amp;token=68390d0e-6811-4851-8853-5779bd25abfd" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2F581oDHlMDSvPXX6Rucke%2Fblender_QAYtlRaHDv.gif?alt=media&amp;token=1f4960cb-9cb7-4bcb-be20-43d2cc5858a7" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2Fvi8FGwJ3YPiHxgA3B3rV%2Fblender_qg6yJAsoQT.gif?alt=media&amp;token=65de58f0-1c2b-4596-8318-88708b43340c" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2F8079Uxz5Nyoz63yLcD1X%2Fblender_dZe7LWDa2u.gif?alt=media&amp;token=d6125a8e-7f2b-4384-9160-85eb2df263d1" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FWYSyRPeL5PaaxoYBgHEf%2Fblender_r4gSUSJrOP.gif?alt=media&amp;token=12c795b6-8192-47c2-b24d-c3d0510c498a" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FC9I2OxkcCmK1sRIXvfP1%2Fblender_NCMg04F0ZT.gif?alt=media&amp;token=1717f817-7970-4dcc-971d-41132f083887" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FKAuK7d54XkQky9MBSajT%2Fblender_VE0A5R6JVq.gif?alt=media&amp;token=d04c6b50-e213-4a11-a563-43d649d748aa" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FT6iGlkxyzZ75WjqX4WiQ%2Fblender_NO0X3qcV8p.gif?alt=media&amp;token=2d793413-31ca-4b7f-8478-639c1fd0e5a6" alt=""><figcaption><p>Figure 9</p></figcaption></figure>

### Margin

Creates a margin on the selected faces.

<figure><img src="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FyLIh0QmetJ29SUUWQeTq%2Fblender_hQ3WA3KtBQ.gif?alt=media&amp;token=1dcdb4d5-21b0-4373-a3c7-087ace9056ed" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FnyLHm7kPylr2D1tJAVoF%2Fblender_yuYOIpQtEz.gif?alt=media&amp;token=90b27dc5-ff48-420a-b192-9c0a545202a9" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2Fpx2XZkrPWJHrWEpFjJAZ%2Fblender_52CzcMdGUy.gif?alt=media&amp;token=02dec36e-c2dd-42db-85c8-ae2f49471f66" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2F7Vewhw4Uprjqrv70YybT%2Fblender_BTi8KKO8WJ.gif?alt=media&amp;token=df6a60e6-aaec-42d1-acfa-9ff260dcf2b8" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FTewX9Ks81Gxz2j6VZWE3%2Fblender_AHorYN1ku4.gif?alt=media&amp;token=a468d7f7-e485-4fbc-a5e2-775a2d09b366" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FVHmOdte9mi241MBHunuy%2Fblender_hJlfMFI62b.gif?alt=media&amp;token=56783aa4-8f1c-4116-b5c8-153bfd140c38" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FgKYQblKOqPzPYmR3Eyxh%2Fblender_6J65Zz5x2I.gif?alt=media&amp;token=807fc0d2-7391-4eb5-bba5-bb76da3c5b43" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FBAmp6te3ebZaOV9G5yvF%2Fblender_eP826CgjBP.gif?alt=media&amp;token=19a83929-30b7-41f2-9da8-7a96d83c1356" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FDKmy7rtJvUE92o7vDohZ%2Fblender_ICSqorZ6AV.gif?alt=media&amp;token=194d813d-a097-4845-9e5a-ae25d7f51557" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FwfeJJdHFywlNExJkS2Tq%2Fblender_B2tpUUDZVz.gif?alt=media&amp;token=f6060db2-6bd0-40ee-82de-4ff4437e25f0" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2F9nwwBU11pj3AoR4OHMIn%2Fblender_ZwLxLU7EY8.gif?alt=media&amp;token=4546fb5f-4dcd-4809-b735-b2717d0ce8c1" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2Fvuy6H6JWwRu3y5ljz6z7%2Fblender_zVtwSaLEPN.gif?alt=media&amp;token=3e08e3c2-8819-4e5a-add2-f84aecccc5fa" alt=""><figcaption><p>Figure 21</p></figcaption></figure>

### Triangulation

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

<figure><img src="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FUIjsrmcDCRvlQO15EWcR%2Fblender_b3yyJKAVDa.gif?alt=media&amp;token=a742c661-fb82-4f58-8a4a-b7b84529a7a0" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FQ3jgKfd8DSQQpnnFJJkG%2Fblender_3wzdCtEmHs.gif?alt=media&amp;token=6ef66c07-7f0d-48d1-84a1-415d32c5402a" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FEhBSrlavI7sAPyANG1p2%2Fblender_ogtaYtPgmr.gif?alt=media&amp;token=305798f2-02c0-493a-bea8-0f0bf3e479d2" 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="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FbZH0Quh8G7bPQaPcXiGV%2Fblender_hG0LwkddQr.gif?alt=media&amp;token=21697645-dc2d-4d11-9672-2894a4ab03f0" alt=""><figcaption><p>Figure 25</p></figcaption></figure>

### Shade Smooth

Shade smoothes the faces or the body of the tubes.

<figure><img src="https://1533334696-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4r0AELTCYZZ7h3JlR2Hg%2Fuploads%2FRiu74O2wObzO8tR2dGEc%2Fblender_EteDE04Yng.gif?alt=media&amp;token=25a38ae8-abba-42fa-b844-488cb38bf8de" alt=""><figcaption><p>Figure 26</p></figcaption></figure>
