Blender Studio
  • Films
  • Projects
  • Training
  • Characters
  • Tools
  • Blog
  • Join
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    DEVELOPMENT

    • Developers Blog

      Latest development updates, by Blender developers.

    • Documentation

      Guidelines, release notes and development docs.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

Training Highlights
Stylized Rendering with Brushstrokes
Geometry Nodes from Scratch
Procedural Shading Fundamentals
Stylized Character Workflow

Training types
Course Documentation Production Lesson Workshop

Training categories
Animation Geometry Nodes Lighting Rendering Rigging Shading
Film Highlights
Wing It!
2023
Charge
2022
Sprite Fright
2021
Spring
2019
Project Highlights
Project DogWalk
Interactive
Gold
Showcase
BCON24 Identity
Showcase
Fighting with Grease Pencil
Article
Course
Geometry Nodes from Scratch
Basics
  1. 01

    Theory - Basics

    Free
  2. 02

    Example - Rock Generator

Data Structure
  1. 01

    Theory - Data Structure

  2. 02

    Example - Simple Rock Scattering

Fields
  1. 01

    Theory - Fields

  2. 02

    Example - Advanced Rock Scattering

  3. 03

    Example - Tree Generator

Attribute Propagation
  1. 01

    Theory - Attribute Propagation

  2. 02

    Example - Grass Tuft Generator

Extras
  1. 01

    Hair Assets in Blender 3.5

    Free
  2. 02

    Make Procedural Fur in Blender 3.5

    Free
  3. 03

    Simulation Nodes in Blender 3.6 LTS

    Free
  4. 04

    Node Tools in Blender 4.0

    Free
  5. 05

    Matrix Socket in Blender 4.2

    Free
  6. 06

    Interactive Node Tools in Blender 4.2

    Free
  7. 07

    Gizmos, For-Each Zone and more new Geometry Nodes features - Blender 4.3

    Free
Files
  1. Low Poly Assets
  2. Low Poly Example Scene
  3. Array Tools Free
  4. Doodle Cloud Free
  5. Spaceship Generator Free
  6. Geometry Components Demo

Login to view this content

Join Blender Studio for just €11.50/month and get instant access to all of our training and film assets!

Login Join Blender Studio
Simon Thommes
Simon Thommes Author
License CC-BY
Report Problem
Basics

Example - Rock Generator

Download the file created in this video here:

rock_generator_file.blend
Blender File · 839.2 KB · CC-BY rock_generator_file.blend
Download File

Join to leave a comment.

88 comments
Wei Gan
Wei Gan
April 28th, 2025

I can't seem to download the example file, got 'Access Denies' message wrapped up in a XML file

Simon Thommes
Simon Thommes
April 28th, 2025

@Wei Gan It does work on my end just fine. Could you try again, maybe also with a different browser and if it still doesn't work create a bug report here? https://projects.blender.org/studio/blender-studio/issues/new

Math Notermans
Math Notermans
Jan. 5th, 2025

Although the courses as is are great, i have to admit that on mobile phones the videos are hard to watch due to the fact they will not go fullscreen in landscape. Improving that it would be perfect as especially the videos i tend to watch mobile.

Simon Thommes
Simon Thommes
Jan. 6th, 2025

@Math Notermans Testing this on an Android 14 device it works fine for me. Please confirm that this issue is not on your end and make a report here: https://projects.blender.org/studio/blender-studio/issues/new

Francesca
Francesca
Dec. 20th, 2024

Very helpful thank you so much

GlowGamer
GlowGamer
Dec. 1st, 2024

My English proficiency is not very good, and one issue I have is that when using search, I need to switch languages to find what I want, which is not very convenient. It would be perfect if the search function could support multiple languages. I could search for English terms directly and see the results without having to frequently switch language interfaces.

Simon Thommes
Simon Thommes
Dec. 4th, 2024

@GlowGamer That sounds like an interesting idea. But this is not the right place for feature requests. You can bring up a proposal here, if one doesn't already exist: https://blender.community/c/rightclickselect

