High-Performance Image Editing,
Right in Your Browser.
100% Free & Open Source
Start Creating Instantly, No sign-up required.
OpenGPEX is an open-source pixel editor with zero-lag 60FPS interactions, non-destructive layer editing, and a sandboxed plugin ecosystem. Run it anywhere, or connect to GPEX-Cloud for edge sync and GPU-powered AI tools.

Essential Features, Powerful Foundation,
Infinite Extensibility
OpenGPEX is an evolving open-source image editor designed with longevity in mind. We provide polished, essential editing tools today, backed by a robust and high-performance canvas engine. As your needs grow, you can extend any capability seamlessly via our modular plugin system.
Professional Brush Engine
Catmull-Rom spline smoothing with stamp-based rendering. Adjustable size, opacity, hardness, and pressure sensitivity.
Non-Destructive Eraser
Erases via masks — original pixels are never lost. Tab to switch between Erase and Restore modes anytime.
Inline Text Editing
Native contenteditable with full IME (CJK) support, 60+ fonts, Google Fonts search, and local font access.
AI Background Removal
Remove backgrounds in one click — powered by RMBG 1.4 and InSPyReNet, running entirely in your browser. No upload needed.
SAM 2.1 Smart Selection
Click any object to select it precisely with Segment Anything Model 2.1. AI segmentation meets pixel-level accuracy.
Curves, Levels & More
5-tab adjustment panel: Curves, Levels, Channel Mixer, Color Balance, and Basic adjustments — all non-destructive.
Advanced Layer System
Multi-layer compositing with 16 blend modes, opacity, fill, lock states. Handles 100MP+ images without slowdown.
10+ Format Support
PNG, JPEG, WebP, AVIF, TIFF (16-bit), SVG, EPS, RAW (CR2/NEF/ARW/DNG), HEIC, GIF (animated), and BMP.
Plugin Everything
Every tool is a plugin. Install community extensions at runtime via ZIP, or build your own with TypeScript APIs.
Buttery Smooth. 60FPS Guaranteed.
No matter how complex your project gets — hundreds of layers, massive canvases, detailed brushwork — OpenGPEX stays silky smooth. Every interaction responds instantly, so your creative flow is never interrupted.
Zero-Lag Drawing
Your brush follows your hand with no delay — strokes appear the instant you draw them.
Fast-track volatile refs bypass React rendering. 60FPS GSAP ticker drives all visual updates.
Massive Canvas Support
Work on ultra-high-resolution artwork (4K+) without slowdown or memory crashes.
Tiled 512×512 rendering with Mipmap LOD. Only dirty tiles re-render per interaction.
Unlimited Undo History
Go back as many steps as you need. Your viewport stays exactly where you left it — no sudden jumps.
JSON Patch-based incremental undo. Document state and viewport navigation are physically isolated.
Pixel-Perfect Precision
Edges stay sharp, layers align exactly, and there are no gaps between elements — even during transforms.
Subpixel mask margins + counter-rotation matrix sync prevent light-gaps at any zoom level.
Heavy Lifting in Background
Export, blend, and composite layers without freezing your interface. Keep editing while it works.
Web Workers + OffscreenCanvas handle heavy pixel ops. Main UI thread stays fully responsive.
Crash-Proof Plugins
Third-party tools can't crash your editor. Your work is always safe, no matter what plugins you install.
PluginErrorBoundary sandbox with UID namespace isolation. Faults are locally contained.
A Plugin System Built for Absolute Extensibility
Every tool in OpenGPEX — from the brush engine to the layer panel — is a plugin. The metadata-driven IoC registry enables seamless extension without touching core code, with full runtime safety guarantees.
Metadata-Driven Registry
Plugins declare slots (SIDE_BAR, VIEWPORT_OVERLAY, OPTION_BAR), commands, and signals. The build compiler generates a global UID catalog automatically — zero manual wiring.
PluginErrorBoundary Sandbox
Third-party plugins render inside fault-tolerant error boundaries. A fatal crash in any plugin is isolated locally — the core canvas, undo stack, and project saving remain 100% intact.
UID Namespace Isolation
Every plugin, command, and signal gets a unique prefixed UID (author.category.plugin.cmd.name). Scoped context ensures plugins can only mutate their own authorized state blocks.
Physical Slot Positions
Discover and install community plugins. One-click install from the Hub, with sandboxed execution in the running editor.
Free and Open Source.
Self-Host, Fork, Embed — Your Rules.
OpenGPEX is licensed under GPL-3.0. The full source of the core editor, plugin system, brush engine, and rendering pipeline is open. Run it locally, deploy on your own infrastructure, build derivative works under the same open license, or contribute back to the community. Zero telemetry, zero vendor lock-in.
✔ 20+ core plugins loaded · 0 errors
Frequently Asked Questions
Common questions about OpenGPEX.
What is OpenGPEX?
OpenGPEX is an open-source, browser-based pixel editor featuring a tiled rendering pipeline, dual-track 120FPS architecture, non-destructive layer editing, and a fully extensible plugin system. You can self-host it for free, or use the official GPEX-Cloud service for edge sync, team collaboration (coming soon), and GPU-powered AI tools.
How do I install and run OpenGPEX locally?
Clone the repository, run `pnpm install` and `pnpm dev`. The editor launches at localhost:3030 with all core plugins loaded. No external services or API keys are required — everything runs offline in your browser.
What image formats can I import and export?
Import supports PNG, JPEG, WebP, SVG, and common bitmap formats via drag-and-drop or file picker. Export supports PNG (lossless), JPEG (lossy), WebP (modern), and AVIF (next-gen via WebAssembly). All encoding runs in background Web Workers so the UI stays responsive.
Can I use OpenGPEX on mobile or tablet?
OpenGPEX uses the PointerEvent API which supports touch and stylus input. The viewport supports pinch-to-zoom and pan gestures. While the UI is optimized for desktop workflows, basic editing is functional on tablets with modern browsers.
How do I create a custom plugin?
Follow the 5-File Pattern: create a folder with index.tsx (plugin entry), protocols.ts (constants & IDs), commands.ts (business logic), hooks.ts (React bridges), and components.tsx (UI). Declare your target slot (SIDE_BAR, VIEWPORT_OVERLAY, etc.) and register commands/signals. The core auto-discovers your plugin at build time.