Shape Generator

by Mark Kingsnorth in Models


You will be provided with the following files:

  • - the main add-on file (do not unzip).
  • - a set of pre-configured sets for the add-on.
  • - an extension add-on for animation nodes (do not unzip). 
  • - A set of sample.blend files demonstrating the animation node setup.

Instructions for how to install the add-on and additional features are below.

Main Add-On

The add-on can be installed through the Blender 2.8 UI with


  1. Go to Edit -> Preferences.
  2. Select the Add-ons tab on the left it is not already.
  3. Select the Install... button along the top.
  4. This will open a file dialog where you should navigate to where you have downloaded the "Shape Generator" zip file.  This file should not be unzipped.
  5. Then, click the "Install add-on from file" button.
  6. Search for the add-on by typing "Shape Generator" in the search box if it does not already appear.
  7. Make sure the checkbox next to the Add-on (Add Mesh: Random 3D Shape Generator) is ticked.

Let us know if you have any problems!

Animation Nodes Version

There us a bonus feature in  that will allow you to animate and dynamically change a shape using the freely available Animation Nodes addon:


  1. Make sure you have installed the latest version of Animation Nodes available here: 
  2. Make sure you have installed the main Shape Generator addon as above.
  3. In Blender, Go to Edit -> Preferences.
  4. Select the Install... button along the top.
  5. This will open a file dialog where you should navigate to where you have downloaded the zip file.  This file should not be unzipped.
  6. Then, click the "Install add-on from file" button.
  7. Search for the add-on by typing "Animation Nodes: Random 3D Shape Generator" in the search box if it does not already appear.
  8. Make sure the checkbox next to the Add-on (Add Mesh: Animation Nodes: Random 3D Shape Generator) is ticked.

See below to see how the node works.

Let us know if you have any problems!


This is an optional step if you wish to load some pre-configured presets.


Depending on your operating system, navigate to one of the following directories.

  • If you are on Linux, navigate to ~/.config/blender
  • On a Mac: /Users/<username>/Library/Application Support/Blender/
  • If you are on Windows, navigate to: %APPDATA%\Blender Foundation\Blender

Once there you should see folder(s) corresponding to the version(s) you currently have, for instance the 2.80 folder.  Within that folder, go to scripts/presets/operator/ and create the folder mesh.shape_generator. Unzip the contents of the .zip file to that location.

You should then be able to access a set of pre-configured presets when using the operator.  

IMPORTANT: When moving Blender versions, make sure you have backed up this directory as it contains any presets you have saved.

How it works

The add-on first creates a box, and then starts randomly extruding the faces.  Each face that is extruded and tapered randomly between a specified minimum and maximum value set by you.  The process is repeated by a specified amount.  By default, before completing the operation the add-on will check for overlapping faces.  If there are, it will attempt to extrude in a different way:

You can also set a minimum and maximum rotation when a face is extruded:

By varying these minimum and maximum values for Extrude, Taper, and Rotation different effects can be created:

Note that the faces do not overlap and organically grow out.

When you select the mirror options, you can start to get interesting base meshes:


You can access the Shape Generator through the Add menu in Blender.  This menu is either accessible through the bottom of the 3D view or by pressing Shift+A:

This then creates a Generated Shape object.  You can then create different shapes using the controls in the toolbar.  

The tool bar is located in the bottom left hand corner and will need expanding:

The options in the toolbar are described in the next section.


You can control the following options to get different effects by expanding the toolbar that appears when you add a new Generated Shape object:

Operator Presets: You can load, edit or save a selection of pre-prepared configurations.  Press the '+' and '-' keys to add or delete entries.

Animation Nodes Version: There is also an optional add-on which allows you to use the add-on as a node in the powerful Animation Nodes Blender extension. This is useful if you want to either create animated effects or control the shape dynamically. The parameters are similar:

Each of the parameters are described in the next sections.

Random Seed

  • Random Seed: Different random shapes will be created by changing this value to another number.


  • Amount: This controls the number of extrusions that are performed to to create the shape.  This higher the number, the more extrusions occur. The user interface will stop the mouse dragging beyond 100, however you can enter higher numbers by clicking on the control and entering it via the keyboard.
  • Extrude: This provides the minimum and maximum values that the random extrusions in the shape will be restricted by.
  • Taper: This provides the minimum and maximum values that each new extruded edge is shrunk or grown by.  A value of 1.0 will keep the  face the same as it was before it was extruded; smaller values will shrink the face and higher values will make the face bigger than it was before.
  • Rotation: Control how much a face is bent when it is extruded.  This can create more varied shapes.

When choosing a face, favour...

The X, Y, and Z options here put some control over which faces are chosen as the add-on extrudes the shape.  By default, all faces in any direction have an equal chance of being selected (1.0, 1.0, 1.0).  If you decrease the Z value to zero, the faces that will be extruded are a lot less likely to be in the Z direction.

This sort of control can create, for example, flatter shapes:

Note that changing these settings does not guarantee that, for example, a face pointing in the Z axis will never be selected; it just reduces the chances significantly.