GlowGamer
GlowGamer
Dec. 5th, 2024

@西蒙·托姆斯 ok

Fanny Ebratt
Fanny Ebratt
Sept. 23rd, 2024

Thanks

Charles-Jean Boucher
Charles-Jean Boucher
June 29th, 2024

The Rotation output from Instance on Points is a purple diamond and Random does not appear in the search when I drag it out. I added a new Instance on Points and the Rotation output icon is still the same.

EDIT: I added a Random Value input and connected that to the Rotation. Seems to work now.

Simon Thommes
Simon Thommes
July 1st, 2024

@Charles-Jean Boucher There are some differences in the Blender version from this course to how things are in the latest release. There is now a rotation socket type that didn't exist then. Dragging out and searching for 'Random Value' works fine for me, I'm not sure why it wouldn't work for you.

Alejandro Azadte
Alejandro Azadte
April 5th, 2024

Unfortunately, the example was created in an old version of Blender. I've tried on 4.0.2 and the Input & Output in Group tab are completely different, as far as I can see...I don't know how to rename the parameter nodes to have them reflected in the right panel in Group

Simon Thommes
Simon Thommes
April 5th, 2024

@Alejandro Azadte The Group In-/Outputs used drag and drop  for organization now, so for panels you can just drag them inside. Renaming is still just double clicking the name.

Alexandre Porto Perrella
Alexandre Porto Perrella
Feb. 6th, 2025

@Simon Thommes I have a similar issue but don't quite understand your answer, could you elaborate a little?

Simon Thommes
Simon Thommes
Feb. 7th, 2025

@Alexandre Porto Perrella It would be helpful if you could elaborate on your problem first. My previous answer seems pretty clear to me.

Alejandro Azadte
Alejandro Azadte
April 12th, 2024

@Simon Thommes Oh, I see. Will try that. Thanks!

Sama Shaar
Sama Shaar
March 11th, 2024

Thank you .. This tutorial was very helpful and informative

MoniGarr
MoniGarr
Feb. 26th, 2024

thank you, the info is a big help :)

shmuel lowenbraun
shmuel lowenbraun
Dec. 25th, 2023

https://drive.google.com/file/d/1qDA_FeC9RNYkRvueIrjEGGj3RlJwOfb8/view?usp=drive_link

shmuel lowenbraun
shmuel lowenbraun
Dec. 25th, 2023

I am trying to change the materiel by changing it to object linking and  it is not showing up in the viewport. is it a change in blender 4.0?

Simon Thommes
Simon Thommes
Jan. 2nd, 2024

@shmuel lowenbraun Can you read through the other comments about this and confirm that this is a separate issue? If it still doesn't work it's better to make a bug report on https://projects.blender.org/

Michael Marcer
Michael Marcer
Nov. 27th, 2023

Using 4.0 here. My Mesh Boolean defaulted to the 'Difference' option, rather than 'Intersect'. If you are seeing the ico sphere overlaps cutting out your mesh then double check that your Mesh Boolean is set to Intersect.

Helge Maus
Helge Maus
Oct. 2nd, 2023

As it seems, that Blender 4.0 doesn't take Instances in Boolean anymore, how to make this work now? Tried it with Realize Instances, but the Boolean Node (Intersect) doesn't seem to work with that data stream. Thanks :-)

Simon Thommes
Simon Thommes
Oct. 16th, 2023

@Helge Maus Yes, unfortunately there was a change in how instances are handled in the mesh boolean node that makes this impossible. A workaround would be too much for this beginner tutorial. I brought it up to the developers. For the time being you will need to use 3.6 to follow this tutorial.

Show more replies
Dominik Jancik
Dominik Jancik
Oct. 16th, 2023

@Helge Maus Hi Helge, I came across the same issue and was able to achieve the same result using a Repeat Zone. I understand why Simon would think this is too far ahead for the basic tutorial but at least it's achievable.

