Shape Generator

by Mark Kingsnorth in Models


(Blender 2.8 users: use the file for the instructions below)


  1. Go to File -> User Preferences.
  2. Select the Add-ons tab at the top.
  3. Select the Install Add-on from File... button along the bottom.
  4. A file dialogue will pop up. Navigate to the file location where you downloaded the .zip file and double click it.
  5. Search for the add-on by typing "Shape Generator" in the search box if it does not already appear. Make sure the checkbox next to the Add-on (Add Mesh: Random 3D Shape Generator) is ticked.
  6. Click the Save User Settings button to make sure the add-on is installed next time you open Blender.
  7. Close the User Preferences dialog box and enjoy!


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%\Roaming\Blender Foundation\Blender

Once there you should see folder(s) corresponding to the version(s) you currently have, for instance the 2.79 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.  If the tool bar does not appear, try pressing the t key whilst in the viewport:

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


You can control the following options to get different effects in the toolbar that appears when you add a new Generated Shape object. They are described below:

  • Operator Presets: You can load, edit or save a selection of pre-prepared configurations.  Press the '+' and '-' keys to add or delete entries.
  • 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.

Bevel Edges

This option adds 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.

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.

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).

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 to view: Align the mesh to the viewport.
  • 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:


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.