Native macOS pixel art editor with tons of features
Coming August 6, 2026Requires macOS Monterey 12.4 or later
CG Course: What Is Pixel Art?
What is a pixel? Imagine the tiniest square of colour you can see on your screen. Now imagine painting an entire world out of nothing but those squares, one by one, dot by dot. That is pixel art, and it is one of the most exciting forms of digital creation happening right now! See what all the fuss is about.
An App for Pixel Art: Hello, Dottie!
Dottie is a brand-new native Mac application built from scratch to make pixel art feel as natural as picking up a pencil. Forget clunky web apps and awkward Windows ports. Every tool has been designed to feel right at home on your Mac: trackpad gestures, keyboard shortcuts, and an interface that gets out of your way while you create game sprites, tilesets, icons, portraits, or whatever. It feels good to draw!
-
Drawing ToolsPencil, pen, airbrush, smudge, clone, shift, fill, etc
-
Brush SettingsShapes, sizes, dither, pixel perfect, pressure-sensitive
-
Layer SystemOpacity, onion skin, solo, tileset, hiding, locking
-
Vector LayersEditable objects, groups, and SVG interop, rasterised crisp
-
Tileset EditingEdit sprite-sheet tiles in-grid with cross-tile strokes
-
AnimationFrames, timeline, tags, and GIF/APNG export
-
Selection ToolsMagic wand, marquee, lasso, and polygon selections
-
Custom PalettesUse presets, create your own, or import from Lospec
-
Multiple PreviewsFloating or docked previews with their own settings
-
Import & Export15+ import formats, 10 export formats
-
Plugins & ScriptingScript using AppleScript and JXA, extend using JavaScript
-
Apple NativeMulti-window, Metal canvas, Auto-save, Quick Look
Drawing Tools
Your creative journey starts here! Every tool is assigned to a single key so your hands never leave the keyboard.
| Tool | Key | Description |
|---|---|---|
| Pencil | N | Toggle-style classic Mac drawing |
| Pen | P | Smooth strokes |
| Airbrush | A | Soft spray for shading |
| Smudge | S | Blend adjacent pixels together |
| Colour Shift | C | Shift painted pixels along the palette ramp |
| Clone | G | Stamp a copy from an Option-click source anchor |
| Fill | K | Flood fill, outlines, and dithered gradients |
| Eraser | E | Remove pixels in a single stroke |
| Line | L | Perfect geometric shapes |
| Rectangle | R | Perfect geometric shapes |
| Oval | O | Perfect geometric shapes |
| Eyedropper | D | Pick any colour from your canvas |
Shift-drag the Fill tool to lay down a dithered gradient from your primary to secondary colour—and keep tweaking the dither in real time until you let go to lock it in.
Selection Central
Selecting parts of your artwork is just as important as drawing them!
| Tool | Key | Description |
|---|---|---|
| Magic Wand | W | Similar colour, connected or canvas-wide |
| Rectangle Marquee | M | Precise rectangular selections |
| Oval Marquee | I | Circular and oval selections |
| Freehand Lasso | U | Draw your own selection boundary |
| Polygon | Y | Click point by point around complex shapes |
Every tool combines: hold Shift to add, Option to subtract, or both to intersect—so you can build up exactly the region you want. The Magic Wand grabs connected colour, or every matching pixel across the canvas with Control.
Select all, select every pixel on a layer, invert, deselect, and reselect. Grow or shrink the selection a pixel at a time to tighten a mask or step out a clean outline—then cut, copy, and paste, all wrapped in animated marching ants that you can hide when they get in the way. Nudge a selection with the arrow keys, or lift it straight onto a fresh layer with New Layer with Selection (Acorn-style).
Brush Collection
Here is where things get really interesting!
- Shapes—Circle, Square, Diagonal
- Sizes—1 to 8 pixels (keys 1–8 for instant selection)
- Dither—17 levels (0 to 16)
- Custom dither patterns—swap the Bayer dither for your own 8×8 two-colour tile: import an XPM, a MacPaint file, or any image—or capture the current selection as a pattern, then every tool and fill stipples the primary against the secondary (or transparent). Saved patterns stick around; pick a dither level again to clear it
- Pixel Perfect mode—Toggle with F, automatically cleans up jagged corners
- Pressure Size—Apple Pencil, Force Touch trackpad, and Wacom pens drive the nib size across the full 1–8 range, with Ease In/Linear/Ease Out curves and an Invert toggle
- Symmetry—Mirror every pixel across the canvas centre horizontally, vertically, or both ways for instant 4-way symmetry, with any brush or tool
Palette Organiser
Colour is everything in pixel art!
- Draw with three colours at once—plain paints primary, Option paints secondary, Command paints the eraser colour (transparency by default); switch between all three mid-stroke, no trip back to the palette
- Quick switch with X and Shift+X
- 16 built-in presets: Atari ST, Commodore 64, EGA, GB Studio, Macintosh Color, Macintosh Mono, NES, PICO-8, PICO-8 32-colour, Picotron, Psion 16-colour, Psion 4-level Greyscale, Psion 16-level Greyscale, Sweetie 16, Windows, and ZX Spectrum
- Palettes hold up to 256 colours, with Cmd-click colour protection so in-use swatches can’t be removed
- Swatch tooltips show hex code, pixel count, and percentage of canvas use
- Gradient generation and Lospec import
- Palette files—import ten formats including GIMP, Photoshop, Adobe Swatch Exchange, and PNG swatches; your own palettes save as spec-exact Simple Color Palette files, complete with a Quick Look preview
- Ten sorting modes including hue, brightness, luminance, temperature, and usage
Layer System
Layers are the secret weapon of serious pixel artists!
One flexible building block, shown different ways by the mode—layers stack into the composite image, double as animation frames, and lay out as tiles in tileset mode. Only in Dottie!
- Per-layer visibility and opacity (0–100%), with number keys 1–0 for quick steps
- Four modes: Normal, Onion Skin (ghost the layers above and below to line up animation frames), Solo, and Tileset
- New, duplicate, merge down, rename, centre, and reorder—each a single keystroke
- Merge Visible and Flatten Image to collapse the stack when you’re done
- Lock a layer to protect its pixels while still reordering, renaming, and hiding it
- New Layer with Selection, or with the selection cut from the layer below
- Contextual Delete—clear a whole layer, or just the active selection, optionally filling with your primary or secondary colour
- Option-click a layer’s eye to flip the visibility of every other layer at once
- Reference image—a non-editable, aspect-fitted underlay to trace over, shown, hidden, or removed at will
- Layer and document notes—free-text notes on any layer or the whole document, with a badge for noted layers
- Auto-generated thumbnails
Tileset Tricks
Switch a layer to Tileset mode and edit a sprite sheet in place:
- Every tile is composed into its sheet grid, so the whole sheet pans and zooms as one
- Edit in context—click a tile to make it active while its real neighbours stay visible all around it
- Cross-tile editing—freehand tools, fill (including the gradient), and shapes all span tile boundaries so edges always line up
- Shift Tile wrap-offsets the active tile to bring a seam to the middle, paint it out, then shift back—perfect for self-tiling textures
- Wrap Tiles turns the selected tiles into a seamless self-wrapping group, with a live preview ring of wrapped copies around the edges
- Zoom to Tile fits the selected tile to the window, with neighbours spilling around it
- Split into Tiles carves the canvas into a grid of tiles, one per cell, and Merge Tiles into Canvas reassembles them into a single layer
- Re-flow the grid to any column count—drag the rail at the sheet’s edge for a live column badge, or set it from the menu
- Grid column count is detected on sprite-sheet import and saved with the document
Vector Layers
Keep your pixels crisp and fluid at the same time!
- Draw with the familiar shape and pen tools, plus a dedicated Poly Line tool for whole-pixel, multi-vertex paths; the tool grid swaps to a vector set automatically
- Select and reshape—click an object for a bounding box, drag the handles to resize, or hold Cmd and drag to free-rotate
- Node editing—double-click a path to edit it point by point: drag nodes, click an edge to insert one, or delete a node and its neighbours reconnect
- Multi-select—Shift-click to add, Option-click to subtract, or rubber-band a whole group at once
- Recolour live—selecting an object adopts its width and colour, and clicking a palette swatch repaints every selected object
- Fill an object—rectangles and ovals fill solid, or Cmd-click for outline-only; the fill stipples with the active dither level or custom pattern, exactly like the pixel canvas
- Arrange objects forward and back within the layer, and copy, cut, and paste them like any other selection
- Groups—bundle objects with
⌘G, nest them arbitrarily deep, double-click to descend and edit inside, and name a group for SVG export - Pixel objects—drop raster bitmaps in as movable objects, and convert any object—or a whole layer—to and from pixels, losslessly
- SVG interop—copy objects as SVG to paste into other vector apps, and paste SVG shapes back in as editable objects
- Every object keeps its stroke width, colour, dither, and pixel-perfect setting, with named undo for every edit
Canvas & Transform
Start with any canvas size you like, then bend it to your will!
New Document
- Begin blank at any size, or pick a preset—sprite sizes (8/16/32/64) and retro systems like Apple IIc, Atari ST, DOS, Electronika BK, Famicom, GBA, GBC, Macintosh, Mega Drive, and Super Famicom, each with the right pixel aspect ratio and a matching palette
- Save your own presets, and Option-click New to skip the dialog when you already know what you want
Transform
- Resize canvas with 9-position anchoring
- Scale image up or down
- Canvas size ceiling you can raise to 1024, 2048, 3072, or 4096 px
- Custom pixel aspect ratios for authentic retro looks
- Flip horizontally or vertically
- Rotate the whole canvas—or just one layer—left or right
- Nudge whole layers or single layers pixel by pixel with arrow keys
- Type maths straight into any numeric field, like
128*2
Grid & Navigation
Find your way around the canvas, at any zoom.
Grid
- Toggle the grid with a single key
- Choose Gridlines, Centre Dots, Corner Dots, Crosshairs, or CRT (scanlines + column separators for a retro screen look)
- Dial in grid opacity from 25% to 100%, and grid line width from 1 to 6 px
Zoom & Pan
- Zoom In, Out, Fit Window, 100%, or toggle between two levels
- Pinch or Cmd/Option-scroll to zoom, always anchored on your cursor
- Scroll, two-finger drag, Space-drag, or the Move tool to pan
- Zoom slider right in the sidebar
Animation Fun
This is the really exciting part!
- Frame-based animation with a configurable rate (0–30 FPS) and live preview
- Explicit frames—each frame controls which layers are visible; add, delete, and navigate them from the Animation panel
- Timeline strip under the canvas—a thumbnail per frame; drag to reorder or scrub, edit any frame’s duration inline, and drive it all from a transport cluster with play/pause, step, and loop
- Per-frame duration—give any frame its own timing, or fall back to the document rate
- Frame tags—name a range of frames, give it its own loop mode (forward, reverse, or ping-pong), and export just that tag
- Sidebar and floating preview windows with independent playback
- Export as a sprite sheet, an animated GIF, or an animated APNG with full 8-bit alpha
A REAL MAC-ASSED APP
Dottie is a true Mac application!
- Document-based multi-window architecture
- Metal-accelerated canvas keeps pan, zoom, and drawing smooth on large images, with ProMotion refresh rates up to 160Hz
- Autosave and restore—new and unsaved documents come back after a relaunch
- Settings window for New Document defaults, tool preferences, and an Experimental pane
- Full Screen and Dark Mode support
- Toggle the inspector, sidebar preview, metadata, and timeline panels from the Window menu
- Coordinates panel—a floating readout in the style of classic Mac coordinate palettes, tracking cursor position, drag size, and angle/distance for any drawing or selection action
- Quick Look previews and thumbnails
- Window position and zoom restored per document
Plugins & Scripting
Make Dottie your own!
- JavaScript plugins—install a loose script or a full package with a manifest; plugins can register commands, importers/exporters, and pointer tools, and they show up in the right menu automatically
- Document API—inspect and transactionally edit selections, palettes, layers, pixels, animation frames and tags, and canvas geometry, with locked and vector-layer protections enforced by the host
- Native command dialogs—declarative parameter UI and colour pickers, with atomic transactions that roll back cleanly on error
- Runs sandboxed—file access limited to files you explicitly choose, with heavy work off the main thread and cancellable
- Worked examples ship in the box: isometric projection, configurable shadow/extrude, and palette-range remapping
- Full AppleScript and JavaScript (JXA) support—script undo, colours, pixels, canvas size, zoom, tools, and shapes
Import & Export
Dottie speaks every format you need!
- Import & Export
PNG, GIF, TIFF, BMP, ICO, PICO-8, XPM - Import Only
PSD, TGA, PICT, MacPaint, ICNS, CUR, Piskel - Export Only
APNG, SVG
Optimised
- Only 2 MB app download size
- Less than 120 MB base memory footprint
How Dottie Compares With The Competition
| Dottie | Aseprite | Pixen | |
|---|---|---|---|
| Native Mac app | ✓ | Hybrid | ✓ |
| Animation | ✓ | ✓ | ✓ |
| Layers | ✓ | ✓ | ✓ |
| Onion skinning | ✓ | ✓ | ✓ |
| Pixel-perfect strokes | ✓ | ✓ | ✓ |
| Pressure sensitivity | ✓ | ✓ | ✓ |
| Sprite sheet export | ✓ | ✓ | ✓ |
| Custom patterns | ✓ | ✓ | ✓ |
| Quick Look previews | ✓ | – | ✓ |
| Tileset editing | ✓ | ✓ | – |
| Edit tiles in context | ✓ | ✓ | – |
| Tile wrap | ✓ | ✓ | – |
| Symmetry mode | ✓ | ✓ | – |
| Trace layer | ✓ | ✓ | – |
| Custom palettes | ✓ | ✓ | ✓ |
| Lospec import | ✓ | – | – |
| Erase as third colour | ✓ | – | – |
| Dither ink (all tools) | ✓ | – | – |
| Multiple previews | ✓ | – | – |
| ProMotion support | ✓ | – | – |
| Vector layer | ✓ | – | – |
| Offline manual | ✓ | – | – |
| Scripting | AppleScript, JXA | Lua | – |
| Plugins | JavaScript | Lua | – |
| App size | 4 MB | ~70 MB | ~20 MB |
Back To The Future
Some of Dottie’s ideas aren’t new at all! They’re borrowed from or inspired by vintage software for classic Macintosh or Japanese computers. These long-forgotten apps got a lot right, and those things are still useful today!
Here’s an online mirror of Dottie’s current Help book—the full manual, exactly as bundled in the app!