IRL Clash — Go Outside. Take a Shot. Win the Battle.
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
What I Built
I built IRL Clash, a real-world multiplayer photography battle designed to get people away from their screens and into the outdoors.
Instead of joining a traditional game lobby, players simply enter a nickname and share their location. When two active players are close enough, the backend automatically matches them into a battle.
Each battle has 5 rounds, with 2 minutes per round.
For every round, players receive a random outdoor photography mission such as:
🍃 Find an interesting leaf
🌳 Capture an unusual tree
🚲 Find a bicycle
🌸 Find a flower
💧 Capture a water scene
🪨 Find an interesting rock
🌑 Take an interesting shadow shot
🪑 Find an outdoor bench
☁️ Capture an interesting cloud
🏛️ Photograph an architectural detail
Players can take a photo directly with their phone camera or select one from their gallery.
After the fifth round, the submitted images are evaluated by the AI referee. Each image receives a score out of 100 along with a short description and explanation. The five round scores are combined to determine the winner.
The goal is simple:
The screen isn't the game. The real world is.
IRL Clash is designed for friends, college students, meetups, and anyone who wants a more playful reason to go outside.
Demo
🌐 Live Backend: https://irl-clash.onrender.com/
🎮 Live Frontend: https://irl-clash.vercel.app/
The game works best on a mobile device because players can use GPS and the camera directly from their browser.
Code
💻 GitHub: https://github.com/Somesh-coding/IRL-Clash
The project is built as a full-stack application:
IRL Clash
│
├── Frontend
│ ├── React
│ ├── Vite
│ └── Browser Camera + Geolocation APIs
│
└── Backend
├── Java 21
├── Spring Boot
├── REST APIs
├── In-memory multiplayer state
└── AI image judging
There is intentionally no database for this version. Active players, battles, photos and scores are kept in memory, making the project lightweight and easy to run for a demo.
How I Built It
The frontend is built with React + Vite and provides the complete game experience, including:
Player registration
Browser geolocation
Automatic nearby-player matching
Five-round battle UI
Countdown timers
Camera capture
Gallery uploads
Live opponent status
Final score screen
The backend is built with Java 21 and Spring Boot.
It handles:
Player registration
Location updates
Distance calculation
Automatic player matching
Battle creation
Server-side round timing
Image uploads
AI evaluation
Score calculation
Winner determination
The application uses a configurable matching radius and a 120-second server-side timer for every round.
The image judging system sends the submitted images together with their corresponding missions to the AI referee. The referee returns structured scores, descriptions and reasons, which the backend uses to calculate the final result.
The backend is deployed on Render, while the frontend is deployed separately.
Why Does Open Innovation Matter?
For this project, the important idea is that the AI referee should not be the part that keeps people staring at the screen.
The AI is there to evaluate what players actually find outside.
Open AI tooling makes this kind of experiment easier to build, modify and extend. The architecture keeps the AI judging layer separate from the game itself, so the judging model can be replaced without redesigning the multiplayer system.
That opens the door to future versions using open-weight multimodal models and local inference.
For example, a future version could allow the AI referee to run locally on a laptop, edge device or phone. That would make it possible to keep players' outdoor photos and location-related data under their own control, while also allowing developers to experiment with different models and judging criteria.
The broader idea is:
Use AI to reduce the time people spend interacting with the application, not to increase it.
The app gives players a mission, gets them outside, and lets the real-world activity become the main experience.
My Agent Session
I used AI-assisted development during the implementation of IRL Clash for architecture, debugging, frontend/backend development and deployment troubleshooting.
Prize Categories
Overall — Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
Partner category: Best Use of Render
IRL Clash uses Render to deploy the Spring Boot backend and expose the multiplayer game APIs.
What's Next?
Some ideas for future versions:
Open-weight multimodal AI running locally
Persistent leaderboards
Team battles
More mission types
Friend challenges
Anti-cheat image verification
Better location privacy
Offline/edge AI judging
Public outdoor challenges and events
For now, the rule is simple:
Find someone nearby. Go outside. Take the shot. Win the clash. 🌿📸🏆
Top comments (0)