How to make procedural Blender rocks for Factorio ore sprites?
How to make procedural Blender rocks for Factorio ore sprites?
The question is exactly what is in the topic: How to make procedural Blender rocks for Factorio ore sprites?
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
I can help with this!
Do you have experience with Shader Nodes and/or geometry nodes in Blender?
The short version is:
Step 1: set up camera to be orthographic at a 45 degree angle, add some lighting and create a ground plane set to "shadow catcher"
Step 3: Add a UV sphere to be a Rock, and create Shader Node that adds random displacement
Step 4: Add a circle to spawn rocks on, and create a Geometry Node that adds instances of your rock to the circle, with random position, size, rotation etc.
Step 5: Animate your Geometry Node so it goes from low richness to high richness over 64 frames. (I usually change the scale of the instances)
Step 6: render your animation into individual frames, and convert those frames into a SpriteSheet.
Feel free to DM me, I'm happy to help!
Do you have experience with Shader Nodes and/or geometry nodes in Blender?
The short version is:
Step 1: set up camera to be orthographic at a 45 degree angle, add some lighting and create a ground plane set to "shadow catcher"
Step 3: Add a UV sphere to be a Rock, and create Shader Node that adds random displacement
Step 4: Add a circle to spawn rocks on, and create a Geometry Node that adds instances of your rock to the circle, with random position, size, rotation etc.
Step 5: Animate your Geometry Node so it goes from low richness to high richness over 64 frames. (I usually change the scale of the instances)
Step 6: render your animation into individual frames, and convert those frames into a SpriteSheet.
Feel free to DM me, I'm happy to help!
Re: How to make procedural Blender rocks for Factorio ore sprites?
Thanks very much for your help!
I've found out most of that by watching some guides on Geometry Nodes on Youtube. But there is a thing that I can not solve and it seems like there is no guides on such topic: How could I make different variations of rocks in each instance? How could I distribute rocks over the surface procedurally, while keeping them in appropriate distance (without overlaping)?
I've attached my .blend file to the reply. I would greatly appreciate your help.
P.S. I know, that none will hardly look at my low resolution ore texture in a futile attempt to figure out what kind of a nearly 4k rock model was used during rendering of this sprite - the single one, or many procedurally generated variations, but I do it more out of curiosity and to develop my own skills than to improve the appearance of the final product.
I've found out most of that by watching some guides on Geometry Nodes on Youtube. But there is a thing that I can not solve and it seems like there is no guides on such topic: How could I make different variations of rocks in each instance? How could I distribute rocks over the surface procedurally, while keeping them in appropriate distance (without overlaping)?
I've attached my .blend file to the reply. I would greatly appreciate your help.
P.S. I know, that none will hardly look at my low resolution ore texture in a futile attempt to figure out what kind of a nearly 4k rock model was used during rendering of this sprite - the single one, or many procedurally generated variations, but I do it more out of curiosity and to develop my own skills than to improve the appearance of the final product.
- Attachments
-
- Ore V2.7z
- Blender 3D Model
- (107.99 KiB) Downloaded 15 times
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
I see the problem. Instances are designed to re-use the same geometry multiple times to speed up processing time. You can't have unique procedural rocks the way these nodes are set up.
If you want truly random rocks, here's a few possible solutions:
1) Instead of making a rock from scratch and then instancing it, you could set-up the geometry nodes to turn each point into a new rock directly.
2) you could use a shader node to turn the sphere into a rock shape, instead of a geometry node. Shaders can be unique across instances
if you want a quick cheat, here's what I did:
step 1) make a new collection, and copy/paste your stone objects a few times (as many as you want)
step 2) adjust the settings of each stone copy so they are unique from each other
Step 3) within the plane, Replace the "Ore V2 Geometry Node" with a "collection Info" node, and select "pick instances"
Now there's a few different rocks for the plane to choose from, so it's a bit harder to tell when they repeat.
As for your second problem, that's an easy fix. Just use Poisson Disk instead of Random here: That lets you set a minimum distance between rocks
I think it looks pretty good! I attached the blender file too
Hope that helps!
If you want truly random rocks, here's a few possible solutions:
1) Instead of making a rock from scratch and then instancing it, you could set-up the geometry nodes to turn each point into a new rock directly.
2) you could use a shader node to turn the sphere into a rock shape, instead of a geometry node. Shaders can be unique across instances
if you want a quick cheat, here's what I did:
step 1) make a new collection, and copy/paste your stone objects a few times (as many as you want)
step 2) adjust the settings of each stone copy so they are unique from each other
Step 3) within the plane, Replace the "Ore V2 Geometry Node" with a "collection Info" node, and select "pick instances"
Now there's a few different rocks for the plane to choose from, so it's a bit harder to tell when they repeat.
As for your second problem, that's an easy fix. Just use Poisson Disk instead of Random here: That lets you set a minimum distance between rocks
I think it looks pretty good! I attached the blender file too
Hope that helps!
- Attachments
-
- Ore V2-Gizzmohammer.zip
- (214.06 KiB) Downloaded 9 times
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
got a little carried away, added a shader and animation to it as well
- Attachments
-
- 08-30-2025, 21-04-34.png (48.83 KiB) Viewed 347 times
-
- Ore V2-with-shader.zip
- (240.39 KiB) Downloaded 11 times
Re: How to make procedural Blender rocks for Factorio ore sprites?
Thank you very much for your help!
I don't think I could have done it without your help.
Could you please tell me more about:
I don't think I could have done it without your help.
Could you please tell me more about:
.set-up the geometry nodes to turn each point into a new rock directly
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
The basic idea is that you can read and write the attributes of points (like radius, location etc) directly.
So instead of creating instances on the points, you would read the location of each point and move the rock there with a transform node, along with a random scale, rotation etc.
By reading the location of multiple points, the geo node should repeat the rock node multiple times instead of re-using the same rock.
Then use a join geometry node to combine all the rocks into one mesh
I'm away from my computer, and I haven't tested that tho. If it works, it's going to be a lot slower because you lose the speed benefits of instancing.
So instead of creating instances on the points, you would read the location of each point and move the rock there with a transform node, along with a random scale, rotation etc.
By reading the location of multiple points, the geo node should repeat the rock node multiple times instead of re-using the same rock.
Then use a join geometry node to combine all the rocks into one mesh
I'm away from my computer, and I haven't tested that tho. If it works, it's going to be a lot slower because you lose the speed benefits of instancing.
Re: How to make procedural Blender rocks for Factorio ore sprites?
Thank you for explaining your idea. I believe I understand the concept, but I don't know how to realize it in Geometry Nodes. I genuinely don't understand what nodes should I use to place procedural rocks on the points. Could you please share your solution when you have a moment?
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
There's probably better ways to do it, but this is what I did:
I used a repeating loop.
Each loop I select the next point, generate a new rock, move that rock to the point (along with random scale/rotation) and then add that rock to the geometry.
Blender file attached
I used a repeating loop.
Each loop I select the next point, generate a new rock, move that rock to the point (along with random scale/rotation) and then add that rock to the geometry.
Blender file attached
- Attachments
-
- Ore V2 Fully Random.zip
- (153.69 KiB) Downloaded 11 times
Re: How to make procedural Blender rocks for Factorio ore sprites?
Thanks, I truly appreciate your invaluable help!
I have the very last question: where did you learn how to create such complex models? Could you recommend any useful tutorials, books or other sources about modeling in Blender?
I have the very last question: where did you learn how to create such complex models? Could you recommend any useful tutorials, books or other sources about modeling in Blender?
-
- Burner Inserter
- Posts: 18
- Joined: Wed May 07, 2025 1:55 am
- Contact:
Re: How to make procedural Blender rocks for Factorio ore sprites?
No worries! Happy to help
Best tutorials I've found are from CGMatter on YouTube. He taught me everything I know about shader nodes

Best tutorials I've found are from CGMatter on YouTube. He taught me everything I know about shader nodes