AI-Powered Math & Physics Solver An interactive AI-powered web application that allows users to draw mathematical and physics equations on a canvas, upload the image, and get step-by-step solutions using Google Gemini AI. Users can also chat with AI to clear their doubts.
π Features β Canvas-Based Input β Users can draw equations instead of typing. β AI-Powered Solutions β Gemini AI extracts, solves, and explains equations. β Interactive Chat β Ask follow-up questions and clarify doubts. β Fast & Responsive UI β Built with React & Tailwind CSS for a smooth experience. β Flask Backend β Manages requests, processes images, and integrates with AI.
π Tech Stack:-
Frontend:
- Framework: React
- CSS Framework: Tailwind CSS β Utility-first framework for a responsive UI
- React Hooks: useContext, useEffect, useState
Backend:
- Framework: Flask β Lightweight Python web framework
- Libraries:
- Flask-CORS β Enables cross-origin requests
- PIL (Pillow) β Handles image processing
- dotenv β Manages API keys securely
- Base64 & BytesIO β Encodes images for AI processing AI Integration: Google Gemini AI API π How It Works 1οΈβ£ The user draws equations on the canvas. 2οΈβ£ The drawn image is uploaded and sent to the Flask backend. 3οΈβ£ The backend processes the image and sends it to Gemini AI. 4οΈβ£ The AI solves the equations step by step and returns an explanation. 5οΈβ£ Users can chat with AI to ask further questions.
π― Setup Instructions 1οΈβ£ Clone the Repository bash Copy Edit git clone https://github.com/Om-soni-15/Draw-Solve.git
2οΈβ£ Install Frontend Dependencies
cd draw-and-solve
npm install
npm start
3οΈβ£ Install Backend Dependencies
cd backend
pip install -r requirements.txt
python app.py
π Future Enhancements β Real-time Collaboration β Allow multiple users to solve together. β Multi-Language Support β Translate solutions into different languages. β Voice-Based Input β Solve equations using voice commands.
π€ Contributing We welcome contributions! Fork the repo, make your changes, and submit a pull request.
π© Have suggestions? Feel free to raise an issue!