A couple weeks ago I posted about how to generate random jigsaw puzzles from code and promised to follow up showing how the code could be used to carve puzzles from any design in Easel. I've just released a new Easel app called "Puzzle Designer:"
The code for the app is open source and licensed under the MIT license.
Here's a puzzle I made from the Stone Brewing Gargoyle on Carvey using 1/8" white on black laserable acrylic from the Inventables store:
Here are some quick tips on how to use the app to make puzzles:
- Create a design in Easel and make it exactly the size you want it to be when cut out
- Make a copy of your design so that you can preserve the original un-puzzle-ified design
- Select all of the design
Move the design away from the lower left corner (Easel apps always place their output at the lower left corner and you don't want to cover up your original design)
- Launch the "Puzzle Designer" app:
- Decide how many rows and columns, and thus how many total pieces you want. Changing these parameters will not affect the total size of your puzzle, it will only change the size of the pieces. (The size of your puzzle is always the size of your original design).
- Currently all elements of your design will be treated as fills within the puzzle, though supporting outlines would be a simple enhancement
- When you feel you've got the right number of pieces, you can check the "Separate Pieces" checkbox if you want the app to separate the pieces for you before placing them on the canvas. It will space them out enough to fit the bit between them
- Click to "Import" the puzzle to Easel
Now, importantly, we need to change all of the outline cuts to be "outside" cuts. Do this in one step by clicking "Edit / Select by Cut Type" and then click "Outline" to select all outlines. Then in the "Cut" panel, change the "Outline" style to "Outside." You may want to turn off tabs, or change the quantity/size of the tabs (I cut mine without tabs and lifted the Carvey door to remove each piece as it came free, but you may not feel comfortable doing it that way). Changing the tabs while all outlines are selected can also be done in one step
Change the depth of all the fills by doing another "Select by Cut Type" except selecting "Fill" this time. For my gargoyle puzzle, I wanted to just barely engrave the pattern into the material to expose the black
- If necessary, make a copy of your project and distribute the pieces on the canvas. I cut the top of my puzzle in one project, and the bottom of it in a 2nd project. This way I didn't have to worry about jamming all of the pieces into one project or fitting them onto one piece of material
Notice how there are a lot of steps involved! This is not ideal. In fact, I was inspired to build this app by @Vk1's work on his own Puzzle Generator app, and to use it as a case study in improving the programming framework that developers use when building Easel apps. There are a number of limitations in our framework right now that make both the process of building apps and the experience of using apps harder than they should be in some cases. For example, apps cannot specify the outline style (inside/on path/outside) of a given cut. They also do not receive information about the cut depths of your original design. We are going to be working hard to eliminate those shortcomings over the next few months.
I hope you enjoy using the app. I'd love to hear your feedback on it and see what kind of puzzles you make!