Pixel Discs stacking puzzle
Pixel Discs stacking puzzle
Published 2018-06-18T09:12:30+00:00
Flip, rotate, and stack a column of discs to reveal the halftone image around the cylinder you build.
Bonus: If this project looks like too much printing for you, note the design I used around the cylinder means that you can print discs 0 through 7 instead of all 16 and still have a fully-functional puzzle (half-height, but with half the printing time! See the shorter-stack photo.).
Goals of this project:
Contain enough intrigue that I can print my next one with a sweet, sweet Dremel 3D45
Emulate the satisfying experience of stacking and playing with poker chips
Include pixelated art (I eventually allowed myself to use halftoning with dots to add interest, better utilize the abilities of a 3D printer, and make the puzzle slightly more challenging)
Limit the difficulty to a reasonable amount (I wanted my children to enjoy it, and I wanted coworkers to be able to have a reasonable shot at finishing it without killing their productivity.) This goal, along with the satisfying feel of locking together, was met by enforcing rotation permutations to 9 via raised bumps and correlating embossed areas for them to settle.
Include a an embossed-in solution marking in such a way it could not be inferred (or even accidentally remembered from a previous build) by the solver (I used random series of round and square markings that were printed on the top and bottom and at random hour-on-a-clock locations that are are used in the solution manual as disc identifiers and flip and rotation alignment information)
Eliminate the hints that 3D printing typically brings to puzzles: Often the top is distinguishable from bottom, rotation can be inferred by direction of lines or even how much detail an edge holds. (I overcame this by having my script randomly flipping and rotating the pieces it built)
Keep everything parameterized so I can build customized pieces upon request, with coder-style effort (lack of, or at least minimal)
Allow no-support printing
Also be useful as something besides a puzzle. This one attempts to be meta puzzle art but for sure at least succeeds as doubling as a desk pen holder
In order to most-efficiently meet all my goals, with me being a software engineer by trade, I wrote a dirty Java app to read in an image, spit out arrays of parameters (disc rotation, pixel colors, solution markers, etc), and I fed those parameters into a 450-line OpenSCAD script that built and aligned the actual pieces.
Solution:
Bottom disc listed first, top disc listed last. Match the series of circles and squares with the key to find which disc, and rotate that disc so that series matches the on-a-clock position noted.
0. ▢▢◯◯◯◯ up (or ◯◯◯◯▢▢ down), markings series rotated to 3 o'clock position
1. ▢▢◯▢▢▢ up (or ▢▢▢◯▢▢ down), markings series rotated to 12 o'clock position
2. ▢◯▢▢▢▢ up (or ▢▢▢▢◯▢ down), markings series rotated to 9 o'clock position
3. ◯▢◯▢▢▢ up (or ▢▢▢◯▢◯ down), markings series rotated to 10 o'clock position
4. ▢◯▢▢▢◯ up (or ◯▢▢▢◯▢ down), markings series rotated to 5 o'clock position
5. ▢◯◯▢▢▢ up (or ▢▢▢◯◯▢ down), markings series rotated to 4 o'clock position
6. ◯▢◯▢▢◯ up (or ◯▢▢◯▢◯ down), markings series rotated to 11 o'clock position
7. ▢▢◯▢◯◯ up (or ◯◯▢◯▢▢ down), markings series rotated to 3 o'clock position
8. ◯▢◯▢◯▢ up (or ▢◯▢◯▢◯ down), markings series rotated to 3 o'clock position
9. ▢▢▢▢▢◯ up (or ◯▢▢▢▢▢ down), markings series rotated to 12 o'clock position
10. ▢▢◯◯◯▢ up (or ▢◯◯◯▢▢ down), markings series rotated to 12 o'clock position
11. ◯◯◯◯◯▢ up (or ▢◯◯◯◯◯ down), markings series rotated to 12 o'clock position
12. ▢◯◯▢▢◯ up (or ◯▢▢◯◯▢ down), markings series rotated to 8 o'clock position
13. ◯▢◯◯◯▢ up (or ▢◯◯◯▢◯ down), markings series rotated to 7 o'clock position
14. ◯◯◯◯▢◯ up (or ◯▢◯◯◯◯ down), markings series rotated to 8 o'clock position
15. ◯◯▢▢▢▢ up (or ▢▢▢▢◯◯ down), markings series rotated to 3 o'clock position
Printing Tips:
Make sure each disc is flipped with the 3 bumps up (so support can be left turned off). If you don’t like to deal with perfect bed leveling, but still want a reliable finish, I recommend printing these on a raft. To improve the visual quality of the printed pixels around the edges (reduced ghosting artifacts) I used a lower-than-my-normal acceleration for my outer walls, but a slower speed overall should accomplish the same thing.
Print out a test bump (tolerances differ from printer to printer and settings to settings) and resize accordingly for a tight fit that still allows the piece to be pushed into the holes (I had to increase the size in both dimensions from exact reality by .2mm to work with my printer). After sizing is dialed in perfectly, print an array on 48 of them.
Finishing:
Insert the bumps you printed into the holes on the undersides of the discs (opposite the side that already has bumps printed on it) where you’ll find which holes needing them installed annotated by a small circle embossed directly beside the larger hole. Super glue might help if you decide the fit is not as tight as you'd like. There will be 3 required to be installed on each disc. To make the pixels really stand out, I recommend using a black permanent marker (or paints would work, if you print using a dark filament) to color the raised portions around the edges. This was most efficient to perform on a solved cylinder.
Date published | 18/06/2018 |
Time to do | 960 - 1920 minutes |
Material Quantity | 250 grams |
Dimensions | 81mm x 81mm x 160mm |
Support Free | YES |