The sole author of the Happy Cube Solver is me, Shy Shalom. I live in Israel and am a full time programmer. I finished my undergraduate studies at the Computer Science department in the Technion and currently I'm in the middle of a Masters degree in Computer Science from Bar Ilan University. In my spare time I mostly do homework, spend time with my girlfriend and work on the Happy Cube Solver :).
Contact Information:
email: shooshx@gmail.com
In 1995 I began work on a small console application that would solve The Happy Cube puzzles which I had as a toy since I was very little. The initial work was coded in Pascal, compiled with Turbo Pascal for DOS and worked in DOS text mode. Piece selection was hard-coded and the model design was compiled into faces, lines and vertics manually. Once a solution was found, building the actual structure out of physical pieces was painstakingly complicated because there was no 3D display and one had to use strange drawings to know where pieces should fit.
After a while, I added a basic 3D display to show a basic solution of a single cube. The graphic display was achieved using mode X . This method however would not scale well to larger structures.
Years later, after finishing a Computer Graphics course in the Technion I decided to go back to the old code and implement a shiny new interface based on MFC and OpenGL. Porting all of the Pascal code to C++ wasn't really difficult and that made the basic "Solution engine" of the solver. Around it I threw a very crude MFC GUI which consisted mostly of a menu and an obsure toolbar. Also added was the basic OpenGL solution display engine which took a general solution and displayed it in 3D and a a basic design editor which allowed the user to build new structures, tile-by-tile in 3D space. This was version 1.0 of the Happy Cube Solver and it was released as open source in sourceforge.
Some time went by and the Happy Cube Solver got the attention of the people at Happy n.v. who actually manufacture the puzzles. They had several requests for features in a new version and so version 2.0 was set in motion. Version 2.0 included: