After attempting to create a program that would optimize the placement of buildings and roads to decrease traffic and increase the possibilities for parking, we decided to change directions by attempting to optimize every part of a city, based directly upon its own needs.
What it does
Node City looks at the relationships between everything that is a part of the generated city, whether it be the people, housing, resources, etc. The simulated systems take the relationships between all of these different aspects and attempts to build a city that would be as efficient as it can be to ensure survival.
How I built it
Node City was built solely in Java, using systems made by our group, and JavaFX was used to create the GUI for the city.
Challenges I ran into
The biggest challenge we ran into was the amount of time dedicated to creating realistic relationships within the city.
Accomplishments that I'm proud of
Our node-based architecture is based on immensely abstract ideas, and because of this can be applied to many more applications than simply building cities. With some slight modifications, we could simulate food-webs, circuitry, and biological neural networks.
What I learned
Creating a working application as a team of people who each programmed on separate devices proved to be fairly difficult, but using Git was very helpful.
What's next for Node City
The next step for this project is to use the underlying structure in order to simulate other types of systems. The way that groups of neurons fire at each other in biological brains is very similar to our architecture, so this will be the next area to explore.