Somatic - A soma puzzle solver.

somapuzzle.gif Somatic is a software for solving arbitrary polyomino and polycube puzzles, like the soma puzzle. The soma puzzle is made from a set of 7 pieces, each build from 3 or 4 small cubes. With these pieces one can build a bigger cube made of 3x3x3=27 of the smaller cubes and a lot of other figures.

somaforms.gif For an arbitrary set of pieces and a figure with not more than 64 cubes Somatic can check whether this figure can be build using these pieces and return one or more solutions. It does also solve split figures which are not connected and partial figures, which do not need all pieces to be build. Piece sets that can be solved include the soma cube, the somaplus set, the doublesoma set, the bedlam cube and the pentomino set. Other sets may be specified through an input file. Figures and solutions can be saved and read from a file again later. The GUI can be used to interactively create figures, solve them and view the solutions. The piece set currently in use can also be displayed.

Stefan -Happe- Habelski wrote the OpenGL code and created the nice editing and input functionality. Heiko -brotMachine- Seim implemented the GUI and rendered the nifty icons. Somatic is released under the GPL, which allows you to modify and redistribute it under certain conditions.

Download

Please keep in mind that despite some version numbers in the distribution I consider most of Somatic alpha software. Here are the latest snapshots, updated whenever there is something to update.

CHANGELOG.20040406

somatic-win-binary-20040406.zip

somatic-source-20040406.tar.bz2

Screenshots

A screenshot from the gui version, showing a solution of the original soma cube:
somatic1.jpg
Two Animations created by Heiko, from an older version of Somatic:
somatic2.gif somatic3.gif

Links

Links to some piece sets and puzzles Somatic can solve: Some of the software used to develop Somatic.

Contact

Questions ? Comments ? Bugs ? Send me a mail to somatic-at-moerig.com. Hint: You need to replace -at- with @ ;).