Skip to content

mateuszmigas/painting-droid

Repository files navigation

Painting Droid

Try It Online | Download Desktop App | Board | Feedback Hub | Progress: ▓▓▓▓▓▓▓▓░░ 83%

100 - Commitów Vercel Validate



Painting Droid is an AI-powered cross-platform painting app inspired by the legendary MS Paint, but expandable with plugins and open. It utilizes various AI models, from paid providers to self-hosted open-source models, as well as some lightweight ones built into the app. It works in the browser and as a desktop app on Windows, macOS, and Linux.

Features

  • Your regular painting app features (e.g., brush, annotate, fill, etc.).
  • Fill selected areas with AI-generated content.
  • Augment selected areas with AI-generated content (e.g., add a tree to a landscape or remove the background).
  • Apply filters and effects to the entire image or a selected area.
  • Resize, crop, rotate, and flip the image.
  • Plugin support.
  • Cross-platform compatibility.

Overview

Architecture

How to develop

Web app

If you don't have it, install pnpm (Not required for Github Codespaces).

Locally

  1. Clone the repository
  2. Install the dependencies using pnpm install
  3. Run the app using pnpm dev:web

Using Dev Container

  1. Clone the repository
  2. Make sure you have Docker, Visual Studio Code and Dev Container extension installed
  3. Open the repository in Visual Studio Code
  4. Open the command palette and run Dev Containers: Reopen in Container
  5. Change pnpm store dir pnpm config set store-dir ~/.local/share/pnpm/store
  6. Install the dependencies using pnpm install
  7. Run the app using pnpm dev:web

Using Github Codespaces

  1. Open in GitHub Codespaces
  2. Install the dependencies using pnpm install
  3. Run the app using pnpm dev:web

Desktop app

  1. Clone the repository
  2. Install Tauri prerequisites
  3. Install the dependencies using pnpm install
  4. Run the app using pnpm dev:desktop

Platform support

Platform Supported
Browser yes (limited AI features)
Windows yes
MacOS yes
Linux yes (not tested)

Roadmap

Core features

  • Basic UI layout
  • Canvas manipulation
  • Canvas layers
  • Drawing tools: brush, pencil
  • Undo/Redo functionality
  • Command palette
  • State preservation
  • Custom 'Project' file format
  • Saving and loading projects
  • Area selection
  • Responsive UI
  • Online Demo Model for Web
  • WASM adjustments mechanism
  • Some Offline JS Model
  • Image resize/crop
  • Clipboard support
  • Desktop app releases and autoupdate

AI features (Desktop only)

  • Stable Diffusion Docker image for local server
  • Integration with DALL-E
  • Integration with Stability.ai
  • Integration with Midjourney

Post MVP

  • Use Blob instead of base64 for storing images
  • Use IndexDB instead of localStorage for image data
  • More image adjustments
  • More tools: fill, erase, magic wand, text
  • Release notes popup
  • Change renderer to webgl/webgpu
  • Optimize image conversions with Rust
  • Custom app menu for MacOS
  • Annotation tools: line, rectangle, circle
  • Plugin support

Contributions

Feel free to pick up any task from the good first issue list.

  1. Create a feature branch and implement the feature.
  2. Create a pull request when finished.
  3. Check pipelines and for "Preview" deployment.
  4. Wait for the core author to approve.

License

MIT