Introduction: Soma Code

You thought Soma was a cube? A simple puzzle? A toy? That is the enigma (pun) . . . Well, first it was an epiphany of sorts. And then things got kinda crazy.

Anywhere online and you can find really cool web sites (and Instructables) about the Soma Cube. Any puzzle aficionado worth their Rubik's Cube knows about, and has likely constructed, a Soma Cube. If you haven't made one, I have a CHEAP way to construct a Soma cube that TRANSCENDS the traditional SIMPLE Soma!

So, with pattern for Soma cubes widely available, why this Instructable? Its only a cube.

Some simple realities of the mundane Soma Cube, this 3D 'tetris' type puzzle:
1. This "simple" cube puzzle has 240 'mirrored' (480 unique) ways of solving it. The cube alone. 480 solutions.
2. The seven simple pieces of this cube (the one with 480 solutions in ONE shape) can be configured into hundreds of ADDITIONAL puzzle formations. ¡HUNDREDS!
3. Seven puzzle pieces with +480 solutions in a "simple" cube.

Don't believe me? Check the links to source material (and pdfs). An amazingly simple puzzle with virtually endless 'solutions' . . . But that isn't why I write this Instructable.

When you include a couple additional variables to the traditional Soma Cube (four colors and six numbers) this simple toy gets even MORE interesting.

This Instructable is about "Soma Coding" (and Decoding).

Today we are making a mechanical encryption device that can be uniquely coded to each holder. A device that appears as (actually IS) an innocuous toy cube. For less than $10.00 US each.

Do I have your attention yet?

PS If you enjoy other spy stuff like dead drops and secret compartments and caches, you must see this!


7 red die - (R)
7 blue die - (B)
7 yellow die - (Y)
6 green die - (G)
or 27 identical die -
-- loose a lot of variables but makes cool mind bending puzzle of its own

Camera - Attention to detail
Strong glue - I like Go2Glue -
1+ mini clamps -
NOTE: You will need 14 RD die, 14 BL die, etc., for two coders, 21 for three, 28 for four . . .

top face (TF) – top of completed cube (or die) – the “primary” code
front face (FF) – the front of the completed coder (facing forward toward user)
left face (LF) – left face of coder as user views it
right face (RF) – right face of coder as user views it
9 digit code = 18 characters grouped by 2s - 18/2=9
– For example: the two characters for Red6 (R6) = 1 digit, Y4 = 1 digit, G5 = 1 digit
– there are 9 ‘digits’ on each coder face
– 9 digit code = a cube face

Step 1: Soma Code – Specific Considerations

1. The Top Face (TF) of the assembled cube is always the common denominator in any coding
a. the image is an example of a TF in a Soma Coder
-- the TF code here is: R1 B2 Y4 B1 G2 R1 Y3 R3 B6
b. Note the repetition in the color number code R1
-- in cases of the TF code it makes no difference
-- when codes repeat in the alphabet 'code' it does not matter
-- skipping letters (especially frequently used letter like 'E') adds a dimension to your code and matters little in the decoding process - more later

2. The Front Face (FF) is always the face closest to the user
3. For coding ALWAYS skip the center die on the LF and the RF of each cube. I will note this step in application below.
Ex. If this image was the LF or RF the center 'square' would not be used

The web-site the PDF comes from also has details for a Lego Soma Cube!

Step 2: Soma Coder - Planning

1. Lay out the Master SOMA Coder
a. Each Soma Code “puzzle” piece has 4 different colors
a. 1 color die for each piece, leaving out G on the small piece
b. To increase variety, make (or attempt to make) each 'top face' of each die color's number different on each puzzle piece. "Say what?" I hear you mutter . . . see photo.

As you can see, if the face of the Y die is #1 on one puzzle piece, I attempted to make the face of Y die on other puzzle pieces a different numbers

Simply, with all seven puzzle pieces laying 'flat,' you only want to see one Y die with #1, one Y die with #2, one Y die with #3, etc. for each color on each puzzle piece.

Finally, consider which pieces have a 'corner' - try to alternate from red to yellow etc for potential corners

You can follow the same pattern I did in the photos. But, before you do, consider that the solution to your coder is posted here (in these photos) showing number and color positions for every piece of this particular coder. You don't want to use this pattern.

Step 3: Layout - Soma Coder (puzzle) Pieces - Gluing & Replication

1. lay out your puzzle pieces following the above suggested guidelines

2. before you touch anything, take one photograph of the pieces all together from an ANGLE so that you can see more than one side of the majority of die (see photo)
a. for security, only one photograph is suggested - to be destroyed upon completion of the first coder

3. when gluing, refer to your photo to insure accuracy for each puzzle piece

4. glue, clamping each die firmly to the next
a. wait for glue to set

NOTE: if making more than one coder, it is best to make two (or more) of each piece rather than a complete puzzle (7 different pieces at one time)

5. rinse and repeat until all seven pieces are completed
a. delete photo

6. specifically interested in the coding – skip to step #7

Step 4: Soma Coder Game Application - Solitaire With One Coder

