An immersive, hands-free interactive art gallery experience powered by computer vision and AI. This project demonstrates the potential of accessible technology using only a webcam to create engaging digital art experiences.
- Create an immersive, hands-free interactive art gallery experience using computer vision and AI
- Support users with limited mobility or in AR/VR contexts
- Enable digital artists to showcase their work in an accessible and engaging manner
- Explore the current scope of homemade CV solutions with just a webcam
- Zero-cost implementation utilizing robust, real-time pose detection
- Demonstrate the power of combining various tools for interactive experiences
- OpenCV - Real-time webcam processing and frame manipulation
- MediaPipe - ML-powered facial landmark detection and face mesh mapping
- OpenAI GPT-4 - AI art guide for contextual artwork information
- Ursina Engine - 3D scene rendering, GUI management, and entity interactions
- Panda3D - Underlying 3D graphics engine
- SpeechRecognition - Voice command processing
- PyAudio - Audio input handling
- NumPy - Mathematical computations
- python-dotenv - Environment variable management
- Head Movement: Look around the gallery by moving your head
- Single Blink: Teleport to highlighted floor tiles or interact with artworks
- Long Blink (1+ seconds): Close artwork information panels
- Voice Commands: Say "art guide" to ask questions about displayed artworks
The Eye Aspect Ratio is a crucial metric for reliable blink detection, calculated using facial landmarks from MediaPipe. When the EAR drops below a threshold, we detect a blink.
def eye_aspect_ratio(eye):
p2_minus_p6 = dist.euclidean(eye[1], eye[5])
p3_minus_p5 = dist.euclidean(eye[2], eye[4])
p1_minus_p4 = dist.euclidean(eye[0], eye[3])
ear = (p2_minus_p6 + p3_minus_p5) / (2.0 * p1_minus_p4)
return ear- Python 3.7+
- Webcam
- OpenAI API key (for AI art guide feature)
-
Clone the repository
git clone <repository-url> cd interactive-museum
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the project root:OPENAI_API_KEY=your_openai_api_key_hereNOTE: You will need OpenAI credits to call the LLM.
-
Run the application
python ursina_scene.py
This project demonstrates the intersection of computer vision, 3D graphics, and LLMs to create accessible and engaging digital experiences.

