AI-powered CAD generator that produces assembly-aware 3D models as discrete, labeled parts โ not a single mesh blob. Powered by AMD MI300X with Qwen3-8B.
AMD AI Developers Hackathon 2026 ยท Oryxenlab
Most AI-to-3D tools output a single undifferentiated mesh. Voxen is different: it generates assembly-aware models where every part is named, dimensioned, material-annotated, and independently exportable. The result is a model you can actually use in downstream CAD workflows โ not just a blob to look at.
The system accepts a natural language description, runs it through an LLM agent on AMD MI300X, validates the output with Zod, and renders each part as a distinct 3D object with full interactive inspection.
- ๐ฏ Part-aware Generation โ LLM generates each component as a separate object with name, dimensions, and material
- ๐ฑ๏ธ Interactive 3D Inspection โ Click any part to isolate it; others fade to wireframe
- ๐ค CAD-ready Export โ Export as STL, OBJ, or STEP for use in Fusion 360, Blender, SolidWorks
- ๐ฎ Free Camera Controls โ Orbit, zoom, and quick-view presets (Front/Top/Side/Iso)
- โ Zod Validation โ All AI outputs validated before rendering
- โก AMD MI300X Powered โ Fast inference on cutting-edge GPU hardware
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 (App Router) | Server & client rendering |
| Language | TypeScript | Type-safe development |
| UI Library | Shadcn UI | Component library |
| Styling | Tailwind CSS | Utility-first styling |
| 3D Rendering | React Three Fiber (R3F) | React renderer for Three.js |
| 3D Helpers | @react-three/drei | Edges |
| Validation | Zod | JSON schema validation |
| AI Backend | Flask (Python) | API server |
| ML Framework | PyTorch | LLM Fine-tuning & model optimization |
| Base Model | Qwen 3 8B | Foundation model for structured CAD generation |
| LLM Server | vLLM | High-throughput model serving |
| Hardware | AMD MI300X | GPU acceleration for training and inference |
| Auth | Clerk | Authentication & user management |
| Hosting | Vercel | Frontend deployment |
| VCS | GitHub | Source control |
Client (Browser)
โ
Next.js 16 Frontend โโ Clerk (Auth)
โ
Flask API (Python)
โ
Qwen3-8B on AMD MI300X
โ generates
Zod-validated JSON (parts + metadata)
โ
React Three Fiber renders parts + Dashboard
โ
Export STEP / STL / OBJ
Data flow: User prompt โ Flask receives request โ Qwen3-8B generates structured part JSON โ Zod validates schema โ response sent to frontend โ R3F renders each part as a discrete mesh โ user inspects/exports individual parts.
voxen/
โโโ src/
โ โโโ app/ # Next.js 16 app router
โ โ โโโ (auth)/ # Clerk-protected routes (sign-in, sign-up)
โ โ โโโ (public)/ # Public landing page
โ โ โโโ (workspace)/ # Main 3D CAD viewer and workspace
โ โ โโโ layout.tsx
โ โโโ components/
โ โ โโโ home/ # Landing page sections (Hero, Mockup, Features)
โ โ โโโ workspace/ # Generator page
โ โ โโโ viewer/ # R3F canvas + controls (SceneCanvas, GearCanvas)
โ โ โโโ ui/ # Shadcn UI components & animations
โ โโโ lib/
โ โ โโโ schemas/ # Zod schemas for part JSON
โ โ โโโ api/ # API wrappers
โ โ โโโ export/ # STL / OBJ / STEP exporters
โ โโโ types/ # TypeScript types from Zod
โโโ backend/ # Flask AI agent
โ โโโ app.py
โ โโโ agent/
โ โ โโโ llm_client.py # Qwen3-8B on AMD MI300X via vLLM
โ โ โโโ prompt_builder.py
โ โโโ validators/
โ โโโ assembly_schema.py # Pydantic mirror of Zod schema
โโโ __tests__/ # Vitest + React Testing Library
- Node.js 20+
- Python 3.11+
- Clerk account
- AMD MI300X endpoint (or OpenAI-compatible vLLM server)
# Clone repository
git clone https://github.com/oryxenlab/voxen.git
cd voxen
# Install frontend dependencies (using pnpm)
pnpm install
# Install backend dependencies
cd backend
pip install -r requirements.txt
cd ..Create .env.local in project root:
# Clerk Auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
CLERK_SECRET_KEY=sk_...
# Flask Backend
FLASK_API_URL=http://localhost:5000
# AMD MI300X / Qwen3
LLM_API_BASE_URL=https://your-mi300x-endpoint
LLM_API_KEY=your_api_key
LLM_MODEL=Qwen/Qwen3-8B-InstructSee .env.example for detailed comments on each variable.
# Terminal 1 โ Frontend
pnpm dev
# Terminal 2 โ Backend
cd backend
python app.pyFrontend: http://localhost:3000
Backend: http://localhost:5000
# Run all tests
pnpm test
# Backend tests
cd backend && pytestEvery model the AI generates is validated against this schema before being sent to the renderer:
import { z } from 'zod'
const PartSchema = z.object({
id: z.string(),
name: z.string(),
color: z.string().regex(/^#[0-9A-Fa-f]{6}$/),
geometry: z.object({
type: z.enum(['box', 'cylinder', 'sphere', 'custom']),
dimensions: z.object({
width: z.number().positive(),
height: z.number().positive(),
depth: z.number().positive(),
}),
position: z.object({ x: z.number(), y: z.number(), z: z.number() }),
}),
material: z.object({
name: z.string(),
description: z.string(),
}),
designIntent: z.string(),
exportFormats: z.array(z.enum(['STL', 'OBJ', 'STEP'])),
})
export const AssemblySchema = z.object({
assemblyName: z.string(),
version: z.string(),
parts: z.array(PartSchema).min(1),
metadata: z.object({
generatedAt: z.string().datetime(),
promptSummary: z.string(),
}),
})| Format | Use Case |
|---|---|
| STL | 3D printing, rapid prototyping |
| OBJ | Blender, Cinema 4D, mesh editing |
| STEP | Fusion 360, CATIA, SolidWorks |
- Multi-turn prompt refinement (iterative editing)
- Constraint-based assembly (snap joints, axis alignment)
- Parametric dimension editing in-browser
- BOM (bill of materials) export
- Fine-tuned Qwen3 on CAD-specific dataset
- Collaborative workspaces
Oryxenlab โ AMD AI Developers Hackathon 2026
MIT

