How ctate/3d-model-generator works
This is a web app for generating 3D models from prompts and optional reference images using Hyper3D Rodin. Users configure generation options, submit a job, monitor its status, preview the resulting model, and download it. The graph preserves the documented format and advanced-setting capabilities. Source excerpts show the client workflow and API requests; route-to-provider behavior is documented at a high level but not shown in route excerpts.
Main entry points: rodin.tsx Generation workflow · api-service.ts API client · model-viewer.tsx 3D model viewer · form.tsx Prompt and images
Components 18
Generation experience
- App page
app/page.tsx - Generation workflow
components/rodin.tsx - Prompt and images
components/form.tsx - Input validation
lib/form-schema.ts - Generation options
components/options-dialog.tsx - Image upload area
components/image-upload-area.tsx - Job status display
components/status-indicator.tsx
Client services
- API client
lib/api-service.ts
API routes
- Submit job route
app/api/rodin/route.ts - Status route
app/api/status/route.ts - Download route
app/api/download/route.ts - Proxy download route
app/api/proxy-download/route.ts
3D preview
- 3D model viewer
components/model-viewer.tsx - Model renderer
components/model-component.tsx - Scene setup
components/scene-setup.tsx - Loading placeholder
components/loading-placeholder.tsx
Other components
- User
- Hyper3D Rodin
Connections 19
- User → App page: opens
README.md - App page → Generation workflow: renders
app/page.tsx - Generation workflow → Prompt and images: renders
components/rodin.tsx - Generation workflow → Generation options: renders
components/rodin.tsx - Generation workflow → Job status display: renders
components/rodin.tsx - Generation workflow → 3D model viewer: renders
components/rodin.tsx - Prompt and images → Input validation: validates with
components/form.tsx - Prompt and images → Image upload area: renders
components/form.tsx - Generation workflow → API client: calls
components/rodin.tsx - API client → Submit job route: submits to
lib/api-service.ts - API client → Status route: checks
lib/api-service.ts - API client → Download route: requests
lib/api-service.ts - Submit job route → Hyper3D Rodin: submits job
README.md - Status route → Hyper3D Rodin: checks job
README.md - Download route → Hyper3D Rodin: retrieves model
README.md - Generation workflow → Proxy download route: may proxy download
- 3D model viewer → Scene setup: sets up
components/model-viewer.tsx - 3D model viewer → Model renderer: renders
components/model-viewer.tsx - 3D model viewer → Loading placeholder: shows fallback
components/model-viewer.tsx