How to Make a Fractal in Blender with Tissue: Tree and Animation
You do not need to start with formulas or Geometry Nodes to build a fractal in Blender. The Tissue add-on maps one object onto the faces of another, then repeats the operation using the resulting geometry. A simple component can therefore grow into a self-similar structure, from a recursive cube to a branching tree.
In this tutorial, we will look at how Tissue works, limit growth with materials, build a fractal tree, and animate it with Shape Keys.
About versions. The video was recorded using an earlier Tissue interface. In newer builds, the location and names of some settings have changed, but the Component → Base → Tessellate workflow and the iteration logic remain the same.
Quick overview: how a fractal is built in Tissue
-
Install Tissue and create two objects: the repeated Component and the Base that receives it.
-
Select the Component, then make the Base active, and run Tessellate.
-
Assign the continuation material only to the Component faces where the next level should grow.
-
Enable selection by Material Index and add repetitions in Iterations.
-
Use Unused to keep faces from earlier iterations that were not used, and Merge to connect the mesh.
-
For animation, create Shape Keys on the Component, keyframe Value, and enable deformation transfer in Tissue.
What you need
-
Blender and a basic understanding of Edit Mode;
-
the ability to use Inset, Extrude, Loop Cut, move, rotate, and scale;
-
the Tissue add-on;
-
a separate copy of the .blend file, because the polygon count grows with every iteration.
Download the current Tissue build from the author's official repository. In the project README, the author recommends installing the latest ZIP manually through Blender's add-on settings. Install the ZIP as an archive, there is no need to extract it before selecting it in the installer.
After enabling Tissue, its tools appear in the 3D Viewport sidebar. In different Blender versions, the panel, parameter set, and mode names can look slightly different. If a button is not where it appears in the video, check the official Tissue documentation.
How Tissue works
Two objects take part in the operation:
-
Component: the geometry that Tissue will duplicate;
-
Base: the surface whose faces will receive the component.
First select the Component, then hold Shift and select the Base so that it becomes the active object. Run Tessellate. The add-on fits the component's bounding volume to each suitable face of the base and creates a new result object.
Tissue Tessellate window: Base, Component, and Quad mode
Three important rules follow from this.
-
The shape and local coordinates of the Component directly affect the result.
-
The topology and normals of the Base determine how the copies are oriented.
-
After changing the source objects, you can recalculate the result with Refresh.
For a first test, use a simple part with a torus or cube. Tessellate immediately shows the core idea: each face of the base is replaced or covered by an adapted copy of the component. If you enable Merge, neighboring copies can be joined. The Solidify modifier can then add thickness to the resulting mesh.
First fractal: a recursive component on a cube
1. Prepare the Component and Base
Add a plane, which will become the source component. In Edit Mode, use Inset and then Extrude to create a small raised section above the main plane. Add a cube, which will be the base object.
Select the component, then the cube, and run Tessellate.
The first result may look distorted because the component vertices are stretched along interpolated vertex normals of the base. In the Tissue version shown in the video, this is fixed by switching the normal mode from vertices to faces, Faces. Each component is then oriented by its own face normal and keeps a more rigid shape.
2. Enable iterations
Find the Iterations section and increase the number of repetitions. Tissue uses the previous iteration as the base for the next one. This creates self-similarity: the same protrusion repeats on increasingly complex geometry.
Recursive geometry after two Tissue iterations
There is one problem. Without restrictions, the component is duplicated on every polygon, including those that should remain as the base. The model quickly turns into a dense clump of geometry.
3. Limit recursion with a material index
Create two empty materials on the Component:
-
material index 0, used as ON;
-
material index 1, used as OFF.
The names are arbitrary, the indices are what matter. Assign ON only to the faces where the next iteration should continue. Assign OFF to all remaining faces.
In the Tessellate settings, open Selective and enable filtering by material index. In the interface shown in the video, processing continues on faces with index 0 and skips the rest. In the current version, the field may work differently and let you directly select the Material ID. Focus on the purpose of the setting, not only on the number.
After this, repetition remains only on the upper part of the component. The base stops filling with copies and the fractal structure becomes readable.
Face selection by Material Index and the result after several iterations
4. Show previous iterations
By default, Last keeps only the latest iteration visible. For a complete structure, switch Combine Iterations to Unused. This mode preserves faces from the previous step that were not used to generate new components.
Merge attempts to weld neighboring elements into one mesh. It becomes useful later when you want to smooth or further process the entire structure.
How to create a fractal tree in Blender
The cube example shows the mechanics. Now apply the same method to a more organic shape.
1. Model one branch
Add a cube and stretch it vertically. In Edit Mode, add several cuts with Loop Cut, then extrude the upper section in several directions to create forks.
Make the silhouette less mechanical by slightly moving, rotating, and scaling individual vertices and faces. Alt+Z is useful for seeing and selecting geometry through the object.
This branch becomes the Component. Use a plane as the Base. On the first step, the branch appears once, then Tissue starts duplicating it on the end faces of the branch itself.
2. Define the growth points
As in the cube example, create two materials. Assign the continuation material only to the branch tips, and the stop material to the side surfaces and lower section.
Enable filtering by Material Index and add several iterations. If all faces remain active, the branch will be copied over the entire surface and you will get a polygonal clump instead of a tree.
Switch normals to Faces if the copies deform noticeably. Unused brings back parts of previous iterations that were not involved in the next duplication step.
Branch component, Material Index, and Unused mode
3. Control scale with Component Coordinates
In Bounds mode, each new component is fitted to the bounds of the target face. Because of this, branches can become smaller with each step. For more controlled sizing, the video uses Global mode.
After switching to Global, the component may shift. This happens because Tissue now uses the global coordinates of the source branch. Go to top view and, in Edit Mode, move all component geometry into the first square of the coordinate grid without moving the object's Origin. Enable Grid snapping for precision.
Return to the result and click Refresh. The iterations should now be positioned more predictably, and branch size will no longer depend only on the bounding volume of the previous step.
How to merge branches and prepare for smoothing
Enable Merge. If points between iterations are not welded, check the lower end of the Component. A closing face can prevent the borders from joining. Delete the bottom polygon of the branch, then update the result with Refresh.
After a successful merge, you can add Subdivision Surface and check the integrity of the mesh. If gaps remain at the joints, return to the component and check:
-
whether the lower boundary is open;
-
whether the number and position of vertices match on the connecting loops;
-
whether Merge is enabled;
-
whether the merge threshold is too low;
-
whether transforms and coordinates are applied in the way expected by the selected mode.
Fractal tree after merging and smoothing
Do not increase Iterations unnecessarily. In the original video, the author recommends staying within five repetitions. This is not a formal Tissue limit, but a practical safety measure. Branching multiplies the number of elements at every step and can quickly consume all available RAM or freeze the interface for a long time.
Before experimenting, save a separate version of the .blend file and increase Repeat one step at a time.
How to animate a fractal with Shape Keys
The component's shape can change over time, and Tissue can recalculate that deformation across the entire structure.
1. Create two branch shapes
Select the source Component and open Object Data Properties → Shape Keys. Click + twice:
-
Basis keeps the original shape;
-
Key 1 becomes the modified state.
Select Key 1, enter Edit Mode, and modify the branch. Move points, change branch angles, scale, or bend it. Do not add or remove vertices after creating Shape Keys. Shape Keys store the positions of existing vertices and require stable topology.
2. Add keyframes
Return to Object Mode. On the starting frame, set Value = 0 and insert a keyframe. Move to the final frame, set Value = 1, and insert another keyframe.
Blender smoothly interpolates the component between Basis and Key 1. In the Tissue result settings, enable shape transfer and updating. In the version shown in the video, this option is called Animatable. In newer builds, look for settings related to Use Shape Keys, morphing, or animatable Tessellate.
Start playback. If everything is configured correctly, a single deformation of the original branch propagates through the entire recursive structure.
Shape Keys on the source branch and the animated Tissue result
Common problems
Components are heavily distorted
Switch the normal calculation method to Faces. For rigid branching parts, face normals often give a more predictable result than vertex interpolation.
The fractal grows on every polygon
Check the Component materials and the selection settings in Selective. The continuation material should be assigned only to the tips or other growth faces.
Only the top of the structure is visible
In Combine Iterations, choose Unused or All instead of Last. For a tree, Unused is usually more convenient because it restores the unused parts of the previous step without duplicating all geometry unconditionally.
Merge does not connect iterations
Delete the closing face at the component joint, check the boundary loops and merge threshold, then run Refresh.
The component moved after switching to Global
Fix the position of the geometry itself in Edit Mode relative to the Origin and coordinate grid. Do not compensate by randomly moving the object in Object Mode.
Blender freezes when Repeat is increased
Return to the previous value, simplify the Component, and disable heavy modifiers while setting things up. Every iteration can sharply increase the size of the mesh.
Where to take the result next
The same method can be used for much more than trees. Prepare different components and try building corals, crystal structures, architectural shells, woven surfaces, or abstract environment elements.
To build a complete scene around a procedural object faster, you can choose ready-made models, materials, and environments from the CGKit catalog, and save suitable assets into a separate project collection.
In Tissue, you are not designing the final model directly. You are designing a rule for duplicating one element. The most interesting part begins after the component, active faces, and coordinates are configured. Change one branch, and you can rebuild the entire structure.
Frequently asked questions
What does the Tissue add-on do in Blender?
Tissue maps a component object onto the faces of a base object, adapts it to the surface, and can repeat the generation process by using the previous result as the new base.
Can you create a fractal without Geometry Nodes?
Yes. In this tutorial, recursion is created through Iterations in Tessellate. Geometry Nodes are not required for this method.
Why do the branches get smaller with each iteration?
In Bounds mode, the component is fitted to the bounding volume of the target face. If you need different scale control, use Local or Global coordinates and position the geometry correctly relative to the Origin.
Why assign two materials without textures?
The materials are used as a mask. Their indices tell Tissue which faces should continue generating geometry and which should stop before the next iteration.
How do you animate a Tissue result?
Create Shape Keys on the Component, animate Value, and enable Shape Key transfer or an animatable mode in the Tessellate settings. The exact parameter name depends on the add-on version.
How many iterations can you use?
There is no single safe number. It depends on the component topology and the number of active faces. Start with one iteration and increase the value gradually. For the model from the original tutorial, the author recommends no more than five.