Almost any shape can be represented as bunch of lines, and line to line collisions is easy.. Additionally need to create constraints to join lines together:
Static - one master line and others follow it
Distance - one master and other keep same distance
Almost any shape can be represented as bunch of lines, and line to line collisions is easy.. Additionally need to create constraints to join lines together: