Blender Studio
  • Films
  • Training
  • Characters
  • Pipeline
  • Blog
  • Sign in
  • 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.

Films
Training
Blog
Pipeline and Tools
Characters
Search
Login
Join

Course

Geometry Nodes from Scratch
feed Course Overview
Basics keyboard_arrow_down
  1. 01

    Theory - Basics

    Free
  2. 02

    Example - Rock Generator

Data Structure keyboard_arrow_down
  1. 01

    Theory - Data Structure

  2. 02

    Example - Simple Rock Scattering

Fields keyboard_arrow_down
  1. 01

    Theory - Fields

  2. 02

    Example - Advanced Rock Scattering

  3. 03

    Example - Tree Generator

Attribute Propagation keyboard_arrow_down
  1. 01

    Theory - Attribute Propagation

  2. 02

    Example - Grass Tuft Generator

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

Course

Geometry Nodes from Scratch
Basics keyboard_arrow_down
  1. 01

    Theory - Basics

    Free
  2. 02

    Example - Rock Generator

Data Structure keyboard_arrow_down
  1. 01

    Theory - Data Structure

  2. 02

    Example - Simple Rock Scattering

Fields keyboard_arrow_down
  1. 01

    Theory - Fields

  2. 02

    Example - Advanced Rock Scattering

  3. 03

    Example - Tree Generator

Attribute Propagation keyboard_arrow_down
  1. 01

    Theory - Attribute Propagation

  2. 02

    Example - Grass Tuft Generator

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

You need to login to view this content

You can join Blender Studio for €11.50/month and get access to all of our training & film content instantly!

Login Join Blender Studio

Basics

Example - Rock Generator

May 16th, 2022

info License: CC-BY
Report Problem
Simon Thommes
Simon Thommes Publisher

Download the file created in this video here: rock_generator_file.blend

Join to comment publicly.

63 comments

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.

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.

Stephen Mackenzie
Stephen Mackenzie June 13th, 2022

Excellent….thanks

Fatih Pehlevan
Fatih Pehlevan May 21st, 2022

Excellent!

陈雨冬
陈雨冬 May 23rd, 2022

thx very much

Humberto Rapelli
Humberto Rapelli May 26th, 2022

Super helpful, thanks!

Jouko Hahkio
Jouko Hahkio June 3rd, 2022

Clear and informative.

Paulo Barrelas
Paulo Barrelas June 13th, 2022

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

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.

Yorsh Panda
Yorsh Panda Aug. 28th, 2022

Interesting

Yovany Alvarez
Yovany Alvarez Sept. 7th, 2022

Nice job!

Judah Lynn
Judah Lynn Sept. 24th, 2022

Outstanding! Such a clear tutorial. Thanks!

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

Excellent….thanks

Neeraj Bharati
Neeraj Bharati Nov. 18th, 2022

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

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

Great tutorial! Thanks a lot!

Joshua Merrill
Joshua Merrill Feb. 18th, 2023

Coming back for a refresher.

Elena Bragina
Elena Bragina April 21st, 2023

Great! Many thanks! You are so nice teacher!

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

Awesome! Great video.

Sebastian Kloch
Sebastian Kloch Sept. 17th, 2023

A Good Start 👍

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/

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

Sergio
Sergio July 21st, 2022

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

schmutzer1
schmutzer1 July 23rd, 2022

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

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.

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.

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

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

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.

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.

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.

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/

Elliott Stark
Elliott Stark Jan. 29th, 2023

material

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.

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.

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.

  • Films
  • Training
  • Blog
Pipeline and Tools
  • Cloud Rig
  • Blender Kitsu
  • Contact Sheet Add-on
  • Blender Purge
  • Blender Cloud Services
Characters
  • Cat
  • Dog
  • Chicken & Sets
  • Einar
Studio
  • Terms & Conditions
  • Privacy Policy
  • Contact
  • Remixing Music
  • blender.org

Blender Studio

The creators who share.

Facebook Logo Twitter Logo YouTube Logo
Loading...