This (set of) program(s) will help you solve a certain kind of puzzle. Namely puzzles that
are made out "glued" together basic units. As basic units the program currently supports:
square or dice shaped units, spheres, prisms with an equilateral triangle as base
or 2 grids that use tetrahedra.
The problem of the puzzle must be to assemble them into a certain shape. An additional
constraint says that the pieces within the result shape must again aligned relative to the
grid of the basic unit.
To whet your appetite here are some screenshots that show off all the important features of the
program. If you click the images a normal sized version of the window will be loaded.
This image shows the window in shape editing mode editing one of the pieces of the example
puzzle "Broken Sticks". It uses the anaglyph mode for red-cyan/blue glasses
This image displays the window in problem editing mode. It shows the Puzzle "Draculas Dental Desaster"
designed by Ronald Kint Bruynseels which is included as an example
This image shows the window in solution mode. It shows "More MazeN Cube" by Derek Bosch"
This image contains the image export window one of "Interlocking Puzzle"s truncated octahedrons, a puzzle
using the tetra-octa grid.
This image shows the example puzzle with the triangle grid: "Bermuda" designed by Bill Cutler
And one example with the sphere grid: "Ball Room" by Stewart Coffin
Finally an example with the rhombic grid. Again a puzzle designed by Stewart Coffin: "Permutated
This shows the stl export window for a sphere piece. You can see the rounded connections
And of course you can also export the shapes of all other space grids. This is a piece of the example puzzle
"Pieces of Eight" designed by Stewart Coffin
There are also 2 videos available that show how a puzzle is entered and solved using
BurrTools. The puzzle that is used can be found
The video is divided
into 2 parts. Part 1 contains
the creation of the shapes and solves the puzzle the first time.
Part 2 adds colours to the shapes to make the
puzzle complete and the solution unique. The files are 2 and 1.5MBytes big.
You can also find a tutorial made by Lee Krasnow that explains the Rhombic Grid.
So what are the features
- Does nearly all that PuzzleSolver 3D which is
- You can enter all puzzles that are assembled out of dice shaped units
- Find assemblies for you puzzle
- Disassemble the found assemblies
- Show everything in a 3 dimensional image
- Animate how the puzzle has to be assembled
- Toggle the visibility of pieces in the solution to have a look at the inner workings of
a puzzle. This is especially helpful for box packing puzzles
- Runs on Windows, OSX, Linux, FreeBSD and probably other Unix variants as well.
- Has several different grids (Cubes, Triangles, Spheres, Rhombics)
- You can specify which cubes to fill and which can be empty or full. PuzzleSolver 3D has
only 2 modes. Either all cubes may be left empty in the solution, or the cubes that have
an empty neighbour must be filled. BurrTools are more flexible here.
- More than one problem in one file (e.g. have several Soma Cube problems in the
- Constraints to piece placements (like checkerboard)
- Group pieces together to tell the disassembler that they don't need to be taken apart.
This is necessary for puzzles like "Cube In Cage" where the cage can not be taken apart
but has 3 movable pieces
- No limits (or at least very high limits) to sizes and number of shapes. As long as your
computer has the memory and
you the patience the program will do it for you, even if it takes aeons.
- Create images
that contain the pieces, or an instruction how to assemble the puzzle, or create
vector images for further processing
- Create files suitable for STL aware hard and software (e.g. 3D printer)
- Free as in beer. It doesn't cost you anything
- Free as in speech. The source is available, so you can do your own programming
or help me writing this software or even continue improving the program in case
I have to stop working on it.
- Save puzzles with solutions in compressed XML-files. This allows you to create
puzzles with other means (like your own burrgrower, ...)
- A library is provided that helps you to write your own software for puzzle
design and analysis
I've been asked many times why I don't sell the program. For
those that are interested
I put up a small text explaining it.
To learn more about BurrTools you can read an online version of the user guide and the library
documentation. The user guide documentation is also available as a PDF below in the download
section and as help inside the program.
The library documentation explains the library interface and can be generated from the source
code of the library using doxygen. This documentation is mainly for people wanting to use the
library and only of limited use for those who only want to use the GUI part of BurrTools.
Both documents are always for the latest release and will be updated with each release.
Click here for the user guide and here for the
BurrTools 0.6.3 has been released this is a bugfix
release. Two bugs have been fixed
- Fix a problem that made BurrTools find an
unpredictable amount of solutions when you started a new
puzzle and solved it. When a saved puzzles was loaded the
number of solutions was right
- Fix a problem with the rotated solution removal when
using a set of pieces including some mirror pairs and when
not all pieces were used in all solutions
BurrTools 0.6.2 has been released this is a bugfix
release. Two bugs have been fixed
- Fix a problem with the "expensive rotation check". The
check returns the wrong number of results when piece
ranges are used.
- Fix a crash when removing pieces from problems that
already contain solutions.
BurrTools 0.6.1 has been released this is mainly a bugfix
release fixing 2 nasty bugs:
- STL export was broken, it sometimes crashed the
- The error message handling was broken, all error
messages from the library were displayed as meaningless
texts with a lot of zeros in there
I want to use this nice date to announce that version 0.6.0 has been released. This version has the
following new features:
- completely rewritten STL-export- and OpenGL-display-code, they do now share a
common base. With this come the following features:
- STL export for all grids, including hollow shapes for all grids
- STL export preview in the STL export window, you see exactly what the STL
shape looks like
- for the programmers: it has become simpler to support new grids all polygon
based grids now can create proper STL output and code for the 3D display
much easier, grids like the spheres stay complicated, though
- bigger sensitive click spots for spheres, they also look better
- in the 3D view you can see the natural color and the color constraint color
- improved STL export window (tooltips, ...)
- STL export displays the exact volume of the generated object
- add a new way how objects are rotated in the 3-D viewer
This version also fixes a few problems:
- fix a problem loading puzzle files with complex groups
- deleting the last shape crashed the program
- make compilabe with gcc-4.4 and fltk-1.3
I want to thank Derek Bosch for his help in this release.
Although we had to start over twice he managed in the end to
come up with the bevel and offset code required for the STL
Version 0.5.2 has been released. This version is another bug-fix
release. But it also contains 2 small but nice new features:
This version also fixes the following problems:
- STL export of hollow spheres. It is now possible to
generate hollow sphere for the 3d printer, saving you a
lot of volume and costs. Thanks to George Bell for this
- Improvements to the movement browser: in the cube grid
you can now push and pull pieces around by clicking onto
their faces and holding the Shift or Ctrl key down. Thanks
to Barry Downes for this feature.
- With some sphere puzzles BurrTools left in some
rotations, leaving you with too many solutions. Thanks to
ISHINO to give me a simple problem to investigate this
problem. Also thanks to Joe Becker who thought that there
was a problem but could not give me a simple example.
- Fix a bug when importing sphere shapes from assemblies.
This but caused a crash nearly every time you tries to do
- Fix a bug in STL export for cubes that caused the
generation of faulty STL files with some cube
arrangements. Thanks to Derek Bosch for the fix.
Version 0.5.1 has been released. This version is a bug-fix
release. It fixes 4 problems, some of them rather important, so please update.
- Fix a problem in the new expensive rotation check
functionality that resulted in too few solutions
- Fix a rounding bug that happened when transforming
sphere shapes that resulted in too few solutions
- Fix a crash when opening the status window with sphere
- Deactivate movement browser when not available.
Opening it in those situations caused a crash
- Fix a possible crash when minimizing shapes
- Documentation updates
Version 0.5.0 has been released.
This is a major new release with a ton of new features
But before we start with the features I want to mention an important bug-fix.
Joe Becker found this one. When you use piece ranges and assigned different
ranges to the 2 pieces of a mirror pair of pieces versions prior to this may
loose solutions, so I really urge you to update.
But now finally let's start with the features. Again BurrTools learned a new
grid. The new grid is based on tetrahedra and octahedrons. With this grid you
can analyse the tetrahedra-puzzles form Interlocking Puzzles. I want to thank
Wayne Daniel who provided me with 2 example puzzles to test the new
Another great new feature is a disassembler for the triangle grid. You can not
analyse disassembly sequences for those puzzles. Be aware though that
coordinated motion moves are not supported by now.
Also the printable manual has returned and it is better than ever. BurrTools
still contains the on-line help but if you want a proper manual you can
download that manual formatted for A4 or letter paper format. The size of the
manual has also reached more than 100 pages. It covers all the features of
BurrTools and contains a lot of hints and usage examples to make life easier.
BurrTools now contains some features that can be used for piece generation. It
has become very easy to create all shapes that fulfil a certain property. It
will probably not help in all situations but many tedious manual tasks can be
simplified a lot. For that tasks I also speed up the status window
calculations by a huge amount.
While we are talking about speed up. I replaced the sorting algorithm that
sorted solutions by a usable method. If you had more than a few solutions the
old algorithm was way too slow. I also replaced the whole save and load code.
The file format stayed the same but internally everything has changed. The new
code is much much faster. It also requires much less memory. This can be
important for big puzzles. The old code might fail to save an analysis because
it ran out of memory. This will no longer happen.
I also optimized the disassembler to require less memory. It is now possible
to analyse disassembly of puzzles with many more internal states. I also
removed that stupid 256 piece limitation for the disassembler, so you can now
analyse puzzles with lots and lots of shapes.
Besides these bigger improvements there are a lot of smaller things
- add scrollwheel support for 3D view zoom
- millability and notchability in status window
- fix potential symmetry calculation problem with the rhombic grid
- different config file format, the old one is thrown away)
- fix a cursor drawing bug in the rhombic grid
- converter from cube to rhombic grid and from cube to tetra-octa grid
- add a simple movement browser to analyse the movements of pieces in an
One final remark. I will no longer support the windows installer. I can not
test that part of BurrTools on my computer. Lately I found out that there has
been a bug in the installer that has been there for a very long time and no
one cared to tell me. As I don't like to give out faulty software I will no
longer support that feature. You will have to live with the ZIP-archive. I
can look into the ZIP file and check everything is all right.
Older news can be found here
|Source (for all systems, as long as you get it compiled)
|Windows Binary (in zip archieve)
|OSX Binary (64-bit, Mac OS X 10.7+)
|BurrTools user guide formatted for A4 paper size
|BurrTools user guide formatted for letter paper size
You can make bug reports and feature requests on the
There is also a mailing list to be found there where things can be discussed publicly. If you want to mail to this list
use the following adress:
You have to subscribe to this list if you want to mail to it. Sorry for the inconvenience but
there were too many spam mails.
To subscribe to the list or read the archives use the
lists web page.
If you want to contact me personally mail to my sourceforge adress:
roever at users dot sourceforge dot net
If you want to contribute changes, improvements, fixes or whatever I suggest you get yourself the
darcs revision control system. I
use that system for the development.
The repositories are available at http://burrtools.sf.net/repos.
Currently there are three branches there
This is the main development branch. It contains all releases (except 0.1.9),
it is a darcs 2 repository
This is the end state of the darcs 1 repository the last release with it is 0.4.2
This branch contains the 0.1.9 release.
The repositories are read only, so if you want to send me your changes you have to use the send feature
of darcs. I will then apply the changes you made. The repository will be updated by me on a daily basis,
when development goes on.
My special thanks goes to the following people for continuing support or other help
André van Kammen. His
has been a great inspiration. It has been the base for the GUI of BurrTools
Donald E. Knuth. His
algorithm is one base part of the program. Although it has now become modified by ideas from Wei-Hwa Huang
Bill Cutler: His
helped implementing the 2nd part of the core algorithm. And he also contributed other ideas.
Ronald Kint-Bruynseels: He is always a big source of ideas, he is beta tester, documentation writer
GUI designer and usability improver, icon painter and what not all else. Without him BurrTools
would not be what it is now.
Derek Bosch: mainly responsible for the OSX port. But he also contributes the odd code snippet or even
new feature here and there.
provides the discspace for this webpage.