Relaxed Voronoi

 

This is a study on how to derive a Voronoi pattern, to make it more harmonious, getting rid of small edges.

3dxml at the bottom.

 

Indirectly, it is also related to the packing of circles on surface. Here, I tried only on a flat disk. surface will come next. 

I took benefit of the mesh capabilities of Visual scripting and also one of its fundamental functions, "inscribed circles", which creates the triangle's incircle.

Initial, I have a big disk with a small one inside. 

I generate a distribution of points (500) inside the big disk, but not inside the small one.

This is to break the harmony of the distribution of points. Then I create a Voronoi pattern.

You can see how "ugly" is the Voronoi. the goal is to relax to make it "harmonious" ("less stress"... minimization of an "energy function".... <=> "more harmonious")

The Voronoi pattern is converted into a Mesh. This mesh will be the base for the relaxation.

The mesh is the "dual" of the Voronoi one (Delaunay). 

I projected the mesh boundary back to the circle boundary to avoid a shrinking effect.

 

Then the loop comes.

the loop logic is

  • create incircles
  • for each vertice of the mesh, calculate the barycenter of the incircles adjacent to the vertice.
    • As for the weight, I chose the distance of the vertices to the incircle center... but this I wish I could give a logical reason to it
  • move the vertices to the barycenter (little by little "0.2" or not "1"). in my model, it is 1.

There is a shrinking effect here because the disk has a boundary and the barycenters are inside the boundary

  • It is necessary to project the boundary vertices of the mesh to the original Big Disk boundaries. it is like pull out back the mesh

and loop it as you wish. in my example, I loop 10 times.

Why is it necessary to go to "Delaunay" mesh of the Voronoi? because I can get the triangles and therefore its incircles, easily. 

the adjustment of the incircles into flowers, makes the trick.

you can refer to this paper, which explains the link of the relaxation to the packing circle topic. 

when you can pack circles with good compacity, it means that you have find a good relaxation for your mesh.

When your surface has boundary, there is a shrinking effect that must be balanced by projecting the resulting mesh boundary vertices to the original geometry boundary.

Get back to the dual of the Delauny, this is the relaxed Voronoi.

I chose Dual with boundary ON.

RELAXED VORONOI
Correspondance between relaxed Voronoi and the incircles

On above pictures you can see that the incircles are like crowns (or petal of flowers). when you fill the petal crowns with their central piece, then you have a packed circle structure as well!

I removed the "petals" (like je t aime un peu beaucoup passionnement... pas du tout, but did not evaluate the result -> I guess: pas du tout)

WIP study, the monkey

Next, is Relaxed Voronoi on surface. but it is not out of reach at all. the post is likely to be much shorter