# Shaderverse from scratch - how to generate 3D NFTs in Blender Yo yo I'm [Aidan](https://twitter.com/aidan_wolf) I create augmented reality games and run AR House and I'm currently building a zelda-like RPG that adds sidequests to your real life โš”๏ธ๐Ÿ›ก I was curious to make generative swords for my players and luckily my favorite 3D tool Blender received a very special add-on just for this.. [Shaderverse](https://www.shaderverse.com)! ๐ŸŽจ **Here's the result of that experiment:** ![](https://i.imgur.com/YiCc1cp.gif) Now I'm going to teach you how it was done ๐Ÿ‘ฉโ€๐ŸŽจ ## Download Blender 3.1+ Shaderverse requires a new Blender feature called Geometry Nodes so you'll need the latest version https://www.blender.org/download ## Download Shaderverse Shaderverse is open-source and available via GitHub. Download the ZIP but don't unpack it, Blender will import the ZIP https://github.com/shaderverse/shaderverse ## **Importing Shaderverse into Blender** 1. Import the zip file into Blender **Edit > Preferences > Add-ons > Install** ![](https://i.imgur.com/Ks3HatM.png) 2. Select the Shaderverse ZIP, most likely in your Downloads folder and hit **Install Add-on** ![](https://i.imgur.com/AlAdMSS.png) 3. Make sure in the Add-ons panel Shaderverse is installed and the checkbox is toggled to โœ… ![](https://i.imgur.com/ncdYXuh.png) 4. You'll now see a Shaderverse tab on the sidebar of the 3D View >If you don't see the sidebar, press the N key ![](https://i.imgur.com/Lc9f4w3.png) If Shaderverse is visible in the sidebar, congratulations you've just learned how to install Blender Add-ons ๐Ÿ‘๐Ÿ‘๐Ÿ‘ ## **Preparing models for generation** If you feel tempted to hit the **Generate NFT** button you'll surely see an error. That's because we haven't set up our 3D assets yet! ![](https://i.imgur.com/sOYMUCj.jpg) To get started we'll add some basic Blender shapes. Imagine these shapes are the variety of face shapes of say a Bored Ape NFT. **Go to 3D View > Add > Sphere** ![](https://i.imgur.com/CWl4W6K.png) **Go to 3D View > Add > Cone** ![](https://i.imgur.com/F3ADhVd.png) Hit the Wireframe view button to see all the objects you just added ![](https://i.imgur.com/XAJuMJT.png) ## **Setting up NFT attributes** Now we'll figure out how to make our NFT decide to be a Box, Cone, or Sphere so first we must set up our attribute "Shape" 1. Create a new collection and call it Attributes **Outliner > Right Click > New Collection** **Double Click Collection > Change name to Attributes** > **Collections** are basically just groups or folders. You can store objects in your scene in them. Shaderverse uses them to organize the 3D objects that will go into our NFTs ![](https://i.imgur.com/NTuTS6o.png) 2. Create another collection and call it Shape 3. Make sure the Shape collection is within the Attributes collection 4. Drag your Cube, Sphere, and Cone objects into your new Shape collection It should look like this when you're done! A Box, Cone, and Sphere within a Shape collection within an Attributes collection ![](https://i.imgur.com/F7XnsNi.png) Here's a GIF of the whole process ![](https://i.imgur.com/1CzJNg2.gif) Now your objects are ready for Shaderverse! Again, think of these basic shapes as the headshape of your generative Bored Ape NFT ๐Ÿต ## **Setting up the NFT object** When we generate the NFT, the data from our Attribute collections will be applied to an arbitrary object. We need to create those objects first to receive our attributes. Really just adding a couple of cubes with the right names 1. Add a cube (**3D View > Add > Cube**) 2. Name the cube MainNode 3. Add a cube (**3D View > Add > Cube**) 4. Name the cube Shape 5. In the shaderverse panel, select the eyedropper next to Main Geometry and select the MainNode Cube we just created ![](https://i.imgur.com/UuSThTP.png) ## **Setting up the geometry nodes** The geometry node is what enables the random generation of our NFT. In this simple case, it will decide whether our NFT 'Shape' is a Box, Cone, or Sphere 1. Go to the top bar and select Geometry Nodes. You'll see the entire Blender UI change and a new window called Geometry Node Editor will become available at the bottom ![](https://i.imgur.com/hLmZ02L.png) 2. select the MainNode object we just created 3. In the Geometry Node Editor, hit New ![](https://i.imgur.com/rLptfTi.png) 4. In the Geometry node sidebar, hit Group >If you don't see the sidebar, press the N key ![](https://i.imgur.com/faoinsE.png) 4. In the Inputs panel, press [+] to add an input, name it Shape (to match the Collection we just made) and switch Type to Object ![](https://i.imgur.com/1w3Owoh.png) 5. Drag away the connection to remove the connection between Group Input and Group Output ![](https://i.imgur.com/6T9UjM9.png) It should look like this when you're done ![](https://i.imgur.com/iFzvw1J.png) ***..Now we'll repeat a similar process for Shape..*** 1. select the Shape object we just created 2. In the Geometry Node editor window, hit New ![](https://i.imgur.com/OGL9GLg.png) 3. In the Inputs panel, press [+] to add an input, name it Shape (to match the Attribute collection) and switch Type to Object ![](https://i.imgur.com/1w3Owoh.png) 4. Now we need to add a new node called Object Info **Add > Input > Object Info** ![](https://i.imgur.com/zAR2MZs.png) 5. Drag the Object Info node between our existing nodes and click to confirm. You'll see the Group output will automatically connect to the Object Info node ![](https://i.imgur.com/5UQTM1m.png) 6. Connect the Shape input we created to the Object input in the Object Info node 7. Switch from Original to Relative ![](https://i.imgur.com/0XuijD0.png) ## **IT'S READY!!!!! ๐ŸŽ‰** Hide the attributes collection by clicking the ๐Ÿ‘ icon. The 3D scene view should now look empty ![](https://i.imgur.com/PD1GMTj.png) โœจ๐Ÿงจ***Hit that Generate NFT button!*** ๐Ÿ™๐Ÿ›  Instead of an error you should see an object appear in the 3D scene view and the Shape attribute metadata update to reflect the current shape. Hit it a few times to see it toggle between a Box, Cone, or Sphere ![](https://i.imgur.com/9Lf2lUJ.png) ## **What now?** You can see my sword generator is just more of the same of what you just learned. I have all my generative attributes (blade, handle, etc.) broken into Attributes and for each attribute there's a Collection of models, a Geometry Node, and an object to receive the attribute ![](https://i.imgur.com/7KUBhfV.jpg) You can create as many attributes as you'd like so imagine for an avatar you can repeat this process to choose a random face shape, eye color, hair type, or accessory. Each of these qualities is just another attribute and a collection of 3D objects You can also decide how rare a specific attribute is by changing the rarity setting! This applies to an attribute in general (Headware) as well as the individual model (Crown) ![](https://i.imgur.com/tia9ggq.png) ## **SHOW OFF!** ๐ŸŽ‰ If you create something with shaderverse send a link to [@aidan_wolf](https://twitter.com/aidan_wolf) and I'll post it right here: [Your shaderverse project here] [Your shaderverse project here] [Your shaderverse project here] *Hopefully this tutorial was helpful to get you started with generative 3D NFTs!!* ๐Ÿ’ก๐Ÿ™‡โ€โ™‚๏ธโœจ