Free Pixel Art Editor
Draw pixel art with customizable grids and export as PNG.
Keyboard Shortcuts
D · Draw tool E · Eraser F · Fill (bucket) I · Color picker
L · Line tool R · Rectangle tool Ctrl+Z · Undo
Pixel Art Was Born in Hardware, and Then Chose to Stay
Pixel art was not, in its first decades, an aesthetic, it was a constraint. The Atari 2600 (Summer CES, 4 June 1977) drew its picture with a Television Interface Adaptor that exposed two 8-pixel-wide "player" sprites and reused them line-by-line; programmers learned to "race the beam" to get more colours visible at once. The Commodore 64 (January 1982) offered eight 24×21 hardware sprites and a 16-colour VIC-II palette that became the visual signature of an entire decade of European games. The NES (1985) used a Ricoh 2C02 PPU with a master palette of around 54 distinguishable colours of which 25 could be on-screen at once, partitioned into a 13-colour background palette plus four 3-colour sprite sub-palettes, and the 8×8 sprite tile became the design unit you can still feel in pixel art today. The Game Boy DMG-01 (1989) took the limit further: four shades of one colour on a 160×144 reflective LCD that read olive-green in daylight. None of these palettes were chosen for beauty; they were chosen by what the chip could do for pennies.
Sometime in the 1990s, the equation flipped. Hardware caught up; pre-rendered then real-time 3D became the default for big-budget production. Pixel art could have died there. Instead, it became something rarer: a deliberate aesthetic choice. Daisuke Amaya (who signs his work simply "Pixel") spent five years between college and a day job assembling Cave Story, released as freeware on 20 December 2004. Markus "Notch" Persson posted the first version of Minecraft to TIGSource on 17 May 2009, with default block textures of 16×16 pixels, still the canonical resource-pack format. Eric "ConcernedApe" Barone shipped Stardew Valley on 26 February 2016 after roughly four and a half years of solo development, drawing every sprite himself in Paint.NET. Heart Machine released Hyper Light Drifter (March 2016); Maddy Thorson and Noel Berry released Celeste (January 2018), built originally as a four-day prototype on Joseph White's PICO-8 fantasy console. Motion Twin shipped Dead Cells in August 2018, whose "pixel art" is actually 3D models re-rendered at low resolution. Together these games made it impossible to argue pixel art was nostalgia, it was a contemporary medium with its own conventions, tools and superstars.
Why Power-of-Two Grids and How to Choose Yours
The standard pixel-art canvas sizes (8×8, 16×16, 32×32, 64×64) trace directly back to console hardware. The NES 8×8 tile, the C64 24×21 sprite, the Game Boy 8×8 OBJ, bitmap data that could be addressed with cheap power-of-two arithmetic and packed efficiently into memory. A 16×16 character sprite is two NES tiles stacked; a 32×32 is four. The convention persisted past the era when memory addressing cared, because by then artists had internalised the working rhythm of "one tile is 8 or 16 pixels and contains one readable shape." Practical use of each size in this editor: 8×8 for icons, Twitch chat-emote sketches, and tiny tile elements; 16×16 for the workhorse character sprite, item icons, and the canonical Minecraft texture format; 32×32 for detailed character portraits or larger props; 48×48 for tilesets that include shading; 64×64 for hero-scale sprites and small scenes. Start small, pixel art is defined by its low resolution, and the discipline of working at 16×16 or 32×32 is what produces art that reads cleanly at thumbnail size.
Palettes, The Discipline That Makes Pixel Art Read
Hardware palette limits gave pixel art its second defining trait: forced colour discipline. The NES allowed each 8×8 background tile at most four colours (counting the universal background); the Game Boy DMG could express only four shades of green-grey at a time. Modern hardware imposes none of this, any pixel artist in 2026 has the entire 24-bit RGB colour space and full 8-bit alpha. Yet the community largely chooses to work inside 16-, 32-, or 64-colour palettes anyway, and not for retro affectation. A small palette forces every colour decision to count: it forces a coherent value structure, complementary hues with intent, reused colours across multiple sprites so that a scene reads as unified rather than chaotic. This is why so much modern pixel art looks intentional in a way most amateur digital art does not. The palette is a discipline, like the 14-line constraint of a sonnet.
Four artist-curated palettes dominate the modern scene. PICO-8 (Joseph "zep" White, unveiled 9 May 2014 at Pico Pico Cafe with public release in 2015), sixteen colours whose lineage White traces to the Commodore 64, Amiga 500 trackers, and "the overall aesthetics of other 80s hardware." Celeste's 2015 prototype was written on PICO-8 in four days. DawnBringer DB16 and DB32 (Richard Fhager, 2007 and later), designed for hand-painted, expressive pixel work rather than to mimic any hardware. Now bundled by default with Aseprite and GIMP. Endesga 32 and 64 (Seth "ENDESGA"), built for "materialistic pixel art and design" with high contrast and high saturation. By raw download numbers (192,000+ for Endesga 32, 91,000+ for Endesga 64 on Lospec), among the most-used artist-made palettes on the internet. Sweetie 16 (GrafxKid), became the default palette in the TIC-80 fantasy console. Lospec.com itself, founded in 2017 by an artist who goes by skeddles, is the central community hub: palette database, tutorials, gallery (launched January 2023), tournaments, and a downloadable archive of every hardware palette in formats compatible with Aseprite, Photoshop, Paint.NET and GIMP.
How a Browser Pixel Editor Actually Works
A web pixel-art editor has to fight the browser's helpful defaults, every modern browser applies bilinear or bicubic interpolation when scaling images, fine for photos but ruinous for pixel art (it turns crisp pixels into blurry blobs). The fix is two complementary settings applied at different layers. CSS image-rendering: pixelated on the canvas element forces the browser's compositor to use nearest-neighbour scaling when the canvas is displayed at a different size than its backing store, when a 16×16 canvas is stretched to 512×512 in CSS, every original pixel becomes a 32×32 block of identical pixels with crisp edges. ctx.imageSmoothingEnabled = false on the 2D rendering context forces drawing operations themselves to use nearest-neighbour when scaling input data. Without both, you get blur. The drawing model: an in-memory 2D array of colour values, a canvas whose CSS size is much larger than its backing-store size, and tools that mutate the array and redraw affected cells with ctx.fillRect. The grid overlay sits on top as 1-pixel-wide lines that toggle off for unobstructed preview. PNG export uses canvas.toBlob(callback, 'image/png'): asynchronous, encoded off the main thread. PNG is the right format for two reasons: lossless (every pixel survives bit-exact) and supports alpha (transparent backgrounds for game sprites). JPEG is wrong, its DCT compression smears block edges and introduces ringing artefacts.
The Six Tools and What They Actually Do
- Pencil (D): writes a single pixel at the cursor position. To avoid gaps when the cursor moves quickly between mouse events, the tool draws a Bresenham line from the previous cursor position to the current one each frame.
- Eraser (E): structurally identical to the pencil but writes the background colour, returning pixels to their default state.
- Fill bucket (F): replaces every connected pixel of the same colour as the click target. Uses 4-connected flood fill (north/south/east/west neighbours, no diagonals) so that a thin diagonal line stops the bucket from leaking, the convention that matches user intuition. Implemented iteratively with a stack rather than recursively, because recursive flood fill on a large canvas overflows the JavaScript call stack.
- Eyedropper / Pick (I): reads the colour at the cursor's pixel and sets it as the current draw colour. One of the most-used tools in pixel art workflows once a palette is established.
- Line (L): uses Bresenham's line algorithm (Jack Bresenham at IBM, 1965) (integer addition and bitshift only, no division) to walk between two integer pixel coordinates while maintaining an error accumulator. Bresenham's deliberately stair-stepped jaggy look is a positive aesthetic feature here, not an artefact to smooth away.
- Rectangle (R): draws an axis-aligned rectangle outline. Two clicks: first sets the corner, second completes the opposite corner.
- Undo (Ctrl+Z): full step-by-step history.
Where Pixel Art Goes, Real-World Output Sizes
- Game sprites. The original and still primary use case, a 16×16 enemy, 32×32 player character, 48×48 boss, 16×16 grass tile, all assembled into a sprite sheet for runtime. The entire indie 2D economy rests on this workflow.
- Twitch emotes. Twitch requires every custom emote in three exact sizes: 28×28 (used in standard chat), 56×56 (high-DPI displays, now most viewers), 112×112 (emote pickers). Static emotes under 25 KB per size; animated up to 1 MB and 60 frames. The pixel-art workflow is to design at 28×28 with hard, readable shapes, then upscale by integer multiples losslessly with nearest-neighbour scaling.
- Discord custom emoji. Discord's recommended size is 128×128 with a 256 KB cap; emoji are displayed scaled down to 32×32 in messages and 48×48 in reactions. Square aspect ratio required; PNG and GIF supported.
- Favicons. The 16×16 / 32×32 / 48×48 favicons that browsers show in tabs and bookmarks are pixel art whether the designer intended it or not. Drawing at native size in this editor and exporting PNG produces favicons that read cleanly without anti-alias halo.
- Social media. Pixel art is now a standalone art form on Instagram, TikTok and Tumblr. The medium's restraint reads well at thumbnail size, and a well-made piece is recognisable in a feed dominated by photography and 3D renders. Many artists post daily small works built around a fixed palette like Endesga 32 or DawnBringer 16.
- NFT-collection ancestry. The CryptoPunks collection (Matt Hall and John Watkinson of Larva Labs, June 2017) established the template: 10,000 algorithmically generated 24×24 characters drawing on '80s punk and '90s cyberpunk. Hundreds of derivative collections followed during 2017–22, all leaning on the same low-resolution + bold-palette template.
Honest Scope vs the Dedicated Tools
Three dedicated tools dominate the pixel-art space. Aseprite is the de facto professional choice, originated as a hobby project by David Capello in 1998 (initial 2001 release as Allegro Sprite Editor), now developed by Igara Studio S.A. led by David, Gaspar and Martín Capello, sold on Steam for US$19.99 (was GPLv2 free until August 2016, when the licence switched to proprietary though source remains visible on GitHub). Layers, frames, timeline, tilemaps, animation export, Lua scripting, command-line tools, best paid tool by community consensus. Piskel is the principal free competitor, an open-source web editor created by Julian Descottes with a hosted version at piskelapp.com and downloadable desktop builds. Strength: frame-by-frame animation timeline, live preview, GIF and sprite-sheet export. Pixilart is a free online editor with a strong social/community layer, over a million users, public galleries, comments, follows. The honest scope of this editor is narrower than any of those three: a single-frame, browser-only tool for one quick sprite, one icon, one avatar. Six basic tools (pencil, eraser, bucket fill, eyedropper, line, rectangle), colour picker, palette, undo, optional grid overlay, and PNG export at native canvas size. No layers, no frames, no animation timeline, no onion-skinning, no tilemap mode, no scripting. For drawing your first sprite, sketching a Twitch emote, or whipping up a 32×32 portrait this is the right level of friction: zero install, zero account, zero learning curve. For a full game's worth of animated sprites with layered effects, install Aseprite or open Piskel.
Privacy: Why Browser-Only Matters Here
Pixel art is often work-in-progress for unannounced indie game projects, contracted commission work, or branded character design that isn't yet public. Server-side editors upload every brush stroke to a third-party service where it sits in logs and can be inspected by anyone with backend access. This editor runs entirely in your browser via JavaScript: every pixel you place, every undo, every colour pick stays on your device. Verify in DevTools' Network tab, no requests fire while you draw. PNG export uses the browser's built-in canvas.toBlob API and a blob URL; no upload step. Take the page offline (airplane mode) after it loads and the editor keeps working. Safe for unannounced projects, NDA work, branded asset design or any sprite you wouldn't want copied onto a stranger's hard drive.