A real‑time math problem drawing and solving tool using hand gestures and Google’s Gemini AI.
Draw math expressions in front of your webcam using your index finger, clear the canvas with your thumb, and show four fingers to send the drawing to the AI for solving.
- Hand Tracking & Drawing
Utilizescvzone+ MediaPipe to detect your hand, track finger position, and draw on a transparent canvas. - AI‑Powered Math Solver
Sends your hand‑drawn math problem to Google Gemini (viagoogle-generativeai) for instant solutions. - Interactive Web UI
Built with Streamlit for a seamless webcam feed + drawing overlay and solution display.
- Python 3.8+
- A webcam supported by
imageio/ OpenCV - A Google Gemini API key (called
GEMINI_API_KEY)
git clone https://github.com/GautamBytes/Math_Gesture_Prediction_tool.git
cd Math_Gesture_Prediction_toolpython -m venv .venv
.\.venv\Scripts\activatepython -m venv .venv
.\.venv\Scripts\Activate.ps1python3 -m venv .venv
source .venv/bin/activatepip install --upgrade pip
pip install -r requirements.txtTo generate a Gemini API key, visit:
https://aistudio.google.com/app/apikey
Then create a file named .env in the project root with the following content:
GEMINI_API_KEY=your_google_gemini_api_key_hereNote: Do not commit your
.envfile to version control.
Run the provided camera‑listing script to find your webcam’s index:
python list_cameras_imageio.pyYou’ll see output like:
Index 0: Camera found
Index 1: Camera not found, error: ...
Remember the index where “Camera found” appears (commonly
0or1).
If your camera index is not 0, open main.py and update:
camera_index = 0 # ← change to the index found abovestreamlit run main.py- The browser will open at
http://localhost:8501by default. - To specify a different port, add
--server.port <PORT>to the command.
- Draw
- Raise index finger to draw lines on the canvas.
- Clear
- Show thumb up gesture to reset/clear the canvas.
- Solve
- Show four fingers (all but pinky) to send the current drawing to Google Gemini for solving.
- The AI’s solution appears in the right‑hand pane.
Expand the “How to use” panel in the app for these same instructions.
- No camera detected
- Double‑check the camera index via
list_cameras_imageio.py. - Ensure no other app is blocking the webcam.
- Double‑check the camera index via
GEMINI_API_KEY** not found**- Confirm your
.envfile is in the project root. - Restart the Streamlit server after updating
.env.
- Confirm your
- Slow or inconsistent detection
- Improve lighting & background contrast.
- Reduce
modelComplexityor lower detection thresholds inHandDetector.