This problem seems simple at first, but it turns out to be quite challenging. To move the cells apart is not so hard - in fact, we do not need to separate the two halves at all! We simply find whether each point (in Voronoi, each point corresponds to its cell) is to the left or right of center, and move it farther in that direction by setting the amplitude of a vector. (see attached definition). It is nice not to have to separate, because this allows us to keep our tree structures a little simpler later on.
The remainder is a little more involved… getting the break-edges reliably for all possible break geometry is not so simple! Fortunately we can use the Delaunay triangulation, since it is the mathematical inverse of the Voronoi pattern - this gives us an analysis of which cells are adjacent to each other, and then we can test adjacent cells for if they’ve moved apart or not. If they have, we then find the edges that are along the break-line. If they haven’t, then they are not on the break point and we don’t need to worry. The implementation in the attached definition accomplishes this (I think). If you’re interested, I can go through the details and explain why things are done a certain way in GH - sometimes the way you need to do things isn’t always straightforward.
As a finishing touch in order to replicate your Rhino version, I took the liberty of trimming the outer rectangles in the grasshopper model with the break line curves. Also, there is included a slider “Cull Distance to Edge” that adds or removes cell outlines near the break, like you’ve shown in your Rhino model. You can try out different configurations of Voronoi cells by playing with the seed slider!
Let me know if this works for you, or if you have any questions! Happy to help.
voronoi gates 1.0 updated.gh
(P.S. - the outline might be a bit weird if the panels are too close together. This is a problem in the last bit of the script. If you’re fabricating, probably best to bake it out and do them separately at a good distance)