About the Project
Inspiration
The idea for this project came from wanting to build a simple, fast, and satisfying tap-based game directly inside a Snapchat Lens. I was inspired by timing games where a single tap at the right moment decides everything. Combining this with Bitmoji characters and a mystical visual theme made it feel playful while still being interactive.
I also wanted to push beyond “just a filter” and create something that feels like a real mini-game inside Snapchat.
What I Learned
Through this project, I learned:
- How Snapchat Lens Studio scripting (TypeScript) works in a real interactive scenario
- Managing state (running, win, lose) without breaking input logic
- Handling UI elements like ScreenTransforms and ScreenRegions correctly
- Debugging Lens Studio quirks where small logic changes can break interaction
- How to design gameplay that works reliably across devices
Most importantly, I learned that keeping logic simple and predictable is critical for real-time AR experiences.
How I Built the Project
The project was built using:
- Lens Studio with TypeScript
- A moving UI line controlled by an
UpdateEvent - Tap input using
TouchStartEvent - Bitmoji character switching for run / win / lose states
- A mystical orb (sphere) for visual feedback
- Clear win/lose conditions based on timing and position
The core mechanic is intentionally minimal:
- A line moves continuously
- The user taps once
- The system checks whether the tap happened in the green zone
- The result is immediately shown with visuals and text
This approach ensures smooth performance and avoids unnecessary complexity.
Challenges Faced
Some of the main challenges were:
- Preventing double taps or inconsistent stopping of the line
- Avoiding unreliable “restart” or scene reload methods
- Making sure the logic behaved the same on desktop preview and mobile
- Correctly positioning UI elements across screen sizes
- Debugging TypeScript errors caused by Lens Studio’s strict runtime environment
Many problems were solved by sticking to a single, stable script and resetting state manually instead of relying on unsupported APIs.
Final Thoughts
This project shows how even a very simple mechanic can become engaging when combined with good feedback, visuals, and polish. It also reinforced that in AR development, stability and clarity matter more than overengineering.
Built With
- ar
- lens
- lens-studio
- snap
- studio
- vr
Log in or sign up for Devpost to join the conversation.