Weighted Voronoi relaxation
Weighted stippling
Thousands of dots settle into an image. Darker regions attract more ink; weighted Voronoi cells keep the distribution even.
Try it
Runs locally in your browser. Uploaded images stay on your device.
Run the relaxation, then export the dots as a resolution-independent SVG.


Ready when you are.
Worker processing · local inputs · downloadable output
How it works
Run the relaxation, then export the dots as a resolution-independent SVG.
- Sample an initial point distribution according to image darkness.
- Assign weighted image samples to their nearest point, forming Voronoi cells.
- Move each point toward its cell’s weighted centroid and repeat.
Read the original research
Adrian Secord · 2002
Computed examples
Outputs from the same implementation used in the playground.


Source photographs were generated for these studies. The displayed results were computed by the algorithms; they are not generated illustrations of an expected result. Published previews are compressed for the web.
Implementation and limits
Raster-sampled weighted Lloyd relaxation with exact nearest-site queries. This is a bounded preview, not an analytic continuous Voronoi integration.
Interactive settings are bounded to keep the experiment practical in a browser. Higher detail can cost more processing time without guaranteeing a better result. The implementation and its tests are available in the source repository.
The relaxation integrates darkness on a sampled grid. The dots are real positions that can be exported as SVG; no image texture is hidden behind them.