By far the simplest of Voronoi algorithms is to paint pixels according to the color of their closest site. Such a shader will work with any definition of distance, weighted or not. Speed is awfully slow, in
O(n*x*y). The results are pixels (canvas), not an abstract layout — we overlay it at the end.
See also Painting Manhattan-distance Voronoi.