Inspiration
There are many schools in places around the globe which lack the funding and infrastructure to give their students realistic and immersive geography lessons, much less taking them to these fascinating geographical locations themselves.
The application is meant to solve this problem by introducing students to these wonderful places digitally, and building up an interest in studying about geography and geology.
What it does
The app aims to allow students from around the world to learn about geographical features through an immersive experience, even if they don't have access to the technology or resources to allow them to explore such features in real life. There's also a chatbot that allows users to ask any doubt they have in real-time, particularly improving their learning experience. The app relies on a virtual map consisting of a plethora of geographical features that were designed and textured via Unity terrain. It allows users to explore these locations in the free-roam mode. There’s also an individual features game-mode that allows students to discover unique and interesting geological formations and features that have an interesting background and history. It includes a chatbot that will provide assistance to students relating to all doubts. Overall, the app hopes to empower students with limited access to advanced schooling infrastructure and funds to gain access to interactive and engaging geography lessons.
How we built it
The app relies on The chatbot uses an OpenAI API (Chat gpt 3.5-turbo) with special instructions so that it has context based on the environment, allowing it to be more functional and give accurate responses to doubts based on the scene. Unity Terrain was used for a majority of the tasks relating to the development, since it forms the backbone of the map. The gyroscope and accelerometer were utilised using C# and integrated, although the accelerometer was removed due to complications (for now). We imported many models and libraries, however, we created a lot of the assets ourselves using various different softwares. Overall, we used Unity Engine for the frontend development, and C# for backend programming. Our in-app chatbot was made using an OpenAI API. Blender was used for modelling and designing 3D assets and prefabs, while Adobe Photoshop was used for creating textures.
Challenges we ran into
Implementing gyroscope into our app and adjusting sensitivity was rather difficult. We also planned to use an accelerometer to detect player movement, but high complexity, inaccuracy and issues with integration with the player object and script, the use of an accelerometer for the free-roam mode being highly unfeasible led to us dropping it for the time being, in favour of a joystick. The Chatbot also took some time and effort to bring to life. We faced issues with tokens and bringing the API to Unity and planned on using alternate methods. In the end, we made it work. Terrain building and texturing was a painstaking task that took a lot of our time, and it led to a lot of issues with efficiency due to high RAM and GPU requirements. Optimising the app was quite challenging, but we achieved reasonable results; this was quite important considering we want to improve accessibility, without letting technology be a limiting factor.
Accomplishments that we're proud of
Creating an entire map along with another feature where you can see mindblowing and unique geological formations from around the world within the span of a few days is something we're incredibly proud of. There were several other things that we tried for the first time and managed to figure out and implement successfully. The gyroscope and chatbot were some of these, and they worked out beautifully in the end. The texturing and optimisation were also successfully performed, and we're proud of ourselves for maximising the efficiency this way. It was very satisfying, finally figuring out how something worked and soon becoming proficient in using it. This project as a whole is a great accomplishment for us and we hope to continue developing and improve it even more.
What we learned
This project has enriched our knowledge relating to 3D terrain, designing, and texturing. The UI element was quite unique with this application, and a lot of editing and post processing was required. We learnt how to create textures and implement them within the Unity Engine. Utilizing the gyroscope, managing quaternions, and writing code that fits and works with it was something we had to figure out and work around. Using a chatbot in Unity was also something we had never tried before and was a completely new experience. We also learned a lot about software optimisation, since this was our largest project to date, and we'd never dealt with hardware limitations in the past.
What's next for GeoMapper
We aim to bring several new features to our app in the near future. Improving graphics and textures to immerse the player in a more interactive environment is one of these change. We will also add several new geographical features to both modes, enhancing the learning experience. Making simulations that show how certain geographic features were formed is also something we strive to accomplish. Allowing players to create their own geographic formations and upload them is one of our goals as well, since it boosts creativity and allows students to apply their knowledge. Adding more functionality to the chatbot is also critical to ensuring that students are able to learn efficiently. Post-processing is also something that could be worked on more, given our ever increasing experience in using this platform. Lastly, we aim to further improve the efficiency of the app, and allow it to run on more devices.
Log in or sign up for Devpost to join the conversation.