Inspiration
There were a few inspirations for this project:
- Inspiration from this article (https://esd.copernicus.org/articles/9/1191/2018/) led us to wonder what Earth would "look like" in reality (not just numbers) if it spun retrograde (the other way)? Well, wonder no more.
- One of the group members enjoys worldbuilding and wanted a way to generate visuals of constructed Earth-like planets
- The idea just came up, and seemed fun and feasible within the time frame.
What it does
The app provides a crude interface for drawing an elevation map of the world. The input global elevation map is processed into many other inputs and fed into two neural networks that output the predicted global monthly temperature and precipitation. This information is lastly fed into another neural network that outputs the predicted pixel colour.
How we built it
One of the group members previously already built a part of the project - the data processing and first neural network that outputs global monthly temperature and precipitation. We built off of this framework by:
- Building and training a neural network to predict colour of pixels
- Creating additional code to call pre-existing functions from the already-built part of the program
- Creating a page with HTML/CSS that used Javascript for generating/editing elevation maps
- Using Flask to process requests, processing the user's input map, calling the respective functions, and returning the output of them
Challenges we ran into
Connecting the multiple parts of the project - the front page, the neural network, and the Flask part, turned out to be surprisingly annoying and difficult, due to many small bugs in communicating between parts. Flask was especially time-consuming because the differing OSs between teammates resulted in the server being un-openable for one teammate and not the other.
Accomplishments that we're proud of
We are proud to have able to train an end to end model on real world data. Building and training and preparing data for neural networks can be a complex and time-consuming process, but we were able to build and train several neural networks for this project, including one that predicted pixel colors based on elevation data. We are proud of the level of technical skill and knowledge that we gained through this process.
What we learned
Flask: One of the key technical skills we learned was how to use Flask to process requests, process the user's input map, call the respective functions, and return the output of them. By learning how to use Flask, we were able to create a more dynamic and responsive app. Fractal noise for DEM generation: Another technical skill we learned was how to use fractal noise to generate elevation maps, which were then used as input for the neural networks that predicted temperature, precipitation, and pixel color. Effective neural network training: We also gained valuable experience in training neural networks, including strategies for selecting appropriate hyperparameters, monitoring training progress, and fine-tuning models for improved accuracy. This knowledge will be valuable for future machine learning projects.
What's next for AI Climate Drawer
Moving forward, there are several potential avenues for further development and expansion:
Increasing the complexity of the model: While the current version of the app uses neural networks to predict global temperature, precipitation, and pixel color based on elevation data, there is potential to incorporate additional factors such as ocean currents, atmospheric circulation patterns, and more. This could make the predictions more accurate and provide a more comprehensive view of climate patterns.
Enhancing the user interface: The current interface is functional but fairly basic. With additional development, it could be possible to create a more intuitive and user-friendly interface that allows for more customization and flexibility.
Log in or sign up for Devpost to join the conversation.