I am not sure whether the performance is different, but it could be since we're working with full mesh copies rather than instances.

I am also not sure if the ID approach I am using in the repeat zone for Randoms is ideal, but it does work.

See the following screenshot for the node setup: https://imgur.com/a/hyGsp12

Sebastian Kloch
Sebastian Kloch
Sept. 17th, 2023

A Good Start 👍

Bryan Green
Bryan Green
July 25th, 2023

Why all the separate group inputs rather than just using one with all the parameters on it?

Simon Thommes
Simon Thommes
July 26th, 2023

@Bryan Green It helps with a cleaner node-tree, as you don't get noodles running over the entirety of the tree and it logically groups the inputs where they are actually being used.

Nico Ma
Nico Ma
July 25th, 2023

When trying to apply the material like you did at mins 19:37 of the video, nothing happens. Is this correct behavior for Blender 3.6.1? The set material node works fine.

Simon Thommes
Simon Thommes
July 25th, 2023

@Nico Ma For me that still works the same in Blender 3.6. Note that it is crucial that you set the link type of the material slot to Object as shown in the video.

Nico Ma
Nico Ma
July 28th, 2023

@Simon Thommes Yes, I set the link type to object. It just wont work. The most weird thing is,  when I render a test scene, the rocks have a grey color. But nowhere in my project, neither in the color ramp of the shading tab of the material, nor the viewport display color, nor anywhere I can think of, is a grey color left. I now even deleted all the colors from my project in the outliner blender files tab. In the viewport shading: material preview no color is applied at all, but when rendering the rendered image (the rocks) is colored grey? Ive been working with blender full time for 3 weeks now, and I do not understand this behaviour at all.

Edit: After some testing, in another project file with a similar setup, I was able to assign the color without FULLY using the Set Material Node in this way. In the Material Properties tab I set the link type to Object and linked my material. First, nothing happend, but after just inserting a Set Material Node right before the group output the color was applied. But the Set Material Node had no material selected! When I now select a material with a different color in the node, all Objects that share this node network get this color, except for the one object where I set the material in the properties tab via object link.  So to me this looks just wrong. Because used this way, I need the setmaterial node, even tho I only want to set the material in the properties tab. Obviously something is wrong, either with my blender, or with the version itself.  Most of all, it very much looks like you were able to perform this coloring via the material poperties tab just fine, since not a single set material node is to be found in your example rock_scattering file.

Simon Thommes
Simon Thommes
July 31st, 2023

@Nico Ma This is just how materials work in Blender currently. If you link the material slot to the object then also only that object will use that material assignment. If you link it to the data, you run into the problem that the data is not actually part of the actual data of the object, because it is procedurally generated, only the node-tree itself can assign the material in that case.

I agree that the UX of this could be improved, but it is consistent with how it has been working so far.

Jörg Meyer
Jörg Meyer
June 19th, 2023

Awesome! Great video.

Alex Dumproff
Alex Dumproff
May 19th, 2023

Is there a way to see when a random input to a node will be a different randomization for every instance as opposed to one random value that will be applied to all instances in the same way? Or in other words: Let's say a random Int would spit out "3" as a value. How do I know that as a node input it will insert for example "2", "5", "8", "6", etc. when plugged into one node socket for different instances instead of only applying "2" as one random value to be applied to every new instance. Like in the same way I would just type in one random value into the field?

Does this happen on more than the random node? And how can I find out if the behaviour differs. A mouse hover over the input socket doesn't tell me that.

Simon Thommes
Simon Thommes
May 22nd, 2023

@Alex Dumproff > A mouse hover over the input socket doesn't tell me that. It does actually. Whenever a socket provides the same value for each element it will actually show that value when you hover over the socket. Otherwise, when the value differs for each element the tooltip with show it as a field.

The random value node will usually give you differing values for each element. Essentially it always gives you a random value per Seed AND per ID. If nothing is connected to the ID that means that is falls back to the ID attribute which is stable when you delete points or the element's index, if the ID attribute doesn't exist. You can think of the ID input as being a second seed input. The only way to receive the same random value for all elements is to plug constant values that are the same for all elements into both the ID and the Seed input.

Elena Bragina
Elena Bragina
April 21st, 2023

Great! Many thanks! You are so nice teacher!

Joshua Merrill
Joshua Merrill
Feb. 18th, 2023

Coming back for a refresher.

Elliott Stark
Elliott Stark
Jan. 29th, 2023

material

Jesus Gonzalez Ruiz de Almiron
Jesus Gonzalez Ruiz de Almiron
Jan. 14th, 2023

Great tutorial! Thanks a lot!

Joshua Houston
Joshua Houston
Dec. 23rd, 2022

This crashes on Apple Silicon every time :(

Simon Thommes
Simon Thommes
Jan. 2nd, 2023

@Joshua Houston Is this with the latest Blender release? If so it would be useful if you could identify at what step the crash happens and report it as a bug, so the developers can take a look at it. In Blender under Help - Report a Bug

Show more replies
Ben de Vries
Ben de Vries
Feb. 14th, 2023

@Joshua Houston I had this aswell, it is a Mac thing. It is fixed in Blender 3.5.0. Which, as of writing, can be downloaded from the daily builds: https://builder.blender.org/download/daily/

Dan Caldwell
Dan Caldwell
Dec. 12th, 2022

Thanks Simon! I ran into problems assigning materials to the object. I created a material, assigned it to the object via the link drop down menu and.. nothing happened. I then assigned a material within Geometry Nodes via the Set Material node and it worked fine, but I'm not sure how to edit the material from there.

Dan Caldwell
Dan Caldwell
Dec. 12th, 2022

@Dan Caldwell I am using Blender 3.4.0 by the way, has something changed between versions maybe?

Simon Thommes
Simon Thommes
Dec. 12th, 2022

@Dan Caldwell That is unfortunately just how it works. The issue is that in the material dropdown you edit the material slots of the original data. But while evaluating the geometry nodes there are additional material slots added for new geometry. Those can only be assigned with geometry nodes in turn. What I usually do is assign it both with geometry nodes and to the material slots so I have a context to select and edit the material.

I agree that this is not ideal. But the behaviour is at least consistent and the usability will get better hopefully.

Mark Hannen
Mark Hannen
Dec. 10th, 2022

This is so amazing..  I am trying to figure out some of the short cuts that you are doing.. one that is confusing me isthe "Z" short cut to toggle the shading... I don't see the Overlay mode as an option... anyone know how to fix that? thanks

Simon Thommes
Simon Thommes
Dec. 11th, 2022

@Mark Hannen This is a setting that can be enabled in the preferences. Extra Shading Pie Menu Items under Keymap.

Neeraj Bharati
Neeraj Bharati
Nov. 18th, 2022

This is super awesome ! Simple and to the point explanation. Great course !!

Cap Amr Karam
Cap Amr Karam
Oct. 18th, 2022

Excellent….thanks

Huiquan Lu
Huiquan Lu
Oct. 1st, 2022

I wonder what is difference between connecting all parameters to on group output panel instead of connecting each to a group input panel?

Simon Thommes
Simon Thommes
Oct. 1st, 2022

@Huiquan Lu I'm not sure if I understand correctly. If you are referring to the group input nodes: There can be however many group input nodes you want and there is no difference between using a single one or multiple. I like to split it up into multiple nodes to organize the nodetree in a more readable way. The group output can only be a single node, as otherwise that can lead to ambiguity.

Huiquan Lu
Huiquan Lu
Oct. 2nd, 2022

@Simon Thommes Thanks Simon! Yes, that was what I wanted to know. as I watched to the end of the video, I started to figure out why you did those separated input nodes.

Judah Lynn
Judah Lynn
Sept. 24th, 2022

Outstanding! Such a clear tutorial. Thanks!

Michael Gembicki
Michael Gembicki
Sept. 8th, 2022

When I change the roundness factor in both the one I made from scratch in 3.3 and the example file opened in 3.1.2 the scale just changes no change in shape.  Also in both the example file and my own the seed value is not a slider but a blank number field that when a number is entered nothing changes.

Simon Thommes
Simon Thommes
Sept. 9th, 2022

@Michael Gembicki For me, opening the file with Blender 3.3 everything is working just fine. The seed being an input field sounds like the input was toggled to an attribute with the button next to the field. But I just downloaded the exact file in the description and opened it with Blender 3.3 and it's all fine. Can you check that again to make sure?

Michael Gembicki
Michael Gembicki
Sept. 10th, 2022

@Simon Thommes I tried it on a vanilla version of 3.3 and it worked just fine.  It must be one of my, way too many, addons causing it. Thanks for the response. I'm enjoying the course.

Simon Thommes
Simon Thommes
Sept. 12th, 2022

@Michael Gembicki Ah okay, yes that makes sense then. It seems strange to me how an addon would mess with this file so specifically, but that can happen. At least it doesn't seem to mess with the file itself. The one you shared also works just fine for me on vanilla Blender

Michael Gembicki
Michael Gembicki
Sept. 10th, 2022

@Simon Thommes Yeah, redownloaded example and same issues.  This is my blend file saved from 3.3 https://drive.google.com/file/d/158sFbzycay3jrPzwDRaUAYPYIJ8MOP0T/view?usp=sharing

Yovany Alvarez
Yovany Alvarez
Sept. 7th, 2022

Nice job!

Yorsh Panda
Yorsh Panda
Aug. 28th, 2022

Interesting

Katie Korwal
Katie Korwal
Aug. 26th, 2022

16:49  Could you elaborate a bit more on why you changed the input type from Vector to Float? This is the first time I've come across "float" and looking it up in the Blender Manual was clear as mud. :(

Katie Korwal
Katie Korwal
Aug. 26th, 2022

@Katie Korwal correction 16:42

Simon Thommes
Simon Thommes
Aug. 29th, 2022

@Katie Korwal Float is a technical term for a number with a floating point. It's the same as what is just called Value in shader nodes. The reason I'm changing this here is that by default the input was a vector, but I only want to control it with a single value. Blender always implicitly converts between different input types when possible. So the float input that I give in is then converted to a vector by using it for every component of the vector.

Mahesh Deshpande
Mahesh Deshpande
Aug. 5th, 2022

Helpful tutorial! Is it possible to add Collections as Instances in 'Instance to Points' node?

Simon Thommes
Simon Thommes
Aug. 15th, 2022

@Mahesh Deshpande Yes, totally. You can use the Collection Info node to receive a collection as a geometry instance.

schmutzer1
schmutzer1
July 23rd, 2022

Unfortunately every blend file I try to download is tagged as moved or disappeared immediately after download. Is there analternative place or way to access these files? Thank you very much and congratulations!

Simon Thommes
Simon Thommes
July 24th, 2022

@schmutzer1 I'm not exactly sure what that means. For me the downloads seem to be working perfectly fine. The direct links work fine even without being logged in. You're saying ' tagged as moved or disappeared immediately after download', if it is after the download, that sounds to me like it would be something on your end.

schmutzer1
schmutzer1
July 24th, 2022

@Simon Thommes Hello Simon, thank you for your support. You're completely right. It was a browser specific issue with Firefox. Fortunately it worked fine with Microsoft Edge. Congratulations again for your this great course and I wish you all a nice summer at Blender Studio.

schmutzer1
schmutzer1
July 23rd, 2022

First of all, thank you for this marvelous course. It's a long time wish made real

Sergio
Sergio
July 21st, 2022

Nice example, with the random, points and all the basics for nodes.

Paulo Barrelas
Paulo Barrelas
June 13th, 2022

Thanks for this detailed explanation and for also showing how to  organise the graph.

Stephen Mackenzie
Stephen Mackenzie
June 13th, 2022

Excellent….thanks

Benjamin Bass
Benjamin Bass
June 12th, 2022

Thank you!  This is very clear.  It's great to see a full use case.  Question:  How can I make the various inputs be automatically randomly generated with each instance of my object?

Simon Thommes
Simon Thommes
June 21st, 2022

@Benjamin Bass Currently it's not possible to set this up automatically unfortunately. This is a known issue and the solution needs to be properly designed still, as we want to have a better solution than how it is solved with shader nodes currently.

Tyler Bjarke
Tyler Bjarke
Sept. 27th, 2022

@Simon Thommes I was wondering about this too. As a workaround, could you do something like plug Object Info -> Location into your 'seed' of the random value node? Then if you were to duplicate the objects in various locations, they'd sort of have random starting values? I played with it a bit, and for a second I thought it worked, but my results were inconsistent.

Simon Thommes
Simon Thommes
Sept. 27th, 2022

@Tyler Bjarke The object info node still needs an object to explicitly be passed into it, so that would need to be set each time the node is used, which defeats the purpose. In Blender 3.4 (allpha) there is a Self Object node, which solves that issue. However proper randomization still needs to be done. The same approach that is used in shader nodes is purposefully not added to geometry nodes as it is quite flawed. The current plan is to enable reading out  custom object properties in geometry nodes an then adding a feature that randomizes a property when duplicating the object. That would allow controlling that seed value explicitly and is more stable.

Jouko Hahkio
Jouko Hahkio
June 3rd, 2022

Clear and informative.

Humberto Rapelli
Humberto Rapelli
May 26th, 2022

Super helpful, thanks!

Nicholas Cliffe
Nicholas Cliffe
May 26th, 2022

Just chiming in to say I completed this example! Blender noob here so even the materials section at the very end was new stuff to me.

Sorcière
Sorcière
May 26th, 2022

Hello ! First thanks a lot for all the great work done here ! Also, Do you plan to add the "modifiers" as geonode > bevel or mirror node for exemple ? It would be awesome to have it all in geonodes, no ?

Sorcière
Sorcière
May 26th, 2022

@Sorcière and grease pencil !!!

Show more replies
Simon Thommes
Simon Thommes
May 26th, 2022

@Sorcière the plan of the core blender development team is to port the majority of modifiers to geometry nodes. That will happen over time, it's not the number 1 priority at the moment.

Sorcière
Sorcière
May 27th, 2022

@Simon Thommes Thanks for your quick and complete answer. I look forward to discovering the next versions. As usual it will be amazing  :D

Alexandros Hadjilaou
Alexandros Hadjilaou
May 24th, 2022

Is it possible to instance points in volume instrad of Face/Edge/Vertex?

Simon Thommes
Simon Thommes
May 24th, 2022

@Alexandros Hadjilaou Currently that is not possible natively. In the future there will be a node for that. But right now you can make a nodegroup that scatters points on a surface the scale of the bounding box. Move the points around so that they cover the volume of the bounding box and then delete all points outside of the mesh.

Show more replies
Simon Thommes
Simon Thommes
May 24th, 2022

@Alexandros Hadjilaou I did that in the Points in Volume nodegroup of this demo file: https://studio.blender.org/training/geometry-nodes-from-scratch/ceometry-components-demo/

陈雨冬
陈雨冬
May 23rd, 2022

thx very much

Fatih Pehlevan
Fatih Pehlevan
May 21st, 2022

Excellent!

Films Projects Training Blog Blender Studio for Teams
Pipeline and Tools
  • CloudRig
  • Blender Kitsu
  • Brushstroke Tools Add-on
  • Blender Studio Extensions
Characters
  • Mikassa
  • Whale
  • Ballan Wrasse
  • Snow
Studio
  • Terms & Conditions
  • Privacy Policy
  • Contact
  • Remixing Music
Blender Studio

The creators who share.

Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite