Fractal Explorer

by chaos nuggets in Addons


How to Install

File > User Preferences > Add-Ons > install from file ... find file > activate by clicking check-box

  1. In blender, go to File > User Preferences. 
  2. In the window that opens, click the Add-On tab. At the bottom of the add-on tab, click “install from file.”
  3. Select the FractalExplorer.zip file that you downloaded, and then press enter to accept the selection. You do not need to unzip the file.
  4. Search “fractal explorer” in the search bar of the add-on tab, or select the ‘user’ category. You should see the Object: Fractal Explorer add-on. Make sure the small box is checked. This enables the add-on. 
  5. To verify it is enabled, check the 3D View > Toolshelf > Tools. There should be a new section titled "Fractal."

Location

3D View > Toolshelf (t) > Tools > Fractal

Basic Use

1) Generate a "tree."

Note: This step does not create a tree that you can see in the 3D view. In fact it will look like nothing happened. Check the outliner. That is where you will see the "tree" structure that I am referring to.

  1. Select the object that serves as the 'base' of the fractal. This will get copied over and over again. Any blender object will work including: cameras, lamps, metaballs, curves, meshes.
  2. Click or run the Generate Fractal  command. 
  3. In the operator panel choose the Number of Branches and the Initial Depth. I suggest leaving the initial depth low. This will make the next step easier.

2) Move the first copies to set the shape of the fractal

  1. Expand the base-object node in the Outliner. (Click the little plus icon)Notice that the number of copies nested inside of the base-object (Cube) is the same as the Number of Branches parameter you set. Similarly, if you expand one of the copies, here Cube.001, and all of its copies, you will see that the number of nested levels equals the Initial Depth.
  2. Move the first set of copies (Cube.001 and Cube.002) however you wish. You can rotate, translate and scale as you would with any blender object. This sets the shape of the fractal.

3) Change the depth of the fractal

To add or subtract levels in the hierarchy of copies:

  1. Select any copy in the fractal
  2. Click Grow Fractal  or Prune Fractal  to increase or decrease the depth, respectively.


Tip: There will be a ton of blue dashed lines showing constraint relationships. To hide these, uncheck 3D View > Properites (N) > Display > Relationship Lines.


Post-Processing

There are many ways to do stuff in blender. Here are some ways I go about doing post-processing. I followed these steps to make the banner image for this plugin.

Join all of the copies into a single mesh object:

  1. Select the entire fractal by selecting the base-object, then Shift-G > Children.  Make sure the original object is still selected.
  2. Ctrl-J to join into a single mesh

For more ways to select parts of the fractal, go here.

Make a modifier apply to all copies in the fractal:

  1.  Apply all desired modifiers to the base-object before running Generate Fractal.
  2. To change modifier settings, select all of the objects. Then Alt-Click when you change a modifier setting. The change will apply to all of the modifiers.


How it Works in Detail

If you run into problems my best suggestion is to understand what the Generate Fractal tool actually does. The best documentation for this is the code itself! Open up the FractalExplorer.zip file and have a look at __init__.py, which sets up the buttons, and makeTree.py

Generate Fractal creates a bunch of copies of the active object. Each copy has a parent, which is Blender's way of saying the copy is in the local coordinate system of the parent. So if you move the parent around, the 'child' follows it. Same goes for rotation and scale. 

The second bit is the tricky trick that makes the fractal do the fractal. Each child inherits the transforms (rot/loc/scale) of either its parent or its "aunt/uncle." So lets say parent A and parent B are "siblings." Suppose parent A has two children, called A' and B'. The plugin sets up these children so that one, lets say A', inherits the transform of parent A. The other child B' would inherit the transform of parent B. This means that when parent A scales, so will child A' relative to parent A. Similarly, when parent B scales, so will child B' relative to parent B. 

You can see that the transforms are being linked by clicking on one of the second-generation copies (use the outliner). Go to Properties > Constraints (little chain icon). You will see a constraint called "copy transforms." Try turning the constraint off (click the eye icon).

$10

Have questions before purchasing?
Login to message

Details
Sales 200+
Rating
1 ratings
Dev Fund Contributor
Published over 7 years ago
Software Version 2.7x, 2.8, 2.81, 2.82, 2.83, 3.1
License GPL
Discover more products like this

fractal generative duplicates