A browser-based creative tool for applying generative dot/shape effects to images — inspired by halftone and pixel-art aesthetics. Upload any image and transform it into a pattern of squares, circles, diamonds, and more, driven by the image's own density and edge data.
8 shape types to choose from — Square, Circle, Diamond, Cross, Triangle, Line, Dot, Ring.
- Grid — shapes snap perfectly to a fixed grid, clean and aligned
- Scatter — shapes deviate from the grid with adjustable jitter for an organic feel
- Density — denser/darker image areas attract more shapes, like a halftone
- Edge — Sobel edge detection places shapes along contours and outlines
- Both — combines density and edge signals for maximum coverage
Paint directly on the canvas to manually control where shapes appear:
- 🟢 Add zone — forces shapes to appear in painted areas regardless of detection
- 🔴 Remove zone — blocks shapes from appearing in painted areas
- Erase — removes painted mask zones
- Independent colour pickers for filled and outline shapes
- Single unified shape size (consistent across all shapes)
- Opacity, stroke weight, mix filled + outline toggle
- Invert colours and invert detection
- 12 blend modes (Normal, Multiply, Screen, Overlay, Darken, Lighten, Color Dodge, Color Burn, Hard Light, Soft Light, Difference, Exclusion)
- Scroll to zoom, pinch on trackpad/touchscreen to zoom
- Drag to pan in View mode
- Zoom in/out buttons + Fit to view
- Keyboard shortcuts:
Vview,Aadd,Rremove,Eerase,+/-zoom,0fit
- PNG — full source resolution
- JPEG — full source resolution, 95% quality
- SVG — true vector, every shape as a
<rect>/<circle>/<polygon>with blend mode preserved
- Open
index.htmlin any modern browser — no install, no dependencies, no server needed - Drop or upload an image (JPG, PNG, WEBP)
- Adjust the controls in the sidebar — preview updates live
- Optionally paint add/remove zones with the brush tools
- Export as PNG, JPEG, or SVG
| Key | Action |
|---|---|
V |
View / Pan tool |
A |
Add zone brush |
R |
Remove zone brush |
E |
Erase brush |
+ / = |
Zoom in |
- |
Zoom out |
0 |
Fit to view |
Pure vanilla HTML, CSS, and JavaScript — no frameworks, no build step, no dependencies.
- Canvas 2D API for rendering and mask painting
- Sobel operator for edge detection
- Luminance sampling for density mapping
- Deterministic cell hashing for stable scatter placement
MIT — free to use, modify, and distribute.