These options add a Bevel modifier to the shape so that you can create more chamfered shapes. Check the checkbox if you wish to use the effect:

  • Bevel Width: the width of the overall bevel on the edges.  Note that if the shape is complex ith many concave edges, the width will be limited.
  • Bevel Segments: the number of segments in a bevelled edge.  The more segments, the smoother the bevel effect.
  • Bevel Profile: The shape of the bevel, from concave to convex. It has no effect if Segments is less than 2.
  • Width Method: Declares how Width will be interpreted to determine the amount of bevel. See the documentation for this under Bevel Modifier.
  • Clamp Overlap: Stop when faces overlap.

Subdivision Surface

This will add a Subdivision Surface modifier on top of the base mesh, for creating a much smoother shape. Check the checkbox to activate it:

  • SubSurf Segments: the number of intermediary segments the mesh will divide the surface into.

Subdivide Edges

Separately, there is also the option to subdivide the edges of the base mesh.  This will not smooth the mesh, it will just add more faces to the sections:

Mirror X, Y and/or Z

You can choose to add a mirror mirror modifier to the shape in the X, Y or Z axes.  This will also bisect the shape along the selected axis.

By default, the shape is mirrored in the X axis.  This is good for creating uniform shapes like vehicles or spaceships.

A good tip if the mirror modifier mirrors the side you don't want: in the scale settings, described next, set the appropriate axis to -1.0.  Then select Flip Normals, also described later.


You can add a pre-defined material when creating a 3D shape under the Materials shape:

You will need to create the material beforehand on a temporary object; Blender will remember the material after the object has deleted.

Here an material with an image is applied dynamically

Known bug: The parameters menu will disappear if you try to press the 'X' next to the the material slot. This appears to be an issue with the viewport.  Try pressing the delete key instead but do let me know if you have any further problems.  

Prevent Face Overlaps

By default, the add-on will attempt to prevent face overlaps when extruding out a shape.  At higher amounts of extrusions, this operation can be slow even though it is effective in creating meshes that are tidier.  If you don't want this option and don't mind overlapping faces, you can uncheck it:

  • Face Check Limit: For performance purposes, you can limit the number of checks the tool will do on other faces every time it does an extrude.  Low numbers may still create good meshes without the thorough checks. Zero will mean the check will check the whole mesh (this is the default).


These parameters control where the object is positioned, how much is it rotated by, and what scale the object should be along the x/y/z axis.

  • Location: The location of the mesh.
  • Rotation: Rotate the mesh.
  • Scale: Scale the resulting mesh.  Good for producing longer or higher meshes during the creation process:


A powerful yet simple feature is the ability to create lots of random objects at the same time and randomly change each of those shapes' location, rotation & scale properties. This creates lots more interesting combined shapes. 

  • Number to create: You can increase the number of randomised shapes you create.
  • Random Transform Seed: the random seed value by which they are created and positioned.

There will be checkboxes against each of the location, rotation & scale properties you wish to change. For instance, the location property has minimum & maximum values, to control the minimum & maximum location of each generated shape.  

Here are the options in detail:

  • Randomize Location: Check the box to randomize object creation by location.#
  • Start Location: The start limit of where to locate an object.
  • End Location: The end limit of where to locate an object.

  • Randomize Rotation: Check the box to randomize object creation by rotation.
  • Start Rotation: The start limit of where to rotate an object.
  • End Rotation: The end limit of where to rotate an object.

  • Randomize Scale: Check the box to randomize object creation by scale.
  • Start Scale: The start limit of how much to scale an object by.
  • End Scale: The end limit of how much to scale an object by.

UV Projection

The addon uses a version of Blender's UV Smart Project to generate a UV Map of the object which can then be edited later.

  • Angle Limit: This controls how faces are grouped: a higher limit will lead to many small groups but less distortion, while a lower limit will create fewer groups at the expense of more distortion. 
  • Island Margin: This controls how closely the UV islands are packed together. A higher number will add more space in between islands. 
  • Area Weight: Weight projection’s vector by faces with larger areas. 
  • Stretch to UV Bounds: Stretch the final output to texture bounds.

Other options

  • Shade Smooth: mark the faces to smooth shading when they are created.
  • Flip Normals: The normals on the faces of the mesh will be flipped.
  • Align: Change how the shape is aligned.


Blocky Cubes

  • Set Extrude Min and Max settings both to 1.0.
  • Set Taper Min and Max settings both to 1.0.
  • Uncheck Mirror X.


  • Check Subdivision Surface.


(...or weapon/vehicles!)

  • Increase Amount to approximately 20.
  • Set Rotation Min/Max both to 0.
  • Set When choosing a face, favour: to X: 0.10, Y: 1.0, Z: 0.20
  • Ensure Mirror X is selected.
  • Set Scale to X: 1.0, Y: 2.0, Z: 1.0 to stretch the shape out.
  • Also set Subdivide Edges to 2 so that uou automatically have extra faces to add details to when you go into Edit Mode.
  • Check the Bevel Edges option.



When you are Mirroring the shape in the X, Y, or Z axes, seperate shapes may appear.  This is because the missing part that connects the shape is hidden in the Mirror effect:

If this occurs and you don't want that island, simply delete it in edit mode once you are happy with the rest of the shape.

Any Questions?

Do not hesitate to get in touch with me if you have a question, a new feature suggestion, or an image you'd like to share.  You can contact me through this website, my blog, or by my Twitter page.