http://www.research.ibm.com/BurrPuzzles
Java can be used to create special purpose applets tailerd to
a particular puzzle. For example I have written a Java applet which
can be used to calculate and explore 6-piece burrs. It is the most
flexible of all these technologies, but requires quite some
programming skills.