Next: Appendices Up: User Guide Previous: Reporting with BurrTools  Contents
Subsections

Future Plans

So, what are our future plans? There are a lot of things still missing (or in need of improvements) from the current program. A list of things that might be interesting to implement are the following:

We would be very happy to get contributions from other people. After all there are quite a few people out there that have their own puzzle solving programs, maybe they have some nice additions. There is one important thing to keep in mind: the additions have to run on LINUX. So you can not use any proprietary library that is not available for LINUX.

Burr Design Tools

The following paragraphs are written as if the features were already implemented, but this is only done so that the text can be copied into the real book without having to rewrite a lot of it.

There are 3 possible design methods implemented in BurrTools

  1. BurrGrowing after Dic Sonnevelds ideas
  2. Constructing, the natural approach
  3. Destructing, the inverse way, take the assembled puzzle and try to assign cubes to one of the pieces
The following sections will describe these methods

Burr Constructing

The idea behind Constructing is to create new puzzles out of a set of pieces, try all possibilities and select the best found. To give the designer a great number of possibilities there are loooots of options here beginning with the design of the pieces ending with the method of how to solve the generated puzzle and how to save them.

The basis for the Burr Construction is a normal puzzle file containing some shapes. These shapes are then taken by the constructor and made into many puzzles that are solved.

So lets start with the piece generation. Each piece for the puzzle that needs to be generated may be assembled out of the following possibilities: a fixed piece, a list of pieces, a merger of 2 or more pieces, a piece containing variable cubes. The whole possibilities can be stacked on one another, so you can specify a list of 2 pieces where is piece is the merger of 3 pieces containing variable cubes... . All this can result in many possibilities, so be careful if you want a full analysis this side of eternity. Because of the complexity the program also might encounter the same puzzle several times. It will also be possible to let the program select puzzles out of the definition space by chance instead of doing a full analysis.

So what do the possibilities mean.

fixed piece
a shape containing no variable cubes. This shape is directly used
variable piece
a shape containing n (n>0) variable cubes. All shapes are used that have one of the 2^n possible conditions for the variable cubes are used
list of pieces
the pieces in the list are taken one after the other
merger of n pieces
a new piece is constructed containing the union of both pieces, where the union is set, if one of more of the shapes to merge is set and the others are not set and variable is at least one is variable.

At the end of the process it is possible to define the type of connection that must exists inside the shapes, shapes that do not fulfil this requirement are dropped

All these possibilities may lead to a huge number of shapes, so be careful.

Now it is possible to select the way the puzzle is solved. This includes disassembly (if or if not), also reduction and parameters for reduction can be set

Finally it is possible to select the way the created puzzles are saved.

Save puzzles with solution(s) or without to save space

The puzzles are all saved into single directory, that must be selected

It would be nice to be able to stop the search process and continue later on, the parameters for the constructor should be saved into the source puzzle file (including the current state)

Destruction

Destruction is in some way the inverse process of construction. Here you start with the finished assembly and you assign the outer voxels to certain pieces. Now the search process starts by assigning the not yet assigned cubes to pieces or to voids. All possibilities are tried and the best are kept.

Additionally it is possible to pose certain requirements on the piece shapes. You can say in which way the pieces must be connected (by faces, edges, corners), if the pieces need to be machine makable.

Also it is possible to do the whole process randomly instead of completely

Burr Growing

This method has been pioneered by Dic Sonneveld. It is suitable to create extremely high level burrs. The algorithm works by adding cubes to pieces to prevent certain moves and hope that the puzzle will still be disassembable in a different way.


Next: Appendices Up: User Guide Previous: Reporting with BurrTools  Contents