
Discover how procedural generation can be a useful tool and why manual steps matter before automation in weapon design. Walk through core processes in Blender to understand the workflow.
Evaluate the pros and cons of procedural weapon generation, from rapid asset creation and variation to curation challenges and reduced control, and compare pure, curated, and hybrid approaches.
Set clear goals before diving into Blender's procedural weapon generation, using pre-made parts and geometry nodes to assemble weapons, with automated Gltf 2.0 export for Godot via Python scripting.
Outline the first specification for blunt weapons as a two-part design with a common origin that snaps together, and prepare to build the geometry nodes and reference material in Blender.
Learn why references matter for weapon design, and practice quick sketching to compare mind's eye with reference images. Start gathering axe reference material to guide 3D modeling in Blender.
Use pureref to gather reference images on an infinite canvas, drag, drop, and paste images, annotate with draw tools, and organize notes and groups for procedural weapon generation workflows.
Block out two low-poly axe components in Blender 4.4—the handle and head—name them ax_handle and ax_head, and use edit mode, wireframe visibility, and auto mirror for symmetry.
Model three axes by creating an axe, scaling to about 90 cm, duplicating parts with shift-D, using grid snap, loop cuts, and the mirror modifier, then organize naming.
Assign and manage material slots for weapon parts in Blender, linking materials across axe heads and handles, and tune base color, metallic, and roughness for distinct finishes.
Unwrap each model with smart uv project to create unique uv maps for reliable Godot lighting, avoid overlapping uv maps, and prepare exports by applying modifiers and organizing export collections.
Export your Blender models to GLB using an export collection, test in Godot 4.4, manage transforms, apply modifiers, and organize objects for easy parenting.
Explore the pros and cons of procedural generation and plan automating steps after geometry nodes practice. Apply procedural generation to axes and other weapons in the next section.
Explore geometry nodes to assemble axes and instance axe heads on handles. Generate randomness and follow the Blender export workflow, using Python scripting to automate parts of the process.
Master origin manipulation in Blender by using the 3D cursor to set origins at the mounting point, aligning axes, and ensuring proper parented behavior for weapons.
Explore geometry nodes in Blender by creating a simple node graph with a cube and cone, learning group inputs, sockets, and joining geometry, while organizing with frames and node wrangling.
Learn to build a procedural axe generator by instancing objects on points in Blender 4.4, using geometry nodes like instance on points, object info, and transform for customization.
Learn how to use the collection info node to organize ax handles and heads, center and align them, and drive separate instance on points for procedural weapon assembly.
Add randomness with the random value node to generate separate integers for the axe head and the axe handle, then expose the seed to drive pseudo random variation across permutations.
Rename the seed to random axe ID, set a default of zero with a max of 1000, and manage external input values through group inputs and sockets.
Arrange axes on a grid in Blender 4.4 to visualize permutations, using a grid primitive with per-instance randomness, then adjust camera and lighting for rendering.
Learn to generate a random seed using time in Blender. Drive frame-based randomness with hash frame or scene time, and balance geometry nodes with modifier stack for controlled updates.
Explore using an object's position as the random seed in Blender, converting 3D coordinates to a stable seed with math nodes, and separating seed control for animation-ready results.
Organize Blender geometry nodes by creating frames, grouping nodes, and naming group sockets. Use Node Wrangler to manage layouts, build reusable seeds and int generators, for scalable procedural weapon design.
Protect blender projects by using fake users to safeguard data blocks, materials, and geometry nodes from loss when saving and reopening, aided by the shield icon.
Use Blender Python scripting to generate a random seed for geometry nodes with bpy and randrange, update the node's random id, and print results to the console.
Learn to export procedurally generated random axes from Blender 4.4 by realizing instances and applying modifiers, converting to real geometry for gltf exports and Godot validation.
Conclude the section by reinforcing careful workflows in Blender, noting that modifiers and export steps can fail or lose materials, and propose speeding exports with Python scripting to batch assets.
Automate in Blender by iterating seeds and exporting models after manually running the steps to understand the process, using a script that interfaces with Blender and the operating system.
Explore the section's direction by writing a first-pass Python script for Blender, emphasizing clear code, concise comments, and incremental testing using the Blender API.
Explore essential resources for the Blender Python API, including the Blender Python manual and Python.org, plus pep8, W3Schools, Discord, and Stack Exchange.
Explore how to extract and reuse code in Blender's scripting workspace, using bpy data references, Python console tips, and context-aware scripting to drive procedural weapon generation.
Develop pseudocode to plan a Blender weapon generation workflow, outlining steps to apply modifiers, export gltf, generate and name weapons, and loop through multiple iterations with selection and revert logic.
Learn how to import and use Python modules in Blender, including bpy and the os.path submodule, guided by Python docs and practical searching for beginners.
Clear the Python console across Windows and Mac/Linux by using os.system with cls or clear. Use an if statement or a ternary operator to automate the behavior.
Find objects in Blender Python by name or index, understand zero-based indexing and out-of-range errors, and implement a single source of truth with object_name variables.
Learn to select a Blender object by name with Python, using BP data objects and context to set the active selected object.
Select the object, apply the geometry nodes modifier for the weapons generator in the modifiers tab, and test changes with a saved scene backup before proceeding to code-based automation.
Resolve the geometry node mess by creating a single point with a mesh line for the weapons generator in Blender 4.4, and ensure correct mode and naming.
Tidy your code to meet the 80-column rule, add a border and margin, and align the geometry nodes modifier name with the weapon generator using inline assignment.
Master Blender workflow for procedural weapon generation by saving, reverting, and preserving the weapon generator across runs; test random integers and manage geometry nodes modifiers.
Gain hands-on Blender Python automation by adding a named geometry nodes modifier called weapon generator, assigning the weapon generator node group, and applying the modifier through code.
Export a selected axe from Blender to gltf using Python, ensuring object mode, a focused export parameter set, and a valid target file path.
Learn to create a dedicated export folder with the OS module, construct a Blender GLB target path, and prepare automated looping to export multiple axes.
Implement a python for range loop in Blender to generate multiple weapon axes, using a configurable number of weapons, unique export names, and safe gltf exports.
Refactor your code by moving logic into a main function and reusable helper functions. Organize selection, deselect all, and export to gltf into clear functions.
Convert the AKS generator into a generic weapon generator by placing components at points with geometry nodes, exporting axes and handle positions with Python for assembly in a game engine.
Convert the AKS generator into a generic weapon generator by placing components at precise points with geometry nodes. Export axes and handle positions with Python for assembly in game engines.
Explore how to solve pommel placement and origin challenges in procedural weapon generation with Blender, using bounding boxes or empties to enable off-center positioning.
Position a pommel on a weapon using a bounding box in blender's geometry nodes, and explore vertex groups and empties as reference points.
We create a vertex group by selecting a vertex, assign it, and lock the group, then duplicate and name additional groups like pommel and blade for geometry nodes.
Position and instantiate weapon components on blades and pommels using vertex groups and named attributes in a Blender geometry nodes workflow, then refactor into reusable node groups for export.
Create empties in a collection named attachment points, name and parent them to the ax handle, and position them for export in the upcoming Python script.
Learn to create a new weapon component export script in Blender 4.4, avoid overwriting the old one, borrow code from existing scripts, set up export, and debug with print statements.
Learn to loop through objects in a Blender collection, access them by name or index, print their names, and select objects individually with Python scripting.
Iterate through each object and its children to print names and set selection for both levels. Use a nested for loop to handle varying numbers of children without crashes.
Export individual weapon components in blender by exporting the object and its children to a glb, then use a function for exporting parts for handles, blades, and pommels.
This bonus lecture demonstrates using a collections list to batch export weapon components in Blender, automating part exports and refactoring for easier maintenance and future format options.
You are ready to automate tasks in blender and generate hundreds of assets from this section and course. Share your progress on Discord or DM, and ask questions for support.
Want to generate hundreds of unique weapons at the click of a button?
This is the course for you.
Blender is an incredibly powerful tool, perfect for building game-ready 3D assets. In this course, you'll use Blender 4.4 alongside the free and open-source Godot game engine — although the techniques you learn will transfer easily to Unity, Unreal, or any engine of your choice.
You’ll learn:
When and why to use procedural generation
The core workflow for exporting to game engines
How to use Geometry Nodes to automatically assemble unique weapons
How to write a simple export script to save hours of manual work
What skill level is this course?
This is an intermediate-level course — but don’t let that scare you. Every concept is introduced clearly, and I talk through all the steps. If you’re completely new to Blender or 3D, you may find some parts challenging. But if you have any basic familiarity with Blender, you’ll be able to jump in and follow along.
Here’s how it works:
We start by manually building modular weapon parts and walking through the process to make sure your final exports work smoothly in-engine. Every time you learn a new technique, you'll:
Apply it immediately in a hands-on project
Be challenged to use the concept creatively
Be shown the full step-by-step build
Reuse and reinforce previous skills throughout
You’ll get lifetime access to the course and all project files, reference materials, and resources. Every lesson includes screencasts and talking-head videos to keep things clear and engaging.
Built for the Blender 4.4 workflow
The course content is now fully updated for Blender 4.4, so you’ll be learning with the most recent tools and improvements. You’ll be using the latest Geometry Nodes workflows and Blender features as we build procedural assets ready for export.
Community & Support
You’ll also get access to our private community site where you can share your creations and ask questions, plus our active Discord server for live support and student chat.
Let’s hop into Blender 4.4 and start creating!