Enter a prompt to generate a 3D environment
{status === 'PENDING' ? 'Analyzing with Gemini...' : 'GPU Rasterizing Gaussians...'}
{status === 'GENERATING' && (Generation Failed
Please ensure you uploaded a valid image and the API is reachable.
import React, { useState, useEffect } from 'react' import GeneratorForm from './components/GeneratorForm' import SplatViewer from './components/SplatViewer' import { Layers } from 'lucide-react' function App() { const [jobId, setJobId] = useState(null) const [status, setStatus] = useState('IDLE') // IDLE, PENDING, GENERATING, READY, FAILED const [splatUrl, setSplatUrl] = useState(null) const [eta, setEta] = useState(120) // Default 2 minutes ETA useEffect(() => { let timer; if (status === 'GENERATING') { setEta(120); timer = setInterval(() => { setEta((prev) => (prev > 0 ? prev - 1 : 0)); }, 1000); } return () => clearInterval(timer); }, [status]); return (
Enter a prompt to generate a 3D environment
{status === 'PENDING' ? 'Analyzing with Gemini...' : 'GPU Rasterizing Gaussians...'}
{status === 'GENERATING' && (Generation Failed
Please ensure you uploaded a valid image and the API is reachable.