Inspiration
City management is incredibly fragmented right now. If a pipe bursts or a pothole causes a traffic jam, the complaint usually bounces around 5 different municipal departments before anyone actually looks at it. We wanted to build something that fixes this. Orbit was inspired by the need for a unified, visual command center where city officials can see exactly what's happening and let AI handle the boring triage work.
What it does
Orbit is a Smart City OS with a 3D spatial interface. When a citizen reports an issue through our portal, Orbit intercepts it and runs it through Gemini 1.5 Flash. The AI reads the natural language complaint, figures out how urgent it is, and automatically routes the ticket to the correct department (like the Water Board or Transport Dept). No humans are needed for the initial routing, and citizens get a dashboard to track their ticket's live status.
How we built it
We split the app into a Next.js 16 frontend and a Python FastAPI backend.
- Frontend: Next.js with React. We used Three.js and WebGL to render the actual 3D city environment.
- Backend: FastAPI running serverless on Vercel.
- AI: Google Gemini 1.5 Flash for the NLP triage and routing engine.
- Database: Supabase (Postgres) for auth, user roles, and saving ticket states.
Challenges we ran into
Getting WebGL to play nicely with React state was tough. We had a lot of performance bottlenecks trying to keep the 3D city running smoothly at 60 FPS while real-time ticket data was updating the DOM. Also, deploying the Python backend to Vercel was tricky. Serverless functions have strict timeout limits, so we had to optimize our Gemini API calls to make sure they processed and returned the JSON data before the functions timed out.
Accomplishments that we're proud of
Honestly, just getting the full microservices stack (Next.js + FastAPI + Supabase + Gemini) deployed and talking to each other before the deadline was a huge win. The fact that our Gemini integration can accurately parse messy, unstructured complaints and route them to the right department perfectly is something we're really proud of.
What we learned
We learned a ton about prompt engineering. Getting an LLM to consistently return valid, structured JSON that our Postgres database could actually use took a lot of trial and error. We also learned a lot about Vercel's custom routing for Python backends.
What's next for Orbit
- Integrating real-time IoT sensors (traffic, air quality).
- Building a predictive model to guess where infrastructure will fail next based on historical data.
- Creating a mobile app for city workers on the ground to update ticket statuses via geolocation.
Built With
- fastapi
- google-gemini
- next.js
- postgresql
- python
- react
- supabase
- three.js
- vercel
- webgl
Log in or sign up for Devpost to join the conversation.