Production-ready Next.js frontend for AI-powered 3D model generation.
- Polished UI: Built with Next.js 15, shadcn/ui, and Tailwind CSS
- 3D Model Viewer: Interactive Three.js viewer with orbit controls
- Real-time Updates: Loading states and progress indicators
- Multi-format Downloads: GLB, OBJ, FBX, STL formats
- Quality Display: Color-coded quality scores and production-ready badges
- Responsive Design: Works on desktop and mobile
- Dark Mode Support: Full dark mode theming
frontend/
├── app/
│ ├── page.tsx # Main application page
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── PromptInput.tsx # Input form with advanced settings
│ ├── ModelViewer.tsx # 3D model viewer (Three.js)
│ ├── ResultsDisplay.tsx # Results with downloads
│ └── QualityBadge.tsx # Quality score display
├── lib/
│ ├── api-client.ts # API client for agent service
│ └── utils.ts # Utilities
├── Dockerfile # Production Docker image
└── deploy.sh # Cloud Run deployment script
npm install
npm run devThe frontend is deployed to Google Cloud Run:
Production URL: https://forge-master-frontend-525900378413.europe-west1.run.app
# Deploy to Cloud Run
./deploy.sh
# Or manually
gcloud run deploy forge-master-frontend \
--source . \
--platform managed \
--region europe-west1 \
--allow-unauthenticatedNEXT_PUBLIC_AGENT_SERVICE_URL: URL of the agent service backendNEXT_PUBLIC_APP_NAME: Application name (default: "Forge Master")
- Framework: Next.js 15 (App Router)
- UI Library: shadcn/ui
- Styling: Tailwind CSS
- 3D Rendering: React Three Fiber + Drei
- Icons: Lucide React
- Deployment: Google Cloud Run
- User enters a text prompt describing the 3D model they want
- Optional: Adjust advanced settings (inference steps, guidance scale)
- Click "Generate 3D Model"
- AI agents process the request:
- Prompt enhancement
- Image generation (Imagen 4)
- 3D mesh generation (InstantMesh)
- Quality assessment (Gemini)
- Results displayed:
- Interactive 3D viewer
- Quality score badge
- Download buttons for all formats
- Input image and multi-view renders
- Build Time: ~2 minutes
- Cold Start: ~5 seconds
- Average Response: 60-120 seconds (depends on generation complexity)
- Bundle Size: Optimized with Next.js standalone output