GOAL
Your goal is to make this 2D framework rigid. Using mouse clicks, buttons, or key presses for controls, whichever works for you.
CONTROLS
Toggle brace/unbrace: click mouse | (return) button | (return) key To choose rhombus: click mouse | (q)/(w) buttons | (q)/(w) keys Toggle shift/brace mode: N/A | (v) button | (v) key To choose ribbons: N/A | (q)/(w) buttons | (q)/(w) keys To shift along ribbon: N/A | (<)/(>) buttons | (<)/(>) keys Use the controls to brace just enough faces (black rhombi) so that when the carpet is shifted along every ribbon (blue threads), it rotates rigidly. The game will notify you when your carpet is rigid. You can cheat with the (Check Rigidity) button.
SOLUTION
The graph (on the right) represents the intersections between ribbons. Each vertex corresponds to a ribbon. The edges connecting two vertices represents the intersection of those two ribbons. When the face at an intersection is braced, the edge in the graph representing that intersection turns red. The carpet is rigid when the Wester Graph (red) is connected and spanning.