Rigid curve collide with offset

Hi all,

I been trying to set up a kangaroo system to solve this problem but I’m not sure it is possible at the moment.

The challenge is this:
All objects are rigid - that means they can collide but not changing their shapes.
The red curves are offset from the black curves.
The red curve in the photos cannot touch each other. The red curves can touch the boundary in blue.
The black curves cannot touch the boundary.
The black curves and their offset twin (in red) should always move together.

Included here is the grasshopper file of my attempt. The first attempt is the classic set up for rigid curve collision system, which do not work with the offset in this case.

My second attempt is to create a shape that include both inner curve and offset curve then extract the points of inner curve and include them in other goal such as insideMesh or curve point inclusion. This of course did not work either because the two goals act independently from each other. But I still include here as food for thought.

One way to work around is to offset the boundary but I want to research if there’s a more elegant and accurate method211031_KangarooOffset.gh (520.8 KB)

You can use the ‘Frame’ inputs and outputs to identify rigid curves and lock them together like this:
offset_collide.gh (7.2 KB)
Here the offset rectangles collide with each other, while the inner rectangles collide with the containing ellipse, and the corresponding inner/offset rectangles are locked together.

To get the outer boundary you need to use this trick to make it external