A community-driven Flutter app aiming to provide professional-grade drawing and painting tools that rival paid commercial software - completely free and open source.
Built with Flutter for cross-platform excellence, fPaint empowers artists, designers, and creators with powerful raster graphics tools across iOS, Android, macOS, Windows, Linux, and Web from a single codebase.
To create a free alternative to expensive commercial graphics software through community collaboration. We believe great tools should be accessible to everyone, and Flutter's cross-platform capabilities make this vision possible.
- Professional Drawing Tools - Advanced brushes, pressure sensitivity, and precision controls
- Layer Management - Full layer system with blending modes, opacity, and organization
- Selection Tools - Magic Wand, lasso, rectangle, and advanced selection capabilities
- Color Management - Professional color picker with palettes, gradients, and color harmony
- File Format Support - PNG, JPEG, TIFF, OpenRaster (ORA), and more
- Cross-Platform - Consistent experience across all major platforms
- Undo/Redo - Robust history system for creative freedom
- Responsive UI - Optimized for touch, mouse, and stylus input
This is more than an app - it's a movement. We're building the future of free graphics software together. Whether you're a:
- Flutter Developer - Help us push the boundaries of what's possible with Flutter
- Graphics Programmer - Implement advanced algorithms and optimizations
- UI/UX Designer - Create intuitive interfaces that inspire creativity
- Artist/Designer - Provide feedback on tools and workflows
- Tester - Help ensure quality across all platforms
- Documentation Writer - Make our project accessible to newcomers
Your contribution matters. Every line of code, every bug report, every feature suggestion brings us closer to replacing paid commercial software with a truly free alternative.
Unlike commercial alternatives, fPaint will always remain completely free with:
- π πΌ No ads or monetization
- π πΌ No feature restrictions
- π πΌ No premium tiers
- β Full source code transparency
- β Community-driven development
- β Cross-platform availability
We're building toward feature parity with commercial graphics editors. Current priorities include:
- Multi-layer system with blending modes
- Advanced selection tools (Magic Wand, Lasso)
- Professional color management
- Multiple file format support
- Advanced brush engines (contributions needed!)
- Text tool improvements (contributions needed!)
- Performance optimizations (contributions needed!)
- Non-destructive filters and effects
- Advanced typography and text-on-path
- CMYK color management
- Scripting/automation
Your expertise in any of these areas would accelerate our progress tremendously!
- Flutter SDK (3.35.7 or higher)
- Dart SDK (3.9.2 or higher)
- Edit and build on macOS, Windows, or Linux
- IDE: VS Code or Android Studio
- iOS Simulator / Android Emulator (for mobile development)
-
Clone the repository
git clone https://github.com/vteam-com/fPaint.git
-
Navigate to the project directory
cd fPaint -
Install dependencies
flutter pub get
-
Run the app
flutter run
fPaint includes comprehensive integration tests that demonstrate advanced painting features and multi-layer scene creation. The integration tests use human-like gestures to simulate real user interactions and create complete artwork scenes.
To run the integration tests:
# Run all unit test
flutter test
# Run integration test
./tool/run_integration_test.shThe integration tests demonstrate:
- Multi-layer scene creation: Sky gradients, sun with radiating rays, land, houses, and fences
- Advanced drawing tools: Circles, rectangles, lines with human-like gesture simulation
- Gradient fills: Linear and radial gradients for backgrounds and effects
- Layer management: Creating, switching, and organizing artwork layers
- Selection tools: Circle selection for precise area targeting
- Color management: Dynamic color palette and fill operations
The integration_test/integration_helpers.dart file provides reusable helper functions for:
- Human-like drawing gestures (circles, rectangles, lines)
- Layer management operations
- Gradient fill operations
- Color picker interactions
- UI element tapping and navigation
- Launch the app
- Choose your preferred brush size and color
- Start drawing on the canvas
- Use the SidePanel to:
- Change colors
- Adjust brush size
- Use advanced selection tools such as Magic Wand selection
- Manage layers efficiently
- Undo/Redo actions
- Clear the canvas
- Save your artwork
We welcome contributions! Please see our Contributing Guide for details on how to get started.
Please read our Code of Conduct before contributing.
If you discover a security vulnerability, please see our Security Policy.
This project is licensed under the MIT License - see the LICENSE file for details.
<?xml version="1.0" encoding="UTF-8"?>
<image xmlns:drawpile="http://paint.vteam.com/"
xmlns:mypaint="http://mypaint.org/ns/openraster" w="800" h="800" version="0.0.6" xres="72" yres="72" drawpile:framerate="24">
<stack>
<layer src="data/layer-0103.png" x="134" y="91" opacity="1.0000" name="birds"/>
<layer src="data/layer-0100.png" y="268" opacity="1.0000" name="Cloud"/>
<layer src="data/layer-0101.png" y="579" opacity="1.0000" name="Dirt"/>
<layer src="data/layer-0102.png" opacity="1.0000" name="sky"/>
<layer name="Background" src="data/background.png" mypaint:background-tile="data/background-tile.png"/>
</stack>
</image>How to generate the above graph. Run these commands on macOS .
dart pub global activate lakos
brew install graphviz
./tool/graph.shPlease contribute and report issues on the GitHub repository. https://github.com/vteam-com/fPaint
