Inspiration
We wanted to take a game everyone's already played and make it do something it never could do before. We also wanted to create a lighthearted, fun project that users would find enjoyment in using, and we were deep in technologies like Solana, blockchain, and machine learning. Geometry Dash is a perfect rhythm platformer — simple, brutal, addictive (some of our friends would play for thousands of attempts in one sitting). But it has no stakes, no uniqueness, no trust layer. We added all three. Every terrain seed is verifiable on-chain via ORAO VRF, every payout is handled by the Solana Blockchain, and every track is freshly composed by an LSTM model. There are nearly endless possibilities with this, and our team absolutely loved working on it throughout the hackathon.
What it does
Sync is a beat-synced endless platformer where users stake SOL and the level is the music. An LSTM model composes original MIDI tracks on the fly, and every spike, block, and gap is placed exactly on the beat. Dying is never unfair and always rhythmic. Users can either play solo or duel against another player. In solo mode, users stake a buy-in and can extract at any time; however, if the user loses, they lose everything they earned. In duels, SOL is at stake, and whoever survives longest wins the other's crypto. Terrain is generated from verifiable randomness (ORAO VRF), increasing transparency and fairness between the game and its users.
How we built it
The stack has three distinct layers. We built a custom game engine in TypeScript, a Next.js frontend, and Solana programs in Anchor for staking and payouts. An LSTM model was trained on a GPU via Modal and deployed as an API; it generates MIDI tracks on demand. The front end makes requests to the backend on Modal to get a MIDI file. Using Tone.js, we parse the beats from the generated MIDI file and convert them to audio. The game engine uses those beat timestamps to drive obstacle placement in sync with the music. ORAO VRF supplies verifiable random seeds for terrain generation, so every run is provably fair and unique.
Challenges we ran into
The hardest part was making three completely different systems: an ML model, a blockchain, and a real-time game engine feel like one seamless experience.
- At first, we wanted to extract the user's top 50 song data and train a model for each run, but this was too time intensive so we just picked a data that was extensive. In the future, we can scale this.
- Integrating wallet flows (Privy), buy-in, and extraction using Solana, and testing in development mode given a limited supply of devnet SOL.
- Coordinating VRF fulfillment with Solana because if you design the model wrong, it breaks the fairnessness.
Accomplishments that we're proud of
We ended up building a fully functional end-to-end game from scratch with on-chain stakes, verifiable randomness for terrain generation, and AI-generated music. The game is responsive to each user, with the ability to play in real-time against other users and enable a seamless Solana integration. Every single run a player takes is unique, provably fair, and financially meaningful. That combination doesn't really exist anywhere else. We all had a lot of fun and learned about things from how to properly create algorithms to produce music to the blockchain ecosystem.
What we learned
- We learned the importance of designing user-flows on paper before implementation to save time and reduce rework (we use excali draw)
- How to collaborate in a mono repo
- Optimizing loading states with api
- How to use different tools like Solana, Modal, etc.
- Integrating wallet interactions without disrupting gameplay
What's next for Sync
- Implement social features in the app with leaderboards, followers, group duels etc.
- Refining the payout model
- Refining the machine learning music generator
- Creating NFT's on unique terrain, enriching Sync's blockchain diversity
Built With
- anchor
- firebase
- modal
- next.js
- solana
- spotify
- tone.js
- typescript

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