Nothing new, but maybe a little unusual: Using boids as alternative to Lloyd relaxation and/or Poisson-disk sampling. The boids here are using only two behaviors: local separation, plus a randomized attractor to create global disturbances. Cell density could also be varied by spatially adjusting the separation distance between boids. Overall convergence/relaxation can be much faster than shown here...
The base pattern is a selfsimilar tiling obtained by iteratively trisecting the triangles into 3 smaller copies.
I then Identify the small triangles with 3-adic integers: The nth digit tells which triangle to take in the nth iteration.
The metric on the 3-adic numbers d(x,y)=3^(-n) where n the smallest place where their digits differ.
This is a Voronoi complex to a growing point set. I randomly add new numbers and let their cell grow to encompass all numbers closer to them than any coming before.
Black is the boundary: numbers that are closest to two or more of the numbers I chose.
Doodling with Jessica is a lot of fun. She wanted to make it monochromatic. So we compromised and left out red and purple.
This illustrates a way to make a #Voronoi diagram. Start with nodes (points). Connect them to their neighbors with edges (line segments). Find the midpoint of each edge, and paint a blob of color around each node up to the midpoints on the edges that touch that node. Very meditative.
I've been working on a #development tool for #Minetest today. It's a #JavaScript program that lets you visualize the #Voronoi diagram of biome points. In Minetest, each 2D position gets assigned a heat and humidity value, and each biome has a heat and humidity point. So if the world position has a heat and humidity that is closest to a given biome X, that biome will be used at that position.
This is useful to make sure the biomes in the world are more or less balanced.
Been getting several DMs about the #GenerativeArt banner image in my profile. It's an old render (from 2010) of a recursive #Voronoi projected into a #Quadtree. This video shows the interplay of 2 conceptual hierarchies:
Verlet particles with attractive/repulsive force fields are spawned in a squared 2d space and negotiate their positions over time. These positions are also used as sites for creating a dynamic Voronoi diagram to define cell structures around each particle. Each resulting Voronoi region can then become the physical (and constantly changing) bounds for the next level of recursion, spawning more particles to subdivide it into smaller regions. Each cell at each level is using its own Voronoi instance with sub-regions clipped to their respective parent region. The process becomes more and more local... The setup in the video has a maximum tree depth of 3.
A quadtree is used to visualize the hierarchy of cells from phase 1 and its depth structure represented as extruded 3D model (in isometric perspective). For this video the quadtree has a depth of 10 levels with the maximum level of recursion tracing/coinciding with the Voronoi cell edges. The elevation of cell walls depends on the depth of the cell in the original tree, with the cells at deepest level resulting in the tallest structures. Furthermore, the elevation is modulated by the distance of each point to the nearest vertex of its parent cell polygon/region...