Inspiration
Reading an article by Kuindersma et al on the use of AI technology by Boston Dynamics in creating the Atlas robot, our group was drawn to the use of AI programming. In turn, we created our own project inspired by the work of Boston Dynamics - questioning how we could implement their use of AI mobility in a project of our own. We concluded that we could take elements of Atlas' running as our inspiration, and our project was born. Our group felt we couldn't restrict ourselves to just AI. We wanted to experiment with further code and dive into the world of gambling. We've explored the intersectionality of different elements of programming to create a project we're proud of - combining HTML, Rust, CSS, JavaScript & MongoDB Atlas.
What it does
The program is built on the idea of teaching an AI to walk based on predefined variables that are provided by the user. The AI will then try to walk based on a generational evolution model. Whilst this is happening the users can interact with the model and bet on the AI they think will win. Thus keeping the users involved with the game whilst the AI is learning.
How we built it
We have been using a plethora of programming languages to make it as efficient as possible with the knowledge we have. The AI used in the game is from RSRL and used rapier for the physics engine. This model works alongside the betting code which was compiled using rust. When interacting with the user we have used HTML, CSS, and JavaScript to collect inputs and allow the user to interact with the game. The game engine used is bevy and used 2d rendering to display the AI models. Finally, the server is built with poem, MongoDB, and rust to allow all the separate features to interact with each other.
Challenges we ran into
Our first challenge was encountered as soon as the hackathon started, where we spent quite a while compiling large amounts of data sets. This ate into our coding time and was the inspiration for our team’s name “Compiling…”. Our next challenge was with running WSL on windows machines, two of us had never used a virtual machine before and spent quite some time encountering errors, such as network errors. These were eventually solved by uninstalling and resetting the computer network settings and reinstalling the program. Within our team, we use 3 different OS (Windows, Linux, macOS) this resulted in problems when we tried to help each other due to the subtle differences between the OS’s. Particularly macOS was the hardest to implement the code due to it restricting access to the graphic driver settings, this limited bevy and resulted in having to work with an older version. With regards to the server, we encountered many problems with running multi-threads. Overall we encountered many different problems during the 24 hours and have managed to overcome them with determination and thinking outside the box.
Accomplishments that we're proud of
Nearing the end of the project we have learnt a lot during the 24 hours. The comparison between what we knew at the start of the event and now has impressed us all. We worked as part of a team and were able to decompose the problem into suitable problems that could be tackled by different people. We are also proud of the fact that we have all learned at least one new programming language within 24 hours and have been able to implement it correctly into the solution.
What we learned
During the Hackathon, we have learnt many different things. The whole team has learnt at least one new programming language and has been able to learn and adapt quickly to it. We have all learnt a new way to store in a database using MongoDB (a sponsor of the event). Finally, we have learned how to use WebSockets and discover how servers and clients communicate. This is our first Hackathon and as a result, we have learnt how hackathons now operate and how much freedom the coders have.
What's next for AI Racecourse: Compiling…
Even though we’ve spent 24 hours on this program there are still a few things that could be improved before we fully implement it. One major feature we’d like to implement is the use of a 4-legged AI (closer resembling a horse). At present, the AI uses 2 legs and is a proof of concept. Some more changes we’d make would be to make the code more efficient. For most of the team, this is the first time using at least one new programming language and as a result, there are areas where the efficiency could be improved. Another downside that comes with the new language is that there are a few security flaws which would need to be solved before we fully release the code. Overall there are loads of features we could add to the code, however, we are proud of what we have achieved in just 24hrs.
Built With
- bevy
- css
- html
- javascript
- mongodb-atlas
- rsrl
- rust
- websockets
Log in or sign up for Devpost to join the conversation.