How to Instance on Points in Blender Geometry Nodes
Instancing objects onto points using Blender's Geometry Nodes is a powerful, non-destructive method for scattering assets like grass, rocks, trees, or repetitive mechanical parts across a surface. This step-by-step guide explains how to generate points on a base mesh, attach an external object or collection to those points, and apply randomized scale and rotation for a natural, procedural look.
1. Set Up the Base Geometry
- Select the base object (e.g., a plane or landscape mesh) where you want instances to appear.
- Switch to the Geometry Nodes workspace or open the Geometry Node Editor in your current layout.
- Click the New button at the top of the Geometry
Node Editor to create a new modifier node tree. You will see a
Group Inputconnected to aGroup Output.
2. Generate Points on the Mesh
To place objects on the surface, you need points distributed across the faces of your geometry.
- Press
Shift + Aand search for Distribute Points on Faces. - Place this node between the
Group InputandGroup Outputnodes. - Choose your distribution method:
- Random: Places points purely by density.
- Poisson Disk: Distributes points with a guaranteed minimum distance between each point to prevent overlapping.
3. Add the Instance on Points Node
- Press
Shift + Aand search for Instance on Points. - Place this node between the
Distribute Points on Facesnode and theGroup Output. - Connect the Points output from the
Distribute Points on Facesnode to the Points input of theInstance on Pointsnode.
4. Assign the Instance Object
- Press
Shift + Aand search for Object Info (or drag an object directly from the Outliner into the Geometry Node Editor). - In the
Object Infonode, select the object you want to duplicate. - Set the mode to Relative so the instance retains proper spatial relationships.
- Connect the Geometry output of the
Object Infonode into the Instance input of theInstance on Pointsnode.
(Note: If you want to instance multiple different objects, use a
Collection Info node instead, check Separate
Children, and enable Pick Instance on the
Instance on Points node.)
5. Randomize Rotation and Scale
To avoid a uniform, artificial look, add variation to the instances.
- Random Scale:
- Add a Random Value node (
Shift + A> Utilities > Random Value). - Set the data type to Float.
- Set a Min value (e.g.,
0.5) and a Max value (e.g.,1.5). - Connect the
Valueoutput to the Scale input of theInstance on Pointsnode.
- Add a Random Value node (
- Random Rotation:
- Add another Random Value node and set its type to Vector.
- For a flat-ground scatter, set the Z-axis rotation range from
0to6.283(representing 360 degrees in radians). - Connect the
Valueoutput to the Rotation input of theInstance on Pointsnode.
6. Display the Original Mesh
By default, the Distribute Points on Faces node replaces
the original base geometry. To keep the ground mesh visible alongside
your instances:
- Add a Join Geometry node (
Shift + A> Geometry > Join Geometry) before theGroup Output. - Connect the original
Geometryoutput from theGroup Inputnode into theJoin Geometrynode. - Connect the
Instancesoutput of theInstance on Pointsnode into theJoin Geometrynode as well.