AR Development

Spatial Design

Interaction design

AR asteroids

AR Asteroids is a small AR game built to run natively on Snapchat using Lens Studio and JavaScript.

Year :

2025

Industry :

Tech (Augmented Reality)

Client :

SnapChat

Project Duration :

6 weeks

1 week

overview

This project is a lightweight Asteroids-inspired game built natively for Snapchat using Lens Studio and JavaScript. My goal was to design a playful, accessible Augmented Reality (AR) experience that feels natural inside Snapchat’s interaction patterns, while still exploring real-time game systems like spawning, scoring, and state management.

Rather than simply shipping a visual effect, I wanted to build a complete, interactive game that runs smoothly as a Lens, something users can instantly understand and play within seconds.

the idea

I set out to recreate the classic “destroy the asteroids” arcade mechanic, but adapted for AR and mobile-first interaction.

Because Snapchat users expect fast, intuitive experiences, I focused on:

  • Minimal learning curve

  • Tap-based interaction

  • Lightweight performance

  • Clear visual feedback

The challenge was balancing game logic with Lens Studio’s AR environment while keeping everything responsive inside the camera view.

SCENE & SYSTEM SETUP

Camera Architecture

I started by structuring the hierarchy inside Lens Studio.

  • Created an AR Camera as the base scene

  • Attached a UI Camera for interface elements

  • Added a Canvas to house all UI components

This separation allowed me to keep gameplay visuals and UI logic independent while ensuring consistent layering and performance.

UI & Feedback

Using the UI Canvas, I designed:

  • Instructions

  • Score counter

  • Life counter

These values update dynamically during gameplay, giving players immediate feedback when they collect or destroy asteroids.

Keeping the UI simple was intentional, Snapchat lenses need to communicate quickly without cluttering the screen.

asteroid system

For the asteroids, I used Lens Studio AI to generate the base asset.

Instead of creating multiple asteroid types, I deliberately used one clean, reusable model to keep the experience lightweight and focused.

Rather than duplicating objects manually in the editor, I handled everything through code.

How it works:

  • An Asteroid Spawn script duplicates instances at runtime and controls where and when asteroids appear

  • Objects are recycled to maintain performance

This made the game scalable without bloating the scene hierarchy.

Game Logic & Architecture

I structured the project using modular scripts:

  • Game Manager → controls overall state, score, and lives

  • Spawner → handles asteroid generation

  • Asteroid Behavior → movement + collision

  • UI Controller → updates text dynamically

Keeping these systems separate made debugging easier and allowed me to iterate quickly.

Design Decisions

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior


It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior

It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

what i learned

This project helped me understand:

  • Real-time spawning systems

  • Scene architecture in AR

  • Performance considerations on mobile

  • Designing mechanics around user habits, not personal preference

More than anything, it strengthened my ability to think like both a developer and a product designer.

final result

The final Lens runs smoothly inside Snapchat, with responsive gameplay and minimal setup for the user.

Tap, play, compete — instantly.

AR Development

Spatial Design

Interaction design

AR asteroids

AR Asteroids is a small AR game built to run natively on Snapchat using Lens Studio and JavaScript.

Year :

2025

Industry :

Tech (Augmented Reality)

Client :

SnapChat

Project Duration :

6 weeks

1 week

overview

This project is a lightweight Asteroids-inspired game built natively for Snapchat using Lens Studio and JavaScript. My goal was to design a playful, accessible Augmented Reality (AR) experience that feels natural inside Snapchat’s interaction patterns, while still exploring real-time game systems like spawning, scoring, and state management.

Rather than simply shipping a visual effect, I wanted to build a complete, interactive game that runs smoothly as a Lens, something users can instantly understand and play within seconds.

the idea

I set out to recreate the classic “destroy the asteroids” arcade mechanic, but adapted for AR and mobile-first interaction.

Because Snapchat users expect fast, intuitive experiences, I focused on:

  • Minimal learning curve

  • Tap-based interaction

  • Lightweight performance

  • Clear visual feedback

The challenge was balancing game logic with Lens Studio’s AR environment while keeping everything responsive inside the camera view.

SCENE & SYSTEM SETUP

Camera Architecture

I started by structuring the hierarchy inside Lens Studio.

  • Created an AR Camera as the base scene

  • Attached a UI Camera for interface elements

  • Added a Canvas to house all UI components

This separation allowed me to keep gameplay visuals and UI logic independent while ensuring consistent layering and performance.

UI & Feedback

Using the UI Canvas, I designed:

  • Instructions

  • Score counter

  • Life counter

These values update dynamically during gameplay, giving players immediate feedback when they collect or destroy asteroids.

Keeping the UI simple was intentional, Snapchat lenses need to communicate quickly without cluttering the screen.

asteroid system

For the asteroids, I used Lens Studio AI to generate the base asset.

Instead of creating multiple asteroid types, I deliberately used one clean, reusable model to keep the experience lightweight and focused.

Rather than duplicating objects manually in the editor, I handled everything through code.

How it works:

  • An Asteroid Spawn script duplicates instances at runtime and controls where and when asteroids appear

  • Objects are recycled to maintain performance

This made the game scalable without bloating the scene hierarchy.

Game Logic & Architecture

I structured the project using modular scripts:

  • Game Manager → controls overall state, score, and lives

  • Spawner → handles asteroid generation

  • Asteroid Behavior → movement + collision

  • UI Controller → updates text dynamically

Keeping these systems separate made debugging easier and allowed me to iterate quickly.

Design Decisions

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior


It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior

It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

what i learned

This project helped me understand:

  • Real-time spawning systems

  • Scene architecture in AR

  • Performance considerations on mobile

  • Designing mechanics around user habits, not personal preference

More than anything, it strengthened my ability to think like both a developer and a product designer.

final result

The final Lens runs smoothly inside Snapchat, with responsive gameplay and minimal setup for the user.

Tap, play, compete — instantly.

AR Development

Spatial Design

Interaction design

AR asteroids

AR Asteroids is a small AR game built to run natively on Snapchat using Lens Studio and JavaScript.

Year :

2025

Industry :

Tech (Augmented Reality)

Client :

SnapChat

Project Duration :

6 weeks

1 week

overview

This project is a lightweight Asteroids-inspired game built natively for Snapchat using Lens Studio and JavaScript. My goal was to design a playful, accessible Augmented Reality (AR) experience that feels natural inside Snapchat’s interaction patterns, while still exploring real-time game systems like spawning, scoring, and state management.

Rather than simply shipping a visual effect, I wanted to build a complete, interactive game that runs smoothly as a Lens, something users can instantly understand and play within seconds.

the idea

I set out to recreate the classic “destroy the asteroids” arcade mechanic, but adapted for AR and mobile-first interaction.

Because Snapchat users expect fast, intuitive experiences, I focused on:

  • Minimal learning curve

  • Tap-based interaction

  • Lightweight performance

  • Clear visual feedback

The challenge was balancing game logic with Lens Studio’s AR environment while keeping everything responsive inside the camera view.

SCENE & SYSTEM SETUP

Camera Architecture

I started by structuring the hierarchy inside Lens Studio.

  • Created an AR Camera as the base scene

  • Attached a UI Camera for interface elements

  • Added a Canvas to house all UI components

This separation allowed me to keep gameplay visuals and UI logic independent while ensuring consistent layering and performance.

UI & Feedback

Using the UI Canvas, I designed:

  • Instructions

  • Score counter

  • Life counter

These values update dynamically during gameplay, giving players immediate feedback when they collect or destroy asteroids.

Keeping the UI simple was intentional, Snapchat lenses need to communicate quickly without cluttering the screen.

asteroid system

For the asteroids, I used Lens Studio AI to generate the base asset.

Instead of creating multiple asteroid types, I deliberately used one clean, reusable model to keep the experience lightweight and focused.

Rather than duplicating objects manually in the editor, I handled everything through code.

How it works:

  • An Asteroid Spawn script duplicates instances at runtime and controls where and when asteroids appear

  • Objects are recycled to maintain performance

This made the game scalable without bloating the scene hierarchy.

Game Logic & Architecture

I structured the project using modular scripts:

  • Game Manager → controls overall state, score, and lives

  • Spawner → handles asteroid generation

  • Asteroid Behavior → movement + collision

  • UI Controller → updates text dynamically

Keeping these systems separate made debugging easier and allowed me to iterate quickly.

Design Decisions

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior


It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

Originally, I experimented with a traditional shooting mechanic using bullets.

However, during testing, it felt unnatural for Snapchat.

So I pivoted.

Instead of forcing a classic control scheme, I adopted tap interaction, something users already understand inside the app.

This made the experience:

  • More intuitive

  • Faster to learn

  • More aligned with platform behavior

It reinforced an important lesson:

good design isn’t about complexity, it’s about context.

what i learned

This project helped me understand:

  • Real-time spawning systems

  • Scene architecture in AR

  • Performance considerations on mobile

  • Designing mechanics around user habits, not personal preference

More than anything, it strengthened my ability to think like both a developer and a product designer.

final result

The final Lens runs smoothly inside Snapchat, with responsive gameplay and minimal setup for the user.

Tap, play, compete — instantly.

Create a free website with Framer, the website builder loved by startups, designers and agencies.