You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Video Tutorial: Intro to Procedural Modeling


Chris Folea shares some very clever modeling automation tricks here. Me like.

Chris says:

In this video, I go over the basics of procedural modeling in blender! This technique is useful if you need a lot of variations of one model. It's also just neat.

Here are some professional projects I used similar techniques in!

About the Author

Avatar image for Bart Veldhuizen
Bart Veldhuizen

I have a LONG history with Blender - I wrote some of the earliest Blender tutorials, worked for Not a Number and helped run the crowdfunding campaign that open sourced Blender (the first one on the internet!). I founded BlenderNation in 2006 and have been editing it every single day since then ;-) I also run the Blender Artists forum and I'm Head of Community at Sketchfab.


  1. Lawrence D’Oliveiro on

    Cool. Just a few thoughts:

    * Instead of remembering subscript numbers for dimension coordinates, why not use attribute names: dimensions.x instead of dimensions[0], dimensions.y instead of dimensions[1], dimensions.z instead of dimensions[2].

    * Why have the separate dummy object? Why not hang the custom properties directly off the parametric house mesh itself?

    * You can simplify expressions by using the Python Console as a calculator.

    * The singular of “vertices” is “vertex”.

    * Finally, why not take advantage of multiple screen layout presets, intead of doing all the tasks in a single layout, or (as seems all too common), continually adjusting windows manually within the “Default” layout.

    • Hey! Thanks for the thoughts!

      1. For me, dimensions[0], etc were all I've ever been able to get to work in the drivers variables. Not sure how to reference it as dimensions.z, etc - if you know how, please let me know! :D
      2. The dummy object is there for a few reasons. For me personally, it feels cleaner to have an overlying "rig" object. I usually parent everything to the empty(after centering it of course), and it ends up acting like a container object in Houdini. It's also useful if you end up making something in which you want your user to be able to swap out main portions of the object such as the base.
      3. Great idea! I didn't think about that...
      4. Hahahaha good catch! What did I call them?
      5. When I learned blender, I always used the default layout. Now it's just a matter of preference/familiarity for me personally.

      • It's very odd that Blender allows you to right click a value box and choose 'Add Single Driver' but doesn't let you do the next logical step - right click another value box and choose 'Copy Single Data Path'. That way, when you pasted it into the drivers panel you would get dimensions[0] or dimensions.x inserted immediately, without having to guess what (or how) to add the mystery parameter.

  2. Josh Strawbridge on

    awesome tutorial. i doubt i'd have thought to try it if i hadn't have seen this but now i've got some ideas i want to try out in the future.

  3. Thanks for the tutorial, very interesting and useful topic.
    The texturing via projected orthographic cameras is a bit clunky however and so I looked at ways to animate the texture which is also clunky (ha!). I've uploaded a WIP which consists of a cube with two material slots, one for the front, back, top and bottom sides and the other for the left and right sides. The materials use different UV maps so that when the cube is widened along the x-axis, the texture adjusts to avoid stretching. This is achieved by adding a driver to the x-scale of a mapping node which is fed the UV map. To update the Viewport when in Material mode I found I had to toggle the y-scale value on the mapping node but it does update in real-time in Rendered mode in the 3D-view. The reason for two materials is so the sides don't get scaled along with the front and back.
    I've not shared publicly via GoogleDrive before so please let me know if the link to the blend file works:

Leave A Reply

To add a profile picture to your message, register your email address with To protect your email address, create an account on BlenderNation and log in when posting a message.