For years I’ve been thinking about memory-efficient ways to represent Lego-models created with 2×2 bricks. This started all the way back in 2002-2003 when we discussed with my former colleague Teemu Pakarinen ways to generate all possible Lego models for a given set of bricks.
During Spring 2012 I worked out together with my brother-in-law a bit-string representation of 14 bits per brick. I realized that this could actually be used to create a puzzle game, thus a game was born that I have christened: Brickoku.
During March 2013 I wanted to learn some new language, so I decided to give a shot at Haskell. I wrote then the first Brickoku model generator. The code repository for Brickoku is hosted on Github at: http://github.com/jesterKing/brickoku.
Models can now easily be generated, I’ve uploaded a batch of rendered models to my Flickr account: http://www.flickr.com/photos/nathanletwory/sets/72157633163736355/. These models have been rendered with Cycles.
Currently I’m busy writing a solver that can solve the actual game as well. When that is done it will be possible to run some verifications of the assumptions I’ve made, the biggest of all of them: using the number format as proposed for Brickoku (see the README in the Brickoku repository for explanation of the rules), most model can be expressed as a series of integer numbers. Another one is: the order of integer numbers for a given Brickoku model isn’t important. And thirdly: a Brickoku model can be arbitrarily large: a solution does always exist.