Main talks in the tutorial will be about creating a post apocalyptic fallout scene. Before we start, a quick heads up. Don’t try to keep your view in Rendered mode when creating this. Your PC/laptop will hate you and be very slow. Just keep it in its Default view.
Step by step process:
- Set up the scene
- Delete the light (and camera if you want) and go to the geometry nodes panel.
- Set up the node process for the plane/ground part
- Click on the cube to then set up the geometry nodes (create new on top).
- Delete group input. We will keep Group Output.
- Nodes needed: Grid, position node, Set Position, Combine XYZ, Noise Texture, RGB Curves (for randomness of landscape), and a Vector Math node.
- Attach the Grid Mesh to the Set Position’s Geometry. Geometry to the output.
- We now need to add a Join Geometry node in between the Set position node and the Group Output node.
- For the Grid node, we can increase the size to however big we would want. 5×5 is pretty good. Can also change the vertex count to 500×500.
- Put Position from Position node into the top Vector for the Math Node (Add).
- Combine the lower vector of math (add) to the combine xyz.
- Combine the math node’s Vector to the Set Position’s Position node.
- Put the Noise texture node’s Fac in the Color section of the RGB curves node and the RGB node’s color goes into the Z Value of the Combine XYZ.
- Now for the values for the Noise texture node: First, set the Value to 4D from the 3D, Scale at 0.1 , Detail at 16, Roughness at .5 and Distortion at 2.
- Mess with the RGB curves and the Factor (fac) to create some height. If needed, change details or roughness in the Noise texture.
- If you want, add a Set Smooth Node in between the Joint Geometry and the Group Output. Just to smooth out the landscape.
- If you want to organize your node groups, put them in frames and label them accordingly.
- Once the ground is set up, we can then add a basic texture to it so we can see any changes that we made better. Later on you can then change this texture with the procedural dirt that we’ll make. To do this:
- Create a simple brown material in the Shader tab (or in the material tab, that would be faster).
- Now create a material node for the ground and set it right next to the Set Position Node (inside the frame if you have that).
- Insert the material you made. Boom.
- Adjust the ground size as to how we would want it. For now we can have it at a nice 10×10. You can change it to however you want it though, no judgment.

Now for the Assets
- Now it is time to work on the assets themselves that Andrew made from a different tutorial. Go check it out first if you didn’t, you sillies. Then again you’re at this step right now, so you didn’t check it out first if you don’t have the assets. Stop everything and check it out now:
- From there we can add in these nodes: Distribute Points on Faces, Instance on Points, Scale Instances, Switch, and Random Value X2 (one for rotation and one for scale. Make sure rotation one is in Vector and the scale one is in Float).
- Drag in the collection that you want to work with. In this case, Crystals. Now for the crystal collections, it doesn’t matter how you have them grouped (color coded or size), just put them in a collection and drag it in with the nodes.
- In the Collection Info node for the crystals, click on Separate Children. If you also click on Reset Children, it only gives you one asset from the collection (or it does to me, so just leave it alone unless you want to mess with it).
- In Instance on Points, activate Pick Instance.
- Connect the Set Position’s Geometry (from ground) to the Distribute’s Mesh plug. Then connect Points to Points and Instance to Instance. Finally, connect the last Instance to the Switch (in case you don’t want to see these Crystals anymore). Then connect the Switch’s Output to the Join Geometry node.
- Connect the Switch’s Output to the Join Geometry Node.
- Double check that you have the Collection Info’s geometry connected to the Instance on Points’ Instance. If not, you won’t see any change to your scene.
- For the Random Value rotation, connect the Value to the Rotation in the Instances on Points node. Change Max’s values to this: 0.3, 0.3, 15.
- Now if you have your collections organized by color, the Random Value for the scale won’t really matter, because if you make the little crystals even smaller you would barely see them. If they are in terms of size, then we can use the Random Value (scale).
- Connect the Random Value’s Value to the Scale in Scale Instances and change the Min and Max sizes.
- Make a new frame for this stuff. Name it too.
- We do the same steps from before for the rest of the assets. Might as well just copy and paste the frames, but change the collection/asset node inside. Don’t do too much work.
- For any “man-made” assets (like cars or other junk), we might not need to use the min/max setting in the scaling node at all. Depends on what assets we want to use overall. I’ll provide a link to the car that I used for this tutorial. You can decide if you want more junk. Car: https://www.cgtrader.com/free-3d-models/vehicle/other/free-hd-photoscanned-rusting-car
- Change the seed for any of these assets if you want too.

Time for the Procedural Material (dirt)
- Before doing anything, make sure you have the Node Wrangler add-on enabled. Go to edit > preferences > add-ons. Type “node wrangler” and click on the box to checkmark it/enable it.
- Go into the shader tab and create a new material
- The Principle BSDF is going to be our base for the material. Don’t change anything on it 🙂
- Add a noise texture. This will be the color base.
- Add a texture coordinate and plug the object to the vector of noise texture.
- For the noise texture, you can change the scale to 6, detail to 15, and roughness to a .65.
- Plug the factor of the noise texture to the base color of the Principle BSDF
- Add a ColorRamp node to change the color of the dirt and put it in-between the noise texture and BSDF nodes. Change the white to a brown dirt color (CCB180).
- Add a new tab in the ColorRamp node to have another brown in there between the black and first brown. That one can be a different shade of brown (955E2F) Move the sliders around to your preference.

- Add a Voronoi texture and plug in the object from the texture coordinate to the Vector of the Voronoi texture and change the scale to 15 for more dots (these will be like little pebbles). You can change the scale later if you so choose.
- Change F1 to Smooth F1 for better looking dots if you want.
- Add another ColorRamp node and connect it to the Voronoi texture’s Distance. Bring the black slider in just a tad and the white slider in more.

- Add in a Mix Color node (go to the Color tab after Shift + A, do not search for it via typing) to combine the little dots to the main colors of the dirt. Plug in the colored ColorRamp to Color 2 and the Voronoi one to the factor of Mix Color node.
- The color for color 1 is the dots for Voronoi. You can change it to another dirt like color (855126).
- To make these dots bump out, use a Bump node and plug in the Color to the Height part of the Bump node, and the Normal to the Normal of the BSDF. You can make the dots pop in or out. If in, leave the bump node alone. If you want it out, click on the invert button. You can change anything within your preferences.

- If you want more detail, do these extra steps. If not, then you can stop here for the dirt and go on to END OF DIRT.
- Create another bump node and have it connect to the Brown ColorRamp’s color plug (Color to Height. Have this bump’s Normal to the original bump’s normal. Now you have the noise texture that has its own bumps. Even more detail! You can adjust anything in this bump to your own preference.

- Last thing that we want to add is some CRACKS, because it would just add to the desolate wasteland feel that we want.
- Add another Voronoi Texture node and connect it to the Texture map’s Object plug. Then add in another noise texture and shove it in between these guys.

- Change the Voronoi’s F1 to Distance to Edge and have the Noise settings as this: Scale to around 3.5, Detail to 16, Roughness to around 0.5. Ctrl + Shift + Click on the Voronoi to preview it. We have some cracks now, but a lot of them.

- To control this, we need another ColorRamp (crazy, I know). Add that bad boy in and plug it to the Voronoi’s Distance. Switch the black and white values, then adjust them to your preferences.
- Add another bump node (just duplicate the most recent one) and drop it in (turn of the invert). Connect the Color to the height of the new one and turn up the strength in the Bump node.

- Duplicate the previous Noise and Voronoi nodes. For the noise texture, connect it with the Texture Coordinate. Turn the scale down to a 2. Same for the Voronoi one. If you want thick cracks, skip the next mini step. If you want thinner cracks do the next mini step.
- Add another ColorRamp node and connect the Distance to the Fac. Move the white slider all the way to the left. Almost touching the black.
- Finally, we can connect them all together. Add one more bump node and have it to the right of the bumps. Plug the ColorRamp (cracks one) to the height and turn up the strength to a .5 or higher.

- If you want the cracks to be even more noticeable, add another Mix Color node in and have the ColorRamp connect to the Fac of it, and the original mix in Color 2. Make Color 1 an even darker brown (or black) to make it noticeable. Plug the Mix Color Results to the Roughness of the BSDF. If you want it wet looking, leave it. If not, add a ColorRamp and mess with the black on it to your preference.

End of Dirt. Last Things to Do
- Wow, we just went through the alphabet for dirt. Wild (unless you skipped the rest of the steps). Now if you want, drop a random human (or whatever sentient being you want) in. Now their world is destroyed and in despair. Nice (or not).
- Get some ice cream for celebrations.Or not if you’re lactose intolerant. Or hate ice cream. If you do, how dare you.
- If you want water though, more steps below (But why would you? You got dry dirt for land. Kind of inconsistent.
Sike, just lower the roughness on the dirt and then it will look kinda wet. If you used the ColorRamp from above, have the first slider be Black.
- If you want water though, more steps below (But why would you? You got dry dirt for land. Kind of inconsistent.
- In case you want some water, make another Grid node, then have it connect to the Join Geometry node. After that, have a Set position node in between them to have the water change position (like height). Add an xyz node for water level (and input it into the Offset section of the Set Position) add a value to plug into the Z input (again, for height/water level). If you want to take the water away at any time, just put a switch node at the front (near joint geometry), and have it on the false part. The switch, when checked will then take it away from view.
- To make sure that your water is the same size as your ground when you make things big/small, have some value nodes connected to the x’s and y’s of each. That way, if you change the value node’s number, it changes for both of them. Keeps things simple.

- Now for the water material. It’s pretty simple:
- Go into the shader tab and create a noise texture node and a bump node. Bump node is connected to the normal of the Principle BSDF and the noise texture is connected to the bumps Height part (Color to Height).
- You can adjust them to your heart’s desire.

- Now depending on if you like crystals/rock structures/cars (no judgment), being underwater, you’re done from here. If you don’t want them underwater, more steps for you!
- You’ll need: Position node, Separate XYZ node, Math node (less than), another Math node (subtract with clamp), and a Map Range node (with clamp).
- Connect Position to Vector, Z to Threshold, Value to upper Value, and Value to Value. Change the From Max Value to 2 and the To Max value to 1.
- Connect the Result to the Scale of the Instance on Points node.
- Finally, connect the Value from the Less Than math node to the Water level Value node.
- If by any chance you want objects to be only underwater, change the Less Than in the math node to Greater Than. It will do the opposite of the others and keep them below water.
Cool. Now you are done. Congrats!













