Caustic projection of Delaunay triangulation from Voronoi diagram

A forum for topics that don't fit elsewhere. Introduce yourselves to other members of the forums, discuss how your name evolves when written out in the Game of Life, or just tell us how you found it. Forum rules still apply.
Post Reply
User avatar
pcallahan
Posts: 955
Joined: April 26th, 2013, 1:04 pm

Caustic projection of Delaunay triangulation from Voronoi diagram

Post by pcallahan »

I was playing around with resin optics and this caught me by surprise.

Without going into into too much detail, this crude lens assembly is based on the upper envelope of intersecting spheres of equal radius and centered at points in a horizontal plane. The sphere intersections match the edges of the Voronoi diagram, and the radius determines the curvature. It is several times larger than the average distance between neighboring points. As usual, the points are the vertices of a Penrose tiling patch.

To cast this in resin, I made a 3d print, used that to make a silicone mold, smoothed it further with a coating of silicone, and filled it with epoxy resin. It's not my most aesthetic piece ever and has a lot of bubbles, but does the intended job.
20261023_114745.jpg
20261023_114745.jpg (1 MiB) Viewed 52 times
My goal was to get the Voronoi points to show as focal points. What surprised me was the appearance of sharp lines between them. These edges are nowhere on the resin cast itself. In fact, they are perpendicular to the sphere intersections. They are the edges of the Delaunay triangulation!
20261023_115040.jpg
20261023_115040.jpg (578.78 KiB) Viewed 52 times
Since this is a little distorted I wondered if I was imagining it or if it was connected to some optical imperfections. It turns out it's real and computable from the height map.
caustic_hm_focus.png
caustic_hm_focus.png (1.14 MiB) Viewed 52 times
You can find the code (Claude-generated) for generating a caustic image from a heightmap here, as well as the image I used.
https://github.com/PaulBC/misc_scripts/ ... ightmap.py
https://github.com/PaulBC/misc_scripts/ ... ghtmap.png
Post Reply