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.

Built With

Share this project:

Updates