3d asset pipeline non artists
Guide for 3d asset pipeline non artists
3D Asset Pipeline for Non-Artists
Zero 3D Experience Required - For Software Engineers
Your Advantage: You think in systems, pipelines, and automation.
Your Challenge: You've never touched Blender and don't want to.
Solution: Treat 3D like a DevOps problem - use existing assets + automated tools.
šÆ Your Situation
- ā 2D covered (Gemini AI Pro + Antigravity for icons/sprites)
- ā 3D is the problem
- ā Full-stack engineer mindset
- ā Zero 3D modeling skills
- ā Don't want to learn Blender
Strategy: Use 100% pre-made/AI-generated 3D assets with minimal manual intervention.
š The No-Experience 3D Pipeline
Phase 1: Free Asset Packs (90% Solution) - Week 1
These are literally drag-and-drop into Bevy:
š Top Pick: Quaternius (Best for your needs)
- URL: https://quaternius.com/packs.html
- License: CC0 (completely free, no attribution)
- Why perfect for you:
- ā Already rigged and animated
- ā GLB/GLTF format (Bevy-ready)
- ā Consistent low-poly style
- ā Just download ā drag to assets folder ā done
What to Download:
- "Ultimate Modular Characters"
- Your player, NPCs, enemies
- Mix-and-match parts (no modeling needed)
- Includes walk, idle, attack animations
- Action: Download, extract to
assets/models/characters/
- "Ultimate Fantasy Weapons"
- Swords, axes, bows for your game
- Action: Download, pick 5-10 weapons
- "Ultimate Low Poly Dungeon"
- Buildings, props, furniture
- Use for furnaces, anvils, shops
- Action: Download, cherry-pick what you need
- "Ultimate Nature"
- Trees, rocks, plants
- Your environment solved
- Action: Download entire pack
Week 1 Checklist:
cd ~/Downloads
# Download packs from quaternius.com
mkdir -p ~/Documents/loh/loh-game/assets/models/{characters,props,environment}
# Extract and copy GLB files to respective foldersEstimated Time: 2-3 hours to download, organize, and test one asset in Bevy
Alternative: Kenney.nl (Also great)
- URL: https://kenney.nl/assets
- Similar to Quaternius but more variety
- Download: "City Kit", "Racing Kit", "Platformer Kit"
- Use for buildings and environment props
Phase 2: AI-Generated 3D (For Custom Needs) - Week 2
Since you're not learning Blender, use AI to generate 3D models from text/images:
š¤ Option A: Meshy.ai (Recommended)
- URL: https://www.meshy.ai
- Cost: FREE tier (200 credits) ā ~20 models
- Zero 3D skills needed
Workflow (5 minutes per model):
1. Go to meshy.ai
2. Text-to-3D tab
3. Type: "low poly furnace, game asset, simple geometric, stylized"
4. Click Generate (wait 2 minutes)
5. Download as GLB
6. Drop in Bevy ā doneWhat to Generate with Meshy:
- Furnace (skill interaction)
- Anvil (skill interaction)
- Cooking range (skill interaction)
- Farm patch (skill interaction)
- Any custom prop you need
Pro Tips for Meshy:
Good prompts:
ā
"low poly medieval anvil, game asset, simple"
ā
"fantasy furnace, stylized, game prop, geometric"
ā
"fishing spot, low poly water, game environment"
Bad prompts:
ā "realistic anvil" (too detailed)
ā "anvil" (too vague)
ā "photorealistic furnace" (not game-ready)Meshy Free Tier Strategy:
- 200 credits = ~20 models
- Use for custom props Quaternius doesn't have
- Generate several variations, pick best
- Re-generate if needed (it's free)
š¤ Option B: Rodin AI
- URL: https://hyperhuman.deemos.com/rodin
- Alternative to Meshy
- Sometimes better results for characters
- Also has free tier
š¤ Option C: CSM.ai (Image-to-3D)
- URL: https://www.csm.ai
- Upload reference image ā get 3D model
- Good if you have specific reference images
Workflow:
1. Use Gemini to generate reference image of Indian temple anvil
2. Upload to CSM.ai
3. Get 3D model
4. Download GLBPhase 3: Blender Automation (If you must) - Week 3-4
If you need to modify something, here's the minimal Blender knowledge:
Install Blender (5 minutes)
# Ubuntu/Debian
sudo snap install blender --classicOnly Learn These 5 Operations:
- Import Model
File ā Import ā glTF 2.0 (.glb) - Scale/Move
Press S (scale), type number, Enter Press G (move), drag mouse, click - Change Color
Select object ā Material Properties tab ā Base Color - Export
File ā Export ā glTF 2.0 (.glb) Check: "Apply Modifiers", "Export Materials" - Simple Modifications via Add-ons
Install "Easy Assets" add-on One-click to batch process models
That's it. You don't need to model, just modify existing assets.
Blender Automation Script (Optional)
Since you're a software engineer, automate repetitive Blender tasks:
# batch_export.py - Run in Blender's scripting tab
import bpy
import os
# Auto-export all objects as separate GLB files
for obj in bpy.data.objects:
if obj.type == 'MESH':
# Select only this object
bpy.ops.object.select_all(action='DESELECT')
obj.select_set(True)
# Export
filepath = f"/path/to/output/{obj.name}.glb"
bpy.ops.export_scene.gltf(filepath=filepath, use_selection=True)
print("Batch export complete!")Run from command line:
blender -b scene.blend --python batch_export.pyPhase 4: Mixamo (Free Character Animation) - Week 2
For character animations without touching Blender:
Mixamo Workflow (10 minutes per character)
- Go to https://www.mixamo.com (free Adobe account)
- Upload character model (.fbx or .obj)
- Auto-rig with one click (AI does it)
- Pick animations: Idle, Walk, Run, Attack
- Download with "In Place" option
- Convert FBX to GLB using online converter
- Drop in Bevy
Pre-rigged Character Sources:
- Quaternius models already rigged ā skip Mixamo
- If using Meshy-generated character ā use Mixamo
Animations Needed for Vertical Slice:
- Idle (standing, slight breathing)
- Walk (movement)
- Gather (mining, woodcutting, fishing)
- Attack (combat)
š ļø Your 3D Toolchain (Software Engineer Edition)
Required Tools (All Free)
1. Quaternius Asset Packs ā Pre-made models
2. Meshy.ai (Free tier) ā AI 3D generation
3. Mixamo (Free) ā Character rigging/animation
4. Blender (Optional) ā Minor tweaks only
5. Bevy Asset Server ā Asset loadingOptional Tools
6. https://products.aspose.app/3d/conversion ā FBX to GLB converter
7. https://gltf.report ā Validate GLB files
8. https://threejs.org/editor/ ā Preview 3D models in browserš Recommended File Structure
loh-game/assets/
āāā models/
ā āāā characters/
ā ā āāā quaternius/
ā ā ā āāā warrior_idle.glb
ā ā ā āāā warrior_walk.glb
ā ā ā āāā warrior_attack.glb
ā ā āāā custom/
ā ā āāā player_character.glb
ā āāā props/
ā ā āāā quaternius/
ā ā ā āāā lantern.glb
ā ā āāā meshy/
ā ā āāā furnace.glb
ā ā āāā anvil.glb
ā ā āāā cooking_range.glb
ā āāā environment/
ā āāā quaternius_nature/
ā ā āāā tree_oak.glb
ā ā āāā rock_01.glb
ā āāā tiles/
ā āāā grass_tile.glb
āāā scripts/
āāā asset_pipeline/
āāā validate_gltf.sh
āāā batch_convert.pyšÆ Your 7-Day 3D Asset Sprint
Day 1: Setup & Download (2 hours)
# Download Quaternius packs
curl -O https://quaternius.com/assets/ultimate-modular-characters.zip
curl -O https://quaternius.com/assets/ultimate-nature.zip
# Extract to assets folder
unzip ultimate-*.zip -d ~/Documents/loh/loh-game/assets/models/Day 2: Test in Bevy (3 hours)
// Test asset loading
fn setup(
mut commands: Commands,
asset_server: Res<AssetServer>,
) {
let model = asset_server.load("models/characters/quaternius/warrior.glb#Scene0");
commands.spawn(SceneBundle {
scene: model,
..default()
});
}Day 3-4: AI Generation (4 hours)
- Generate 5 custom props with Meshy
- Test each in Bevy
- Keep what works, regenerate if needed
Day 5: Character Setup (3 hours)
- Pick Quaternius character
- Test walk/idle animations
- Create 3 color variants (player, guard, enemy)
Day 6: Environment (2 hours)
- Place Quaternius trees/rocks
- Test scene composition
- Adjust lighting
Day 7: Polish (2 hours)
- Fix any import issues
- Validate all GLTFs
- Document asset sources
Total Time: ~18 hours over 7 days
šØ Troubleshooting (Common Issues)
"Model imports but is all black"
// Add light to scene
commands.spawn(PointLightBundle {
point_light: PointLight {
intensity: 1500.0,
..default()
},
..default()
});"Model is huge/tiny"
// Scale in Bevy, not Blender
transform: Transform::from_scale(Vec3::splat(0.1)), // or 10.0"Animations don't play"
// Load animation specifically
let animation = asset_server.load("model.glb#Animation0");"Textures missing"
- Use GLB not GLTF (GLB embeds textures)
- Ensure texture files are in same folder
- Check
gltf.reportfor validation
š° Cost Breakdown
Free Option (Recommended for Vertical Slice)
- Quaternius packs: $0
- Kenney packs: $0
- Meshy.ai free tier: $0 (200 credits)
- Mixamo: $0
- Total: $0
Paid Option (For polish)
- Meshy.ai Pro: $16/month (unlimited generations)
- Fiverr character commission: $50-100 (one-time)
- Total: $50-116
Recommendation: Start with free tier, upgrade only if you hit limits.
šÆ Minimum Viable 3D Assets (Vertical Slice)
Must Have (Can't demo without):
- ā Player character (Quaternius warrior)
- ā 1 NPC (Quaternius character, recolored)
- ā 1 Enemy (Quaternius character, different color)
- ā 3 Skill props (Meshy: furnace, anvil, fishing spot)
- ā Ground tile (Quaternius or simple plane)
- ā 3 Trees (Quaternius nature pack)
- ā 2 Rocks (Quaternius nature pack)
All available from free sources above.
š§ Bevy Integration Helpers
Asset Loading Helper
// assets/scripts/asset_loader.rs
pub struct AssetPack {
pub characters: HashMap<String, Handle<Scene>>,
pub props: HashMap<String, Handle<Scene>>,
pub environment: HashMap<String, Handle<Scene>>,
}
impl AssetPack {
pub fn load_all(asset_server: &AssetServer) -> Self {
let mut pack = AssetPack::default();
// Load characters
pack.characters.insert(
"warrior".into(),
asset_server.load("models/characters/quaternius/warrior.glb#Scene0")
);
// Load props
pack.props.insert(
"furnace".into(),
asset_server.load("models/props/meshy/furnace.glb#Scene0")
);
pack
}
}GLTF Validation Script
# scripts/validate_gltf.py
import os
import json
import glob
def validate_gltf(filepath):
"""Check if GLTF has required fields"""
with open(filepath) as f:
data = json.load(f)
if 'scenes' not in data:
print(f"ā {filepath}: No scenes!")
return False
print(f"ā
{filepath}: Valid")
return True
for gltf in glob.glob("assets/**/*.gltf", recursive=True):
validate_gltf(gltf)ā Next Actions (Start Today)
- Download Quaternius "Ultimate Modular Characters" (15 min)
- https://quaternius.com/packs.html
- Extract to
assets/models/characters/
- Test one character in Bevy (30 min)
let model = asset_server.load("models/characters/warrior.glb#Scene0"); - Sign up for Meshy.ai free tier (5 min)
- Generate your first prop (furnace)
- Create asset manifest (15 min)
# 3D Assets TODO - [x] Player character (Quaternius warrior) - [ ] Guard NPC (Quaternius, recolor) - [ ] Furnace (Meshy AI) - [ ] Anvil (Meshy AI) ...
Total time today: ~1 hour to have your first 3D asset in-game
š Learning Resources (Optional)
If you want to learn just enough Blender:
- "Blender Guru - Donut Tutorial Part 1" (1 hour)
- Learn interface basics
- Skip modeling parts
- Focus on import/export only
Understanding GLTF:
- https://www.khronos.org/gltf/
- Know the difference: GLB (binary, embedded) vs GLTF (text, external)
- Always use GLB for Bevy (simpler)
š” Pro Tips for Software Engineers
- Version Control 3D Assets
# Use Git LFS for large files git lfs track "*.glb" git lfs track "*.png" - Automate Asset Pipeline
# Create Makefile for asset processing # make assets ā auto-convert, validate, copy - Asset Loading as Code
// assets/manifest.toml (parse at startup) [characters] player = "models/characters/warrior.glb#Scene0" guard = "models/characters/guard.glb#Scene0" - CI/CD for Assets
- GitHub Action to validate all GLB files
- Auto-check file sizes (warn if >5MB)
- Lint asset folder structure
šÆ TL;DR - Your 3D Pipeline
2D Assets: ā
Gemini AI Pro + Antigravity (covered)
3D Assets:
āā Characters ā Quaternius (free, rigged, animated)
āā Environment ā Quaternius Nature pack (free)
āā Custom Props ā Meshy.ai (free tier, AI generation)
āā Animations ā Included with Quaternius OR Mixamo (free)
Total Cost: $0
Total Learning: 2-3 hours (Bevy integration)
Total Blender: 0 hours requiredYou'll have a complete 3D vertical slice without touching 3D modeling software.
Want me to:
- Generate Meshy.ai prompts for your specific props?
- Create the Bevy asset loading code?
- Set up the automated validation pipeline?
- Generate a detailed asset manifest for your game?