NeonFlux is a futuristic, interactive WebGL experience that lets you control thousands of neon particles using hand gestures. Built with Three.js and MediaPipe, it runs entirely in the browser using your webcam.
🔗 Demo: https://neonflux.eugene.tw
- Real-time Hand Tracking: Powered by Google MediaPipe for low-latency gesture recognition.
- Dual Hand Support:
- Left Hand (1-5 fingers): Displays custom text messages (Text 1-5).
- Right Hand (1-5 fingers): Displays another set of custom text messages (Text 6-10).
- Ultimate Combo: Open both hands (5 fingers each) to display the theme text in the center.
- Dynamic Text Control: Customize the text displayed for each gesture directly from the UI panel.
- Auto-fit Typography: Text automatically scales to fit the screen, no matter how long the message is.
- Particle Physics: 30,000+ individual particles with fluid, physics-based movement and neon glow effects.
- A modern web browser (Chrome, Edge, Firefox, Safari).
- A webcam.
- Python 3 (for running a local server).
-
Clone the repository (replace
<your-username>with your GitHub username):git clone https://github.com/<your-username>/NeonFlux.git cd NeonFlux
-
Run a local server:
# Python 3 python3 -m http.server 8000 -
Open your browser and visit:
http://localhost:8000
-
Allow Camera Access: When prompted, allow the browser to access your webcam.
-
Hand Gesture Guide:
Use hand fingers to trigger different language displays. The system supports 11 unique display modes (5 left-hand languages + 5 right-hand languages + 1 theme mode).
Fingers Default Text Display Content 1 👍 First Custom text 1 2 ✌️ Second Custom text 2 3 🤟 Third Custom text 3 4 🫴 Fourth Custom text 4 5 ✋ Bye Custom text 5 Fingers Default Text Display Content 1 👍 First Custom text 6 2 ✌️ Second Custom text 7 3 🤟 Third Custom text 8 4 🫴 Fourth Custom text 9 5 ✋ Bye Custom text 10 Gesture Mode Effect Both hands 5 fingers ✋✋ Ultimate Combo Displays custom theme text with special 3D particle effects -
Priority Logic:
- If Left Hand is active, it takes priority and displays left-hand language.
- If Left Hand is hidden/idle, Right Hand language is shown.
- If BOTH hands show 5 fingers → Ultimate Combo Mode activates with theme text!
-
Customize Text:
- Click the SETTINGS (▼) button in the bottom-left corner.
- Edit text for each gesture (Left Hand 1-5, Right Hand 1-5, and Theme text).
- Click UPDATE to apply changes instantly (no page reload needed).
- 🎤 Conference/Presentation: Show your slides in different languages by changing hand gestures.
- 🗣️ Language Learning: Display vocabulary in multiple languages side-by-side.
- 🎨 Creative Display: Use the Ultimate Combo mode for branded content or promotional messages.
- 🎭 Stage Performance: Control on-screen text effects with hand movements.
- Three.js: WebGL rendering engine.
- MediaPipe Tasks Vision: Machine learning for hand tracking.
- Vanilla JavaScript (ES6+): Core logic.
- HTML5/CSS3: UI and structure.
- All processing runs locally in the browser; webcam frames are not uploaded or stored.
- Camera access requires HTTPS or
localhost.
- Three.js: Loaded from
https://unpkg.com/. - MediaPipe Tasks Vision: Loaded from
https://cdn.jsdelivr.net/, model hosted onhttps://storage.googleapis.com/. - Google Fonts (Orbitron): Loaded from
https://fonts.googleapis.com/.
- Contribution guidelines:
CONTRIBUTING.md. - Code of conduct:
CODE_OF_CONDUCT.md. - Security reporting:
SECURITY.md.
This project is open source and available under the MIT License.
Created by Eugene Wang
