This is a "fractal" jigsaw puzzle generator.
It creates jigsaws with a pattern that resembles the "inner" part of a space-filling fractal dragon curve, although no fractal geometry is involved in
the generation process. Additionally, I've found that some people like the texture it generates in single-piece
mode (see below) and use it for lamp shades and such. This runs entirely on your computer (via your browser) and
has no external library
dependency, it's fully self-contained. You need a relatively modern browser for this to work. It has been tested
on current versions (mid 2021)
of Chrome, Firefox and Edge.
These jigsaws are meant for laser-cutting.
This is open-source software. Check the github repo here.
How to use?
The jigsaw starts with tiles placed on a square grid. Each tile may be joined diagonally to its neighbors,
creating
the jigsaw pieces. The jigsaw is procedurally generated (using a computer algorithm), which internally uses a
pseudorandom number generator to drive the
process. These are the adjustable parameters:
Seed: It's the starting value for the deterministic, pseudorandom number generator used in
the generation process. Seed value, grid dimensions (columns and rows) and piece tile count limits (min and max
piece size) define unique jigsaw patterns that can be regenerated using the same input parameters. If you tick
the "use non-deterministic randomness" checkbox, a non-deterministic random number generator
is used instead, and a unique pattern is generated every time you press the "Generate Jigsaw" button. These
patterns are truly unique and can't be regenerated ever again.
Columns and rows: The jigsaw tile grid dimensions. The larger the jigsaw, the longer it
takes to generate.
Tile radius: The actual, physical radius of the jigsaw tiles, in millimeters. In octagonal
tile mode, it's the radius of the circle inscribing the octagon tiles.
Frame size: Extra frame width surrounding the jigsaw.
Frame corner radius: The radius of the frame corners.
Minimum and maximum piece size: Minimum and maximum number of tiles allowed per piece.
Minimum piece size will always be honored, while the maximum size may be overshot by some tiles because of how
the generation algorithm works.
Custom border mode: Rectangular borders can get boring, so there's an option to upload a
custom border to be used for your jigsaw. Press the file picker button on the left of the "Load SVG border
Button" to open a file picker dialog. Choose the SVG file that you want to use as border, and then press the
"Load SVG border" button BEFORE pressing "Generate Jigsaw". To "unload" the svg border and get back to the
normal rectangular frame mode just reload the webpage. Some notes about Custom border mode:
Nothing is actually uploaded anywhere, everything stays on your computer, running inside your browser.
Your SVG borders remain in your computer. You can totally use this offline.
The border file must be:
An SVG file, compliant to the SVG specification. Should work with most SVGs.
The dimensions of the jigsaw will be the numerical dimensions of your border, interpreted as
millimeters. If you set your units to pixels and draw a 500x500 pixel border, it will be
interpreted as 500x500mm. If you set it to inches and the dimensions are 6"x4", it ill be
interpreted as 6x4mm. So it's better if you just use millimeters for the SVG border.
Next update will let you adjust the final jigsaw size, stay tuned.
This is NOT guaranteed to work. It should work with most
SVGs but I haven't tested the whole specification.
You may export the jigsaw to SVG in several ways:
Colored SVG: Export the jigsaw with colored pieces. Great to use for box covers or as the
jigsaw solution. If you use non-deterministic randomness mode, the colors
of the exported SVG will be different from those shown in the jigsaw preview.
Individual pieces with overlap: Export the pieces as overlapping closed paths. This can't be
lasercut straight away, but it can be used for cutting individual pieces (for replacements or to cut them in a
milling machine)
Non-overlapping: Vectors are exported with no overlap. It can be lasercut straight away.
There's still some overlapping in octagonal shape mode, which is tricky to remove. You may want to use
a vector editing software to remove the remaining overlaps. There are no overlaps in circular or square
tile shape modes.
Non-overlapping, single path: Vectors are exported with no overlap, but the SVG is composed
of a single path instead of multiple paths. Apparently this way it works better with Trotec machines for some
reason.
Tips and tricks
Single piece mode
If you set the minimum and maximum piece size to exactly half the number of tiles in the grid, it will generate a
single piece jigsaw with a very interesting texture that some people are using for lampshades and such.
For example, if your grid is 50 columns by 30 rows (50x30 =1500 tiles in total), set the minimum and maximum piece
size to 1500/2 = 750 tiles for single piece mode
Trotec machines software tip
Apparently, Trotec machines have some issues with the SVGs generated by this generator and may crash or fail while
cutting. Trotec software optimizes vectors by default converting everything to bezier curves before generating the
laser cutting toolpath. These puzzles are made entirely of circular arcs (a rare edge case), which are hard to
approximate with bezier curves.
You have to disable this optimization to cut these jigsaws. There's an option in their JobControl software to
disable it, but I don't know how to do it as I don't own a Trotec machine, so please contact Trotec for help.
Offline use
As this is fully self-contained, you may download the website's html (for most browsers by right-clicking on the
website and selecting
"Save As...") and just run it offline by opening the saved HTML with your browser. It doesn't need an Internet
connection for
anything as it has all the code embedded within the HTML.