Inspiration

City Deity was inspired by the intricate web of interdependencies in our world. We wanted to create a model city that feels alive, where every element affects the others, and where unpredictable events can ripple through the system. This project is about exploring the impact of environmental factors on resources and showing how life can be both beautifully interconnected and, at times, brutally unfair.

What it does

City Deity lets you control the environment of a city through custom weather dials (for wind, sun, and rain) and witness the impact on resources like food, electricity, and population growth. Every action sets off a chain reaction, and balance is key for the population to grow. Natural disasters—like tsunamis, wildfires, hurricanes, and meteors—introduce chaos and long-lasting effects, underscoring the randomness and resilience needed in an unpredictable world.

How we built it

We connected every city element—farms, water purification, bakeries, and more—through microcontrollers, all linked to a Flask server for real-time responsiveness. We designed and hand-crafted pixel art animations for a 32x32 display to show live city stats and environmental updates. This entire setup required coordinating new techniques, from distributed microcontrollers and MicroPython coding to building physical components and designing intuitive user controls.

Challenges we ran into

Building City Deity involved a lot of firsts for us, and we faced challenges with syncing microcontrollers, managing data flow between the Flask server and the city elements, and creating pixel art animations from scratch. Additionally, simulating natural disasters with varied and irreversible effects took careful planning to make the experience feel realistic yet manageable.

Our 32 by 32 pixel board gave up on living half way through the night. So we had to scrap that idea, and instead display the city stats and weather changes on one of our laptops.

Accomplishments that we're proud of

It is all working! We actually put all of our silly ideas to life. The interactive model city that captures the complex chain reactions found in real life. From designing every piece of pixel art to building a responsive environment with microcontrollers, we managed to pull off a project that combines technical skills with a meaningful concept.

What we learned

This project taught us the intricacies of distributed systems and how seemingly small changes in one part of a system can cascade through the entire network. We deepened our skills in microcontroller programming, pixel art, and Flask server design, and we gained a new appreciation for how challenging yet rewarding it is to bring interdependent systems to life.

What's next for City Deity

We did not get to incorporate a more sophisticated balance for the city resources (it is quite primitive for now). Some of the disasters we also did not get to (like earthquake). The model does well in capturing the unfairness of events not dependent on us, but it would also be great to add a chance for the city people to add some preventative measures for themselves. These would have made the city interaction even more engaging.

Built With

Share this project:

Updates