SOMA Crystal
SOMA News 13 Jan 2000

The marvellous Windows SOMA programs from
Bob Nungester of Cupertino (California, USA).

This page has been updated.

The content is edited, enhanced and copied to the 2017.09.01 Newsletter.       And the newest version is the 2020.12.05 Newsletter.
The reason is that the program versions below only work on older versions of windows.

Solving SOMA puzzles has upto now been performed, either by making the puzzle by hand (The REAL game), or by running the SOLVE V1.2 program in a DOS environment.

For Windows fans, we now have A Windows Solver Program.!

Bob Nungester of Cupertino (California, USA) got interested in SOMA again.
By digging out his Cube from the 1960's, and adding graphics to his old 1980 Apple II program. Bob has written a new Visual Basic 6 Solver program.
The programs uses recursive piece placement with an Island and Parity checking method.
The programs supports the .HTM file format of this Web site.
If you want to know more, then this is The creation story of WIN-SOMA.

Bob has created it as a pair of Windows programs that will be extremely usefull for SOMA puzzle players.
These programs both run on Windows, and allow the solving of Single or Double set soma figures.

Ps: Bob also examined some of the stranger figures, and Bob's 9 tall Hexominoes. are here.
Some of the Unsolvable Nonominoes may even be solved at double hight using two SOMA sets in The Double Nonominoes.

Get the SOMA solvers in this ZIP file. Just extract it into it's own folder and run the programs.
Version 1.1 . This ZIP contain both solver programs.

From Bob Nungester
The Windows SOMA figure program:
Will read SOMA text files, accept manual figure entry,
compute solution to figures, show figures both as text
and as graphic, that you may view from 4 sides.
What it does.

Here's a short description of the program.

"This program allows you to scroll through and solve any of the figures in the .HTM files. It will view any figure up to 16 x 9 x 7 and solve figures containing up to 27 cubes.
It will also solve partial figures, using less than 7 pieces.
In addition, it is easy to create your own figures or edit existing ones by selecting a level in a figure (1-7) and then clicking on a grid of 16 x 9 cells to fill or remove any particular space.
The display shows the progress of the solution as pieces are placed in a wireframe model, or you can choose to only see the final solution, which requires less than a second.
Once the solution is complete you can cycle through the pieces to display each one individually in the wireframe model.
Figures can be saved by appending them to .HTM files, so you can create your own figure sets.
The display allows full rotation about the X, Y and Z axes at any time."


It will now do partial figures!
I figured out a simple way to do this, so now it will work with 1-27 cubes in the figure.
I abandoned my original file format completely and switched to the .HTM format. Scrolling through the figures is fast!
The model space is increased to 16 by 9 by 7 to handle the largest figures.
I'm still adding code to rotate the figure if it won't fit as stored in the file.
I updated the CFG file to include the classic piece numbers so when cycling the display through the pieces, they're in the correct order. I added shading to each of the three sides of the colored cubes so it's easier to visualize the figure.

PS: Current remarks are:

The Windows DOUBLE SET SOMA figure program
From Bob Nungester
The Windows Double set SOMA figure program:
Will read SOMA text files, accept manual figure entry,
compute solution to figures, show figures both as text
and as graphic, that you may view from 4 sides.
What it does.

The program allows you to scroll through and solve any of the Double set figures in the .HTM files.
Otherwise it operates as its smaller Single-Set brother.

PS: The program is freeware.

Hints in solving.

When trying to solve figures using Double-Solver, you need to have all 14 pieces marked in the field. This version does NOT support partial solving.
Let's say you are trying to see if the "Impossible" W-wall could be solved by trying to mix pieces from two SOMA sets, you could enter the figure as two W-walls
on the same field (Ps. There's no solution to this scenario).


         Top       Middle    Bottom
         Level 3   Level 2   Level 1
Or, assume you want to see if the "Impossible" W-wall could be made if we use "some" pieces from one SOMA and some from another SOMA.
ie. piece 1, 2, 3, 7 from one SOMA and piece 2(L), 3(T), 7(P) from a second SOMA.
Then we could enter a figure like this.
(Obs: below is the solution that result from this idea.)
In order to force the unused pieces, they are entered om the two lowest levels as individuals.
That way the solver has to place one piece in each of these 'places'.
Freing only the wanted pieces to be used in the solution we seek.

The Windows SOMA COMPARE program - Now in V1.3

          This version will only work in older Windows versions
          Try to visit the 2020.12.05 Newsletter. with Bob's newest Windows 10 version.

This program will run on ALL Windows 3.11 / 95 / 98.
Just copy the files of this zip into the appropriate folder, and run the SOMACP13.EXE program.
The newest version is here:
Version 1.3 SOMACP13.ZIP . Denmark - Europe.

What it does.

This program will check files for duplicate Soma figures. The interface allows the user to select one file and then the program checks all other files in the same directory against each figure in the selected file.
It works for any figure size up to 54 cubes.
It checks each of the 48 possible orientations (same as symmetries) The symmetry number listed for each figure shows the transformation that will make the duplicate figure the same as this figure.

Each symmetry maps points from X, Y, Z to some other value. For example, a 90 degree clockwise rotation about the X axis maps each X, Y, Z to X, -Z, Y (symmetry #11). Listed below are the 48 symmetries:

1  X, Y, Z   9  X, Z, Y  17  Y, X, Z  25  Y, Z, X  33  Z, X, Y  41  Z, Y, X
2  X, Y,-Z  10  X, Z,-Y  18  Y, X,-Z  26  Y, Z,-X  34  Z, X,-Y  42  Z, Y,-X
3  X,-Y, Z  11  X,-Z, Y  19  Y,-X, Z  27  Y,-Z, X  35  Z,-X, Y  43  Z,-Y, X
4  X,-Y,-Z  12  X,-Z,-Y  20  Y,-X,-Z  28  Y,-Z,-X  36  Z,-X,-Y  44  Z,-Y,-X
5 -X, Y, Z  13 -X, Z, Y  21 -Y, X, Z  29 -Y, Z, X  37 -Z, X, Y  45 -Z, Y, X
6 -X, Y,-Z  14 -X, Z,-Y  22 -Y, X,-Z  30 -Y, Z,-X  38 -Z, X,-Y  46 -Z, Y,-X
7 -X,-Y, Z  15 -X,-Z, Y  23 -Y,-X, Z  31 -Y,-Z, X  39 -Z,-X, Y  47 -Z,-Y, X
8 -X,-Y,-Z  16 -X,-Z,-Y  24 -Y,-X,-Z  32 -Y,-Z,-X  40 -Z,-X,-Y  48 -Z,-Y,-X

This one's written in VB3, so it will run in Windows 3.1 or later.
SOMACOMP.EXE is the program file. In order to run, it requires CMDIALOG.VBX, COMMDLG.DLL (common dialog box custom control files) and VBRUN300.DLL (needed for any VB3 program). These must be located in the C:\WINDOWS\SYSTEM directory, OR they can be put in the same directory as the .EXE.
You might already have the VBX and DLL files, but I zipped them all together in case you don't have them.
Once again, VB has a large DLL needed to run any VB program, but at least the one for VB3 is "only" 400K instead of 1.5MB.

Bob did almost everything possible to make the program fast. Comparing a typical file with 25 figures against all the 1,069 nonominoes takes less than 4 seconds!
That works out to over 350,000 figure comparisons per second.
The worst case example is comparing the large nonomino file against all other figure files available from Thorleif's site. That took about 7 minutes and found over 100 duplicates in various files.

PS: The program is freeware.

Made by Bob Nungester <>
Adjusted by Thorleif Bundgaard <>

BACK to news index