Rubik's Snake

A Rubik's Snake (also Rubik's Twist, Rubik's Transformable Snake, Rubik’s Snake Puzzle) is a toy with 24 wedges that are right isosceles triangular prisms. The wedges are connected by spring bolts, so that they can be twisted, but not separated. By being twisted, the Rubik's Snake can be made to resemble a wide variety of objects, animals, or geometric shapes. Its "ball" shape in its packaging is a non-uniform concave rhombicuboctahedron.

The snake was invented by Ernő Rubik, better known as the inventor of the Rubik's Cube.

Rubik's Snake was released during 1981 at the height of the Rubik's Cube craze. According to Ernő Rubik: "The snake is not a problem to be solved; it offers infinite possibilities of combination. It is a tool to test out ideas of shape in space. Speaking theoretically, the number of the snake's combinations is limited. But speaking practically, that number is limitless, and a lifetime is not sufficient to realize all of its possibilities." Other manufacturers have produced versions with more pieces than the original.

Structure
The 24 prisms are aligned in row with an alternating orientation (normal and upside down). Each prism can adopt 4 different positions, each with an offset of 90°. Usually the prisms have alternating colors.

Twisting instructions
The steps needed to make an arbitrary shape or figure can be described in a number of ways.

One common starting configuration is a straight bar with alternating upper and lower prisms, with the rectangular faces facing up and down, and the triangular faces facing towards the player. The 12 lower prisms are numbered 1 through 12 starting from the left, with the left and the right sloping faces of these prisms are labeled L and R respectively. The last of the upper prisms is on the right, so the L face of prism 1 does not have an adjacent prism.

The four possible positions of the adjacent prism on each L and R sloping face are numbered 0, 1, 2 and 3 (representing the number of twists between the bottom prism and the L or R adjacent prism). Numbering is based on always twisting the adjacent prism so it swings towards the player: position 1 turns the adjacent blocks towards them, position 2 makes a 90° turn, and position 3 turns the adjacent block away from the player. Position 0 is the starting position, therefore it is not explicitly noted in step-by-step instructions.

Using these rules, a twist can be simply described as:
 * 1) Number of the downward-facing prism (from the left): 1 to 12
 * 2) Left or right sloping side of the prism: L or R
 * 3) Position of the twist: 1, 2 or 3

Machine processing
The position of the 23 turning areas can also be written directly after each other. Here the positions 0, 1, 2 and 3 are always based on the degrees of twist between the right-hand prisms relative to the left-hand prism, when viewed from the right of the axis of rotation. However, this notation is impractical for human readers, because it is difficult to determine the order of the twists.

Fiore method
Rather than numbers, Albert Fiore uses letters to refer to the direction the second (rightward) section is turned in relation to the first (leftward) section: D, L, U, and R. These are listed consecutively rather than numbered, so that a completely straight figure rather than being presumed as a starting point is notated DDDDDDDDDDDDDDDDDDDDDDD.

Mathematical formulation
The number of different shapes of the Rubik's Snake is at most 423 = $70,368,744,177,664$ (⁠ ⁠≈⁠ ⁠7×1013 or 70trillion), i.e. 23 turning areas with 4 positions each. The real number of different shapes is lower, since some configurations are spatially impossible (because they would require multiple prisms to occupy the same region of space). Peter Aylett computed by an exhaustive search that $13,446,591,920,995$ (≈ 1.3×1013 or 13 Trillion) positions are possible when prohibiting prism collisions, or passing through a collision to reach another position; or $6,721,828,475,867$ (≈ 6.7×1012) when mirror images (defined as the same sequence of turns, but from the other end of the snake) are counted as the one position, and likewise for rotational symmetries in loops (where the sequence of turns in a loop is cycled).