Public government and civic data changes constantly. Policies are updated, income limits are adjusted, and schemes are renamed. But the way we build civic dashboards is fundamentally broken. They are static snapshots of reality. When reality changes, the dashboard doesn't. Someone has to manually discover that a source changed, update the dataset, manually verify it, and redeploy the dashboard.
We realized that static dashboards are dead. We wanted to build a system where the dataset watches itself. We built CivicOS to fundamentally change this model from manual maintenance to autonomous self-healing.
⚙️ What it does CivicOS is a living, multi-agent civic data system. Instead of relying on human maintainers to keep data fresh, CivicOS assigns autonomous AI agents to continuously watch public government sources.
When reality changes, the responsible owner agent:
Detects the change in the public source. Creates a "Data PR" containing the proposed update. Passes it to an Independent Verifier Agent that strictly checks the source match, schema validity, and provenance. Automatically merges the change into the canonical dataset. The result? The live dataset updates itself autonomously with zero human intervention, ensuring the public always sees the most accurate, verified data.
🛠️ How we built it We built CivicOS using a modern, performant, and deeply interactive stack:
Frontend: We built a cinematic, hackathon-winning frontend using Next.js, React, and TypeScript. We used Tailwind CSS for the design system and Framer Motion for fluid, scroll-linked animations. 3D Architecture Visualization: To help judges and users visualize our multi-agent network, we built a custom 3D "Living Data Core" using Three.js, React Three Fiber, and React Three Drei. It visually demonstrates the flow from public sources to owner agents, and finally to the central dataset. Backend: Our robust agent backend is built with Python, FastAPI, and SQLAlchemy (with SQLite). It orchestrates the owner agents and verifier agents, handling the creation and resolution of Data PRs asynchronously. 🚧 Challenges we ran into Agent Hallucination in Verification: Ensuring the Verifier Agent was strict enough to catch errors but smart enough to understand semantic changes in civic text was a delicate balance. We had to implement strict schema and provenance checks before allowing a merge. 3D Visualizations: Creating a seamless 3D network that didn't clip on different screen sizes and felt deeply integrated with the HTML content was tricky. We spent a lot of time fine-tuning the Three.js camera FOV, positioning, and CSS mix-blend modes so the typography and 3D canvas felt like one unified cinematic experience. Database State Syncing: Syncing the real-time status of 8 different autonomous agents simultaneously without overwhelming the SQLite database or the FastAPI server required careful asynchronous engineering. 🚀 What's next for CivicOS We plan to scale CivicOS to monitor hundreds of civic sources across multiple municipalities. We also plan to build an open GraphQL API so developers can build their own apps on top of the CivicOS canonical dataset, knowing they will never have to worry about the data going stale.
Built With
- artificial-intelligence
- fastapi
- framer-motion
- next.js
- python
- react
- react-three-fiber
- sqlalchemy
- sqlite
- tailwind-css
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.