Star Wars Sith Photobooth is an immersive web application that transforms users into iconic Star Wars characters using real-time AI-powered face detection and mask overlays. Built with cutting-edge web technologies, it provides an authentic Star Wars experience with professional-grade photo capture capabilities.
- 🤖 Real-time AI face detection using MediaPipe
- 🎭 Dynamic mask overlays with 6+ Star Wars character masks
- 🧠 AI-enhanced photo processing via Google Gemini API
- 🎵 Immersive audio experience with authentic Star Wars soundtracks
- 📱 Progressive Web App (PWA) for mobile installation
- 🌐 Cross-platform compatibility (Web & Mobile)
- 📸 Professional photo gallery with download capabilities
- HTML5/CSS3 - Responsive UI with Star Wars theming
- JavaScript (ES6+) - Real-time canvas manipulation
- WebRTC API - Camera access and video streaming
- Canvas API - Real-time mask overlay rendering
- Web Audio API - Immersive sound effects
- MediaPipe - AI-powered face detection
- PWA Technologies - Service workers, manifest
- Python 3.12 - Server-side application logic
- Flask - Lightweight web framework
- RESTful APIs - Clean API architecture
- Gunicorn - Production WSGI server
- File Upload System - Image storage and management
- Session Management - User state handling
- Error Handling - Comprehensive error management
- Logging System - Application monitoring
This project demonstrates comprehensive full-stack development skills across multiple layers:
- 🎨 Advanced UI/UX Design - Custom Star Wars themed interface with responsive design
- ⚡ Real-time Interactions - Live camera feed with instant mask overlay rendering
- 📱 Progressive Web App - Mobile-first design with PWA capabilities
- 🎵 Multimedia Integration - Audio management and visual effects
- ♿ Accessibility - WCAG 2.1 compliant interface design
- 🔧 RESTful API Design - Clean, scalable API architecture
- 📁 File Management System - Image upload, processing, and storage
- 🔐 Security Implementation - Input validation and secure file handling
- ⚙️ Configuration Management - Environment-based configuration
- 📊 Error Handling & Logging - Comprehensive monitoring system
- 🔄 Real-time Communication - Frontend-backend data synchronization
- 📸 End-to-end Photo Pipeline - From capture to storage to download
- 🎭 Dynamic Content Management - Mask and theme management system
- 🌐 Cross-platform Deployment - Web and mobile compatibility
- ⚡ Performance Optimization - Full-stack performance tuning
Traditional photo booth solutions have significant limitations:
- 💰 High Infrastructure Costs - Expensive hardware and maintenance
- 🔒 Limited Scalability - Physical constraints and location dependencies
- 📱 Poor Mobile Experience - Desktop-only solutions
- 🎨 Lack of Customization - Fixed templates and limited themes
- ⏱️ No Real-time Preview - Users can't see effects before capture
We've built a complete web-based photobooth platform that:
- ✅ Zero Hardware Requirements - Runs entirely in web browsers
- 🌐 Global Accessibility - Available anywhere with internet access
- 📱 Mobile-first Design - Optimized for all device types
- 🎨 Infinite Customization - Easily extensible theme system
- ⚡ Real-time Experience - Instant preview and capture
- 🔧 Easy Deployment - Simple setup and maintenance
This project is ready for deployment on Vercel and can be pushed to GitHub.
To push this project to your GitHub repository, follow these steps:
-
Initialize Git (if you haven't already):
git init git add . git commit -m "Initial commit: Star Wars Photobooth"
-
Create a new repository on GitHub.
-
Link your local repository to the remote one and push:
git remote add origin <YOUR_GITHUB_REPO_URL> git branch -M main git push -u origin main
This project includes a vercel.json file, which allows for seamless deployment.
-
Sign up for a Vercel account and install the Vercel CLI:
npm install -g vercel
-
Login to your Vercel account:
vercel login
-
Deploy the application from your project's root directory:
vercel --prod
Vercel will automatically detect the Python (Flask) backend and the static frontend, build the project, and deploy it.
Note: For the best experience, use a modern browser with camera support.
If the browser console shows a 404 when trying to load the MediaPipe FaceLandmarker model, landmark-based detection (fine-grained eye/nose landmarks) will be unavailable and the app will fall back to bounding-box heuristics.
To enable landmark-based placement you can host the model locally and point the loader at it:
- Create a folder
static/modelsin the project root. - Download the FaceLandmarker task file (for the correct MediaPipe Tasks release) and save it as
static/models/face_landmarker.task. - Update the model path in
static/js/faceDetection.jsby replacing themodelAssetPathwith/static/models/face_landmarker.taskor update thecandidateUrlsarray.
Note: the exact model file URL depends on MediaPipe Tasks releases; if you have trouble locating the right .task file, check the MediaPipe Tasks release notes or use a public CDN and update static/js/faceDetection.js accordingly.