AI-powered math notes app with handwriting recognition that solves equations instantly—just write, and it computes.
SolveNote is a cross-platform notes application designed specifically for math. Built on the foundation of the popular Saber notes app, SolveNote adds powerful math recognition capabilities that can instantly solve handwritten equations and provide step-by-step solutions.
- Write equations by hand and get instant solutions
- Full-stack notes app with all the tools you need, whether you're solving a problem or taking notes for a class
- Currently available on Android and web (demo). iOS, Windows, macOS, Linux support coming soon!
- Synchronize your work across all your devices via Nextcloud
- Dark mode! Comfortably take notes in any lighting condition
- Import and annotate PDFs with full math recognition capabilities
- Write your equations/expressions naturally with pen/stylus/finger?
- Bounding box technology will instantly detect and group related strokes and identify your written equation
- Press
Solveto get the answer and view detailed solving steps (with LaTeX formatting) - Supports algebra, calculus, trigonometry, and more
- You can manually select strokes with lasso tool to solve specific equations (or if bounding box fails to detect your equation)
- Flutter SDK: Version 3.19.0 or higher
- Dart SDK: Version 3.0.0 or higher
- Platform-specific dependencies (see below)
-
Clone the repository
git clone https://github.com/saber-notes/saber.git cd saber -
Install dependencies
flutter pub get
-
Set up API key (for math recognition)
# For local development flutter run --dart-define=GEMINI_API_KEY=your_api_key_here # For production builds flutter build web --dart-define=GEMINI_API_KEY=your_api_key_here
-
Run the app
flutter run
flutter build apk --releaseflutter build web --release- Google Play Store: [Coming Soon]
- F-Droid: [Coming Soon]
- Direct APK: Download from GitHub Releases
- Live Demo: https://solvenote-7a7b2.web.app
-
Create a New Note
- Tap the "+" button to create a new note
- Choose from various paper styles and backgrounds
-
Write Mathematical Expressions
- Use the pen or pencil tool to write equations
- Write naturally - it will detect mathematical content automatically
-
Solve Equations
- Tap the "Solve" button that appears on detected expressions
- View the solution and step-by-step explanation
- Tap the expression again to hide/show the solution
To enable math recognition, you need a Google Gemini API key:
-
Get API Key
- Visit Google AI Studio
- Create a new API key
- Copy the key for use in SolveNote
-
Configure the App
- For development: Use
--dart-define=GEMINI_API_KEY=your_key - For production: Set environment variable or build-time define
- For development: Use
- Light Mode: Traditional white background
- Dark Mode: Inverted colors for low-light environments
- Dynamic Colors: Automatic theme adaptation (Android 12+)
- Pen Types: Fountain pen, ballpoint pen, shape pen
- Colors: Customizable color palette
- Sizes: Adjustable stroke width
- Pressure Sensitivity: Support for pressure-sensitive devices
lib/
├── components/ # UI components
│ ├── canvas/ # Drawing canvas and tools
│ ├── home/ # Home screen components
│ └── settings/ # Settings and configuration
├── data/ # Data layer
│ ├── math/ # Math recognition logic
│ ├── nextcloud/ # Cloud sync functionality
│ └── tools/ # Drawing tools
├── pages/ # Main app pages
└── i18n/ # Internationalization
MathRecognizer: Handles API communication with GeminiMathExpressionAnalyzer: Detects and groups mathematical strokesMathExpressionOverlay: UI for displaying solutions
Canvas: Main drawing surface with gesture handlingStroke: Represents individual pen strokesTool: Abstract base for different drawing tools
# Debug build
flutter run
# Release build
flutter build [platform] --release
# With math recognition enabled
flutter run --dart-define=GEMINI_API_KEY=your_keyThis project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details.
- Saber Notes: Built on the excellent foundation of the Saber notes app
- Open Source Community: All the amazing packages and tools that make this possible
