SkillAgentSearch skills...

Paintdotjs

paint.js is a proof-of-concept, cross-platform raster graphics editor written in JavaScript. It’s a port of Paint.NET v3.36.7, bringing the best Windows painting tool to macOS, Linux, and the web via Electron and the browser.

Install / Use

/learn @LabyStudio/Paintdotjs
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

paint.js

paint.js is a proof-of-concept, cross-platform raster graphics editor written in JavaScript, ported from Paint.NET (v3.36.7) by Rick Brewster, the last version released under the original MIT-compatible license.

Why?

Paint.NET is arguably the best and simplest painting tool available on Windows. Since switching to Linux, it has been the program I miss the most and used every day. The goal of this port is to bring that same experience to macOS, Linux, and the web.

License

⚠️ Note: This project is developed on Chromium and may currently only work correctly in Chromium-based browsers.

App version

Web version


Features

The current proof-of-concept includes:

  • Full document UI & layout
  • Zooming & panning
  • Complete edit history with undo/redo
  • Document layering system
  • Color picker
  • Tools window with multiple document support
  • Selection tools: lasso, rectangle select
  • Transform tools: move, rotate, resize (rectangle selections)

⚠️ Note: Selections transformation is currently unstable, and performance for large selections is a work in progress.


Getting Started

Follow these steps to get paint.js running locally.

1. Download and Extract Assets

paint.js uses the latest assets from Paint.NET 5.1.12.
Due to licensing, these assets cannot be included in this repository, so you need to download them yourself:

python3 scripts/download_assets.py

This script will automatically fetch the required assets so the app can run properly.

2. Install Dependencies

npm install

3. Run the Application

Electron Desktop App

npm run app

The Electron version runs as a standalone program, similar to the original Paint.NET application.

Web Version

npm run web-watch

Then open index.html in your browser. The web version runs as a website, allowing you to use paint.js on any device with a compatible browser.


Development & Contributing

paint.js is still a proof-of-concept and is reaching a complex stage where performance optimizations are needed. The current challenge includes:

  • Selection transformations: moving and resizing work; rotation is partially broken
  • Performance improvements for large selections
  • Implementation of additional tools

If you are interested in contributing, your help is highly welcome!


License

This project is licensed under the MIT License. See the LICENSE file for details.

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated3d ago
Forks1

Languages

JavaScript

Security Score

75/100

Audited on Apr 2, 2026

No findings