AI - Voronoi cells
Hi all,
Here's are some first attempts on making a Voronoi diagram/tessellation subnode with the use of Claude. After some preliminary tests - 1 and 2 in the file - I gave it this prompt:
Can you improve the Python 2.7 script of a Voronoi diagram triangulation script for use in Nodebox 3 based on example and the documentation provided? Don't use any external libraries. This script works quite well. But the contours are quite jagged though and not the straight lines you would expect from the polygons that voronoi cells typically would have. Don't change the arguments. And don't change the way the output (paths or geometry) is formulated.
And below is its response. This (3) might be usable. In addition I asked it to add an argument for controlling the margins. Which it did, using percentages (4).
I'll improve the Voronoi diagram triangulation script to produce cleaner, straighter contours while maintaining its compatibility with NodeBox 3. Let me analyze the current implementation and suggest enhancements.*
Analysis of the Current Script
The current script has a few limitations that lead to jagged contours:
The create_simple_voronoi function uses a grid-based approach that approximates Voronoi cells rather than generating true Voronoi polygons with straight edges.
The create_improved_voronoi function attempts to create proper Voronoi cells with straight edges but might have issues with numeric stability or edge cases.
The boundary clipping could be more precise.
Improved Implementation
I'll focus on enhancing the script to produce cleaner, more geometrically accurate Voronoi cells with straight edges while keeping the same function arguments and output format.
Improvements to the Voronoi Diagram Script
I've improved the Voronoi diagram implementation while maintaining compatibility with NodeBox 3. The main enhancements focus on producing cleaner, straighter contours that better represent true Voronoi cells.
Key Improvements:
Better Point Distribution
Implemented a Poisson-disk sampling approach to generate more evenly distributed seed points within the boundary
Added minimum distance constraints between points to prevent numerical instability
True Voronoi Cell Generation
Completely rewrote the core algorithm to produce geometrically accurate Voronoi cells with straight edges
Implemented proper half-plane intersection for cell computation
Added polygon sorting to ensure vertices are in the correct order
Improved Boundary Clipping
Added a proper polygon-to-polygon clipping algorithm (Sutherland-Hodgman) to accurately clip Voronoi cells to the boundary
Handles complex boundary shapes more effectively
Robust Fallback Mechanism
Created a more reliable fallback method using grid sampling and convex hulls
The system will automatically switch to this if the primary algorithm fails
Numerical Stability
Added checks for degenerate cases and small numerical errors
Better handling of edge cases for more reliable results
Unchanged Elements:
Function signatures remain the same to maintain compatibility
Output format continues to be paths/geometry as before
No external libraries are used
The enhanced script should produce visually cleaner Voronoi diagrams with properly straight edges between cells while maintaining all the functionality of the original implementation.
Let me know how this works and whether there are suggestions for improvements.
Floris
-
Schermafbeelding_2025-05-09_om_15.06.20.png 280 KB
- voronoi_09052025.zip 21.8 KB
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac