Inspiration
Imagine you're into sleeper indie artists or your new favorite hit hasn't been converted to a beat saber map yet. You can either wait for someone else to make a map for you or painstakingly make one yourself. Or you can use Saberfy and generate a map within seconds, saving you hours of hard work and letting you play immediately. Furthermore, map developers who want a strong basis before personalizing a map can use Beatify for an initial idea, then can modify the map with extra human expertise
What it does
Saberfy utilizes multiple different APIs, one of which is the Spotify Web API. It uses these to generate a BeatSaber map using the different characteristics of each song. Randomized node directions mean that if you get tired of one map, you can easily replace it with a new one. Furthermore, we also added different maps with varying difficulties for more advanced players to try out!
How we built it
We used Python to take in the JSON information from the APIs and then we convert those using algorithms to a new BeatSaber map JSON. Adding in a couple of other files (song file, cover, and different difficulty maps) and you have a zipped map ready to be imported.
Challenges we ran into
Some of the biggest challenges that we faced were formatting and learning Python as only one of our three members actually knew it. But we thought Shellhacks would be the perfect time to learn. Also, the documentation for Beatsaber isn't nearly as informative as we would have liked, so we had to test and learn more about the documentation on the fly.
Accomplishments that we're proud of
It was our first official hackathon where we were able to really focus on an actual project from scratch, so we're very proud of that. We're also proud of the fact that all three of us were able to improve on our Python and teamwork skills, as well as learning how to use and implement existing libraries
What we learned
We learned how to program in Python, using external libraries and objects. We also practiced using Parse, creating JSON, and using APIs properly.
What's next for Saberfy
For now, we'd like to make the program use a more advanced set of types. Types are the different 'types' of blocks in BeatSaber. Currently, we are only using the directional and the omnidirectional notes. But there are also bombs and walls that could be implemented with a more advanced algorithm.


Log in or sign up for Devpost to join the conversation.