awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
1j01 avatar

1j01/jspaint

0
View on GitHub↗
7,801 stars·662 forks·JavaScript·MIT·18 viewsjspaint.app/about↗

Jspaint

jspaint is a web-based reimplementation of Microsoft Paint, built entirely in JavaScript to run in a browser. It recreates the classic desktop application by reverse-engineering the original Win32 API calls and event handling, rendering the entire interface onto an HTML5 canvas for pixel-perfect retro graphics. The project preserves the original file format compatibility with BMP, PNG, GIF, and JPEG, ensuring exact pixel data matches the legacy application.

The application maintains a complete undo history stack using compressed image snapshots, and offloads computationally intensive image processing to web workers to keep the interface responsive. It includes a plugin extension system that allows third-party scripts to hook into the application lifecycle and modify tool behavior. User preferences, tool settings, and recent files are persisted across page reloads through browser localStorage.

Additional capabilities include vertical text input and editing for CJK typesetting, the ability to list installed fonts for text tool selection, and a toggle for the font formatting toolbar. The desktop version can be packaged as an AppImage for Linux distributions.

Features

  • Canvas Rendering - Renders the entire application UI onto an HTML5 canvas using pixel-level drawing operations.
  • Legacy Image Format Preservation - Preserves exact pixel data for BMP, PNG, GIF, and JPEG formats matching the legacy application.
  • Win32 API Emulation Layers - Reimplements original MS Paint logic by reverse-engineering and porting Win32 API calls to JavaScript.
  • JavaScript Plugin Systems - Allows third-party scripts to hook into the application lifecycle and modify tool behavior via a JavaScript plugin API.
  • Image Processing Offloading - Offloads computationally intensive image processing operations to background web workers for UI responsiveness.
  • Undo-Redo History - Maintains a complete stack of canvas state snapshots for unlimited undo/redo operations using compressed image data.

Star history

Star history chart for 1j01/jspaintStar history chart for 1j01/jspaint

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Jspaint

These projects share indexed features with Jspaint. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • szimek/signature_padszimek avatar

    szimek/signature_pad

    11,955View on GitHub↗

    signature_pad is a JavaScript library and drawing tool for capturing handwritten digital signatures on an HTML5 canvas. It provides a handwriting capture interface that transforms raw mouse or touch inputs into smooth, professional-looking lines. The project uses Bézier curve interpolation to smooth jagged input points into fluid strokes. It supports the configuration of drawing aesthetics, including pen color, background color, and line width, and includes a history management system for undoing and restoring drawing actions. The library handles the serialization of signature data into poin

    TypeScriptcanvasdrawingjavascript
    View on GitHub↗11,955
  • remy/html5demosremy avatar

    remy/html5demos

    4,729View on GitHub↗

    This project is a collection of technical demonstrations and prototypes that showcase various HTML5 APIs, multimedia capabilities, and web standard implementations. It serves as a frontend technology sandbox and a gallery of implementation proofs-of-concept for modern browser features. The collection includes specialized showcases for HTML5 multimedia, featuring the manipulation of audio, video, and real-time media streams. It also provides a series of experiments focused on prototyping web capabilities to verify technical feasibility and browser support in live environments. The project cov

    HTML
    View on GitHub↗4,729
  • samdutton/simplsamdutton avatar

    samdutton/simpl

    5,191View on GitHub↗

    Simpl is an HTML, CSS, and JavaScript example library that provides a collection of minimal functional demonstrations of core web technologies and native browser APIs. It serves as a reference implementation and pattern gallery for frontend development, offering practical examples of how to implement common web features. The project showcases a wide range of browser capabilities, including real-time web communication via WebSockets and WebRTC, responsive web design techniques for adaptive layouts, and the implementation of offline workflows using service workers. It also provides demonstratio

    HTMLcsshtmljavascript
    View on GitHub↗5,191
  • antonioru/beautiful-react-hooksantonioru avatar

    antonioru/beautiful-react-hooks

    8,355View on GitHub↗

    This project is a collection of reusable React hooks designed to wrap browser APIs, manage state persistence, and handle DOM observation. It provides a consistent interface for integrating native browser capabilities directly into the React component lifecycle. The library includes specialized toolkits for monitoring the browser environment, such as window resizing, network connectivity, and viewport visibility. It also provides mechanisms for managing execution timing through debouncing, throttling, and the control of timeouts and intervals. Additional capabilities cover state management wi

    JavaScriptcustom-hooksfront-endhooks
    View on GitHub↗8,355
Compare all 30 related projects→

Frequently asked questions

What does 1j01/jspaint do?

jspaint is a web-based reimplementation of Microsoft Paint, built entirely in JavaScript to run in a browser. It recreates the classic desktop application by reverse-engineering the original Win32 API calls and event handling, rendering the entire interface onto an HTML5 canvas for pixel-perfect retro graphics. The project preserves the original file format compatibility with BMP, PNG, GIF, and JPEG, ensuring exact pixel data matches the legacy application.

What are the main features of 1j01/jspaint?

The main features of 1j01/jspaint are: Canvas Rendering, Legacy Image Format Preservation, Win32 API Emulation Layers, JavaScript Plugin Systems, Image Processing Offloading, Undo-Redo History.

Which projects share features with 1j01/jspaint?

Projects with overlapping indexed features include: szimek/signature_pad — signature_pad is a JavaScript library and drawing tool for capturing handwritten digital signatures on an HTML5… samdutton/simpl — Simpl is an HTML, CSS, and JavaScript example library that provides a collection of minimal functional demonstrations… remy/html5demos — This project is a collection of technical demonstrations and prototypes that showcase various HTML5 APIs, multimedia… antonioru/beautiful-react-hooks — This project is a collection of reusable React hooks designed to wrap browser APIs, manage state persistence, and… fogleman/gg — gg is a Go 2D graphics library and vector graphics engine designed for programmatic image generation. It provides a… anvaka/map-of-github.