1. Individual use - 480 cube solutions - need more be said?
a. with the die arranged 'randomly' in each puzzle piece, each different 'solution' for each cube can be tracked by writing down the 'code' created on each face of each completed cube
b. NOTE: each cube "solution" on the TF will have SIX different 9 digit codes (six sides to a cube with 9 codes (18 characters per side)
c. repeat puzzle assembly, documenting codes, until you have 480 9 digit code combinations
c. 480 solutions / 6 sides to the cube = 80 completely unique cube TF solutions
d. write down all six 9 digit codes with each solution to help avoid repetition (photo)

original pdf download link FIGURE solutions:

original pdf download link CUBE solutions:

2. recreate other shapes documenting solutions for each
a. is there more than one solution for any shape?

Step 5: Soma Coder Game Application - 2 Players, One Coder – 3D Mastermind on Steroids

1. player one makes a cube & writes down the 9 digit 'code' generated on the TF (see image)
a. begin with the top left die (cell) working to the right for each row working down
-- a Y die with the #2 in the 1st (top left) position would be coded Y2
-- a G die with the #6 in the 2nd position would be coded (next to Y4) as G6
-- a Y die with the #1 in the 3rd position would be coded (next to G6) as Y1
b. code for line 1 then reads: Y2 G6 Y1 - with or w/out spaces
c. proceed to line 2 - R5 G1 R3
line 3 B2 Y3 Y2
working left to right (and down) writing down the codes for a total of 9 codes (one 9 digit code on TF)
d. write the code in a line without spaces to make the challenge even more difficult
e. player one dismantles the cube and gives the cube & written code to player two

2. player two uses the code to replicate the puzzle solution
a. time the attempt for an added dimension
b. restrict the viewing time of the code for player two creating a memory challenge

Step 6: Soma Coder Game Application - 2+ Players, 2+ Identical Soma Coders

1. Same room
a. using a stop-watch each player assembles a cube as quickly as possible
b. the first complete cube stops the time - 1st place
c. other players write down the coded 9 digit solution of 1st place
d. timed or not, remaining players attempt to complete the cube code the quickest
e. no code can be repeated

2. Over distance
a. players create cubes (or other shapes) and document ‘solution’ codes
b. players exchange codes (via email or letter) and time themselves remaking the cubes
c. players compare times

Step 7: Soma Coder Applications – Coding

1. With two or more identical Soma Coders
a. using identical coders, users can write, code and decode messages
b. an established TF code shared between users allows clear coded communications using the LF, FF & RF
c. identical Soma Coders will have identical faces on each side of each coder for each cube ‘solution’
d. looking down on the correct 'code' for the TF, the LF of each coder will be identical, as will the FF and RF of the coder
e. after assembling the correct TF code, start at the top left of the LF, whatever the top left die code (e.g. R1) is the letter "A"
– the top middle die code on the LF (e.g. B2) is the letter "B"
– the top right die code on the LF (e.g. Y4) is the letter "C" & "K"
f. move to the FF
– top left die code Y2 is “D”
– top middle code G6 is “E”
– top right code Y1 is “F”
g. move to the RF
– top left, Y5, is “G”
-- top middle, G5, is "H"
-- top right, B5, is "I"

h. return to LF row 2
-- skip center code on LF & RF

i. simply stated, working around the coder – LF top row to FF top row to RF top row (left to right working across each face and down to next row) you have 27 9 digit codes - conveniently there are only 26 letters in the alphabet - and we combine "C" and "K"
i. skipping the center codes on the LF and the RF gives us 25 codes for letters
j. get in the routine of skipping the center code on the LF & RF (see images above)

Step 8: Decoding Practice

Using the image above, try deciphering this coded phrase:
R1G6B6 B6G5G6Y3G6 B2G6 R1B5Y5G5B6 B2B2R1B2

Notice that it is fairly easy to tell which B6 is which in the de-coded message.

Or, you can download the PDF.

Step 9: Soma Coder Applications – ID Individual Codes

1. using identical Soma Coders assign each group / user a unique 9 digit TF code (there are 40 of them)
2. the 10th digit (three character code) designates which cube configuration is needed for the Key Code
a. 10th digit can also be unique to each group
For Example:
Squad 1 ID – G5 R4 B2 Y3 R5 G7 B6 G1 R4 (Key ID) R1
Squad 2 ID – Y3 G5 B2 R4 B3 G2 Y1 B4 R1 (Key ID) B2

* Cell IDs are known across the organization (or not)
* There is ONE common Key ID so each group can communicate (decode) general messages across the communication network / organization

Key IDs: unique to each group (secret)
Squad 1 Key IDs:
– R4 = Rotate coder forward & down using the new TF as the key-code
– G1 = Flip coder 180 degrees & rotate clockwise 1 turn - TF is now Key-code
– B2 = reassemble using a specific TF code for the correct key

Squad 2 Key IDs:
– R4 = Rotate left 1 turn
– G1 = reassemble with specific TF code
– B2 = reassemble with specific TF code & rotate FF clockwise 180 degrees

* Key IDs are different for each Squad
* One Key ID (common to all Squads) is a common communications ‘channel’ (if used)

When a message arrives from coderA the first 9 ‘digits’ of the code identifies the sender and which Soma Code Key ID is needed for decoding (10th digit).
Messages from coderB have a different 9 ‘digit’ code uniquely identifying them by their TF code with different Key IDs.
The variables used from the cube to identify individuals are simple to deduce.

If a coded message is intercepted by a rogue spy (or group) with a Soma Coder it can not be deciphered without the correct TF code AND Key Code – which only HQ knows.
In this scenario only ‘HQ’ has the identifying master codes Key Codes.
It is possible to keep individual groups separate (isolated) by limiting the TF codes assigned and key Codes assigned.

Step 10: Thank You!

Thank you for reading my Instructable! I hope you learned something new!

If you enjoy other spy stuff like dead drops and secret compartment and caches, please see my other Instructable:

And please vote for your favorite ideas!

Step 11: Other Sources for Soma Cube

Puzzles Speed Challenge

Participated in the
Puzzles Speed Challenge