/painting-droid

AI-powered cross-platform painting app inspired by the legendary MS Paint.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Painting Droid

Try It Online | Download Desktop App | Docs | Board | Feedback Hub

Vercel Validate


Untitled.mp4


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.

Platform support

Platform Details Link
Desktop Windows/MacOS Github Releases
Browser (Desktop) Chrome/Safari/Firefox Web
Browser (Mobile) Not tested Web
Container Docker/Kubernetes Docker Hub

Overview

Architecture

How to develop

Web app

☁️ Github Codespaces

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

🖥️ Local Machine

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

🐳 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

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

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)

  • Integration with Stable Diffusion local server
  • Integration with DALL-E api
  • Integration with Stability.ai api

Post MVP

  • Use Blob instead of base64 for storing images
  • Use IndexDB instead of localStorage for image data
  • Chat with LLM about current layer
  • More image adjustments
  • More tools: fill, erase
  • Magic Wand
  • Text annotation tool
  • Release notes popup
  • Change renderer to webgl/webgpu
  • Optimize image conversions with Rust
  • Custom app menu for MacOS
  • Shape tools: rectangle, circle
  • Plugin support