blenderNetwork patreon blender-logos d heart user th book photo pencil map-marker chevron-right comment comments twitter facebook rss chain navicon google-plus envelope linkedin calendar-o tumblr reddit stumbleupon share-alt blogger flattr flag

Creating Rope

Blender 3d tutorial


Rope is a fairly common prop used in many different 3D scenes. To create this rope in Blender 3D, we are going to start by modeling the shape of the rope with the help of a few modifiers. Then we will spend some time creating a good looking material with the node editor, and end with a final render of our rope. The rope you end up with should be usable in a wide array of scenes.


The mesh used is a cross-section of the rope. The key is to understand that rope is made up of smaller strands of rope wrapped or braided into each other. For our rope, we are modeling three main strands and using texture nodes to simulate the smaller strands.

Start by removing the default cube and adding a circle (Add->Mesh->Circle). In the context settings (F6 Key), make sure the circle only has 6 vertices. Then go into Edit Mode (Tab Key) and select the bottom three vertices. Subdivide the selected edges (W Key -> Subdivide) and delete the bottom vertex.

Now select the bottom outside vertices (as shown in the third mesh above), scale by 1.25 (S Key -> 1.25), and move along the Y-Axis by 0.150 units (G Key -> Y Key -> 0.150). Once youve done that, we have one of the three strands for our rope complete!


To complete the mesh cross-section of our rope, we need to duplicate our existing shape and use it for the other strands in our rope.

Make sure you are still in edit mode and select all of the vertices. Then go into top view (Numpad 7). To use the spin tool, you can either click the Spin button in the Tools tab of the toolbar (T Key) or press Alt-R. Then in the context settings (F6 Key), set Steps to 2, Angle to 240 degrees, and the Center coordinates are set to 0, -1, and 0 for the X, Y, Z values, respectively. Also make sure that the Dupli setting is checked so you dont have unnecessary faces.

Finally, select all of the vertices and remove doubles (W Key->Remove Doubles). Then extrude (E Key) along the Z-Axis by 0.5 units. After that, you have completed the mesh for our rope. We will be using a handful of modifiers to complete the rope in the next step.


To finish off our rope model, start by going to Object Mode (Tab Key) and open up the modifier panel in the Properties window. First add an Array modifier to the cross-section of the rope. Change the count to 12, make sure Merge is checked, and set the X, Y, and Z values of the Relative Offset setting to 0, 0, and 1.000 respectively. This creates one section of the rope.

To create the twist, add a Simple Deform modifier and change the Angle setting to 360 degrees. If you feel the rope twists too much or not enough, adjust the count setting in the array modifier. Lower values will make the rope appear more tightly twisted.

Finally, add another Array modifier and give it the same settings as the first. Once youve done that, your rope model is complete!


This is a quick step, but there are a few things we need to double check before we start messing with nodes. First make sure you are using the Cycles renderer. This is the rightmost setting in the top menu bar in Blender, usually set to Blender Render by default. Then in the Screen Layout drop down, select Compositor. This setting is also in the top menu bar and is directly to the right of the Help menu.

To attach some nodes to our rope, select the rope object and add a new material. Lets name it Rope. Finally, check the Used Nodes setting. You should see a couple of nodes appear. If so, we are ready to go!


The first part of our material is going to be the base color and some basic weatherization of the rope. Start by adding a color mix node (Add->Color->MixRGB). The first color should be set to Black (R:0.000, G:0.000, B:0.000) and the second one to a light brown (R: 0.515, G: 0.400, B: 0.200). The black is the dirty parts of the rope while the brown is the color of the rope itself.

Now we need some variation in the color so it looks like some parts of the rope are dirtier than others. To do this, start by adding a Noise Texture node (Add->Texture->Noise Texture). Set the Scale to 0.250, Detail to 2.000, and Distortion to 1.000. Then connect the Fac output into the color input of a new Bright/Contrast node. Set the contrast to 1.000. Then connect the color output into the Fac of the Mix node.

Finally, connect the color output of the Mix node into the color input of the Diffuse BSDF node. If you render your rope now (be sure to add lights!) you should see a brown rope to black areas on it. Not looking very good yet.


In order to make the strand textures line up correctly, we need to unwrap our mesh. Select the rope object, go into edit mode (Tab Key). Select one of the three innermost vertical edges on the mesh and mark it as a seam (Ctrl+E -> Mark Seam). Now unwrap the mesh (U Key) and select Unwrap. You should see the unwrapped mesh appear in the image editor.

If we do not mark a seam and you unwrap the mesh, then you would see a distorted loop appear. This will not work because it makes it will be impossible to have all our strands going in the same direction around the whole rope.

Also, it is important to mark one of the inner vertical edges because those edges are largely hidden from view. This means any parts of our texture that dont line up on those edges will also be hidden and therefore saving us from a potential headache.


To create the strand textures, start by adding a Texture Coordinate node (Add->Input->Texture Coordinate) and connect the UV output into the Vector input of a new Wave Texture node (Add->Texture->Wave Texture). Set the Scale to 77.000, Distortion to 3.000, Detail to 5.000, and Detail Scale to 1.000. The scale and distortion are important! If they arent just right, the strands in the texture wont line up where the array modifier makes a new segment of rope.

Now add a ColorRamp (Add->Converter->ColorRamp) and connect the Fac output of the Wave Texture into its Fac input. The color ramp has 3 markers. A white marker positioned at 0.500, a gray marker (R:0.600, G:0.600, B:0.600) at 0.880, and a dark gray (R:0.020, G:0.020, B:0.020) marker at 1.000. Then add a color Mix node (Add->Color->MixRGB) and connect the color output of the color ramp into its first color input. Set the Fac value to 0.200.


For even more detail, we will add another set of even smaller strands. Select the existing Wave Texture and ColorRamp node and duplicate them (Shift-D). In the new Wave Texture node, change the scale to 160.000 and distortion to 15.000. For these tiny strands, scale and distortion dont matter much. Then connect the color output of the ColorRamp to the second color input of the Mix node we just created.

As is, the larger texture strands and the smaller texture strands are parallel. To make sure it looks like the smaller strands are making up the larger ones, add a Mapping node (Add->Vector->Mapping). Connect the UV output of the Texture Coordinate node into its vector input. Click on the texture setting and change the X-Axis rotation setting to 45 degrees. Finally, plug the vector output of the mapping node into the vector input of the second wave texture node.

Now the strand textures are complete!


To add some specularity to our rope, add a Glossy BSDF node (Add->Shader->Glossy BSDF) and set its Roughness to 0.500. Then add a Mix Shader (Add->Shader->Mix) and connect the Diffuse output into the first Shader input and the Glossy output into the second. The output of the Mix shader should connect to the Material output nodes Surface input.

Now add two Math nodes (Add->Converter->Math). Set the first math node to Add, plug the output of the Mix Color node for the strand textures into the first input, and set the value of the second input to 0.200. Then connect the Add node output into the first input of the second math node. Set this node to Multiply and change the second input value to 0.050. Finally, connect the Multiply nodes output into the Fac input of the Mix Shader node. What these nodes do is tell the mix shader to be more glossy where the strands are and not as glossy in the space between the strands.

Lastly, for some bump texturing, add a Bump node (Add->Vector->Bump). Check the invert option and set the strength and distance to 1.000. Connect the color output of the Mix node for the strand textures into the height input of the Bump node and connect the output of the bump node into the Normal inputs of the Diffuse and Glossy shader nodes.


We are not quite done yet! The final step is to create the fraying hairs of the rope with particles. Select the rope object, go to the particle system panel in the Properties window, and add a new particle system. Change the Type setting to Hair and check the advanced setting.

In the Emission section, change the Hair Length setting to 0.010. Also make sure to check the Use Modifier Stack setting. Without that setting, the particle hair wont be emitted from parts of the mesh that are created by modifiers. As for the Number setting, I left this at 1000.

Now in the Velocity section, change normal to 0.000 and Tangent to 0.025. This causes the hair to emit tangentially to the mesh rather than perpendicular, which helps make it appear the hairs are running along the surface of the rope, rather than straight out. I then set Random to 0.025 to help break up the uniformity a bit.


Head down to the children section of the particles system. I turned on Interpolated child particles and changed the Render count to 35. Change this setting to control how many frayed strands you want your rope to have. As for the other settings, I changed shape to -0.400, Length to 0.500, Threshold to 0.500, and random roughness to 0.250. These setting are used to help randomize the appearance to the fraying.

If you render now, you may not be able to see your hairs very well, if at all. If that is the case, you need to go into the Cycles Hair Settings section and change the tip value to around 0.50. This makes sure the hair keeps its thickness throughout its length. You can also raise the scaling value to help increase the size of the hairs.

Once youve done that, youve finished the rope! If you havent already, set up some lighting and start rendering and tweaking the material nodes and particles until its just the way you like it.

Keep Learning!

No single tutorial will cover everything, so if you want to dig deeper, here are some resources for you to check out. If you have other resources you think I should add to this list, feel free to let me know!

Blender Docs



Popular Now


  •  irascibleone / 2561 / AAA
    Thanks for sharing, that's great information! I was looking into rope making myself a few months ago and can definitely see what you mean now. I don't remember there being a technical limitation for how I did it, but more than likely I just did what felt right. Which illustrates a good point: If you know how something works in reality, it can definitely make a difference in your render. :)

    The fix for that should be fairly easy, I think. You should be able to rotate the texture with a mapping node just like with the 'even smaller strands'. May take some tweaking, but it should do the trick.
  •  karakumi / 0 / unranked
    Great tutorial, thanks for posting this. It's quite helpful to a side-project of mine.

    I've some familiarity with cord and rope making, and there's a small tweak that will make this rope even more realistic. In step 8 where the Wave Texture is added, that texture should be oriented so that the the small strands run parallel to the completed rope, rather than parallel to the three plies that make up the rope. (note: I haven't tried this yet; there may be challenges in getting the resulting render to look right.)

    This has a good physical intuition. When making rope or cord, bundles of small threads (i.e. the three plies in this example) are twisted in one direction. For the pictured rope, the plies would be twisted up clockwise. Then the plies are allowed to twist around each other -- and they want do this in the opposite direction they were originally twisted in, that is anti-clockwise. The plies stop twisting around each other (i.e. twisting into rope) when the energy put into the original twist of each ply is balanced by the amount of twist of the three plies in the rope. As a result of this balancing process, the small strands always end up aligned parallel to the length of the rope.