{"title":"5 Piece Puzzles","description":"\u003cp\u003eFive pieces gives a designer room to build a real sequence: a piece that has to go in first, another that only fits after a slide, a last one that needs everything else to be exactly right.\u003c\/p\u003e\u003ch2\u003eWhere to start\u003c\/h2\u003e\u003cp\u003e\u003ca href=\"\/products\/one-way-or-another-move-the-disc-corner-to-corner\"\u003eOne Way or Another\u003c\/a\u003e is rated Medium: five tray pieces and a disc you have to move from one corner to the other. The packing puzzles step up from there. \u003ca href=\"\/products\/galette\"\u003eGalette\u003c\/a\u003e packs five tetrominoes into a frame, and \u003ca href=\"\/products\/cubiz-puzzle\"\u003eCubiz\u003c\/a\u003e, \u003ca href=\"\/products\/minima-slider\"\u003eMINIMA Slider\u003c\/a\u003e and the \u003ca href=\"\/products\/xmas-stocking-puzzle-pack-5-n-pieces-in-box\"\u003eXmas Stocking Puzzle\u003c\/a\u003e each pack five pieces into a box. All are rated Hard.\u003c\/p\u003e\u003cp\u003e\u003ca href=\"\/products\/bonbon-puzzle\"\u003eBonBon\u003c\/a\u003e is the hardest packing puzzle here, rated Expert.\u003c\/p\u003e\u003cp\u003eThe five-piece TICs include \u003ca href=\"\/products\/fantastic-puzzle\"\u003eFantasTIC\u003c\/a\u003e and \u003ca href=\"\/products\/genetic-puzzle\"\u003eGeneTIC\u003c\/a\u003e, and \u003ca href=\"\/products\/lunatic-turning-interlocking-cube\"\u003eLunaTIC\u003c\/a\u003e is rated Expert.\u003c\/p\u003e\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eAre five-piece puzzles harder than four-piece ones?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eNot as a rule. Most puzzles in both collections are rated Hard. Difficulty depends on the design far more than on the count: 4L has four pieces and is rated Expert, while PackTIC 6 has five and is rated Medium.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat does 5+1 mean?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eFive pieces plus a box, frame or tray. The extra part is not something you assemble, it is the space the pieces have to fit into, and it is usually what makes the puzzle hard.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is a TIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eA Turning Interlocking Cube - or TIC - is a 3D mechanical puzzle where pieces must be rotated in a precise sequence to disassemble and reassemble a cube. What makes TIC puzzles special is that although every single one ends in the same shape, the sequence of moves to get there is completely different each time. Same cube. Totally different journey. Every TIC you pick up is a new challenge you haven't solved before.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","products":[{"product_id":"galette","title":"Galette | Pack 5 Tetrominoes in Frame","description":"\u003cp\u003eGalette is a 3D packing puzzle with a simple goal - pack all 5 tetromino pieces inside the box. But a simple goal doesn't mean an easy solution.\u003c\/p\u003e\u003cp\u003eA tetromino piece is made of 4 voxels, or 4 cubes attached together.\u003c\/p\u003e\u003cp\u003eThere are 2 openings - a wide one from the top and a small one from the side.\u003c\/p\u003e\u003cp\u003eHowever, this small restriction changes everything: not only is it blocking the pieces' way inside, but also restricts their path inside the box while hiding them from your vision.\u003c\/p\u003e\u003cp\u003eThis simple addition turns Galette into a considerable challenge. Do you think you can solve it?\u003c\/p\u003e\u003ch2\u003ePuzzle Specs\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Hard\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e 5 tetromino pieces (4 voxels each)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed PLA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eOpenings:\u003c\/strong\u003e 2 (top wide, side narrow)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBest For:\u003c\/strong\u003e Ages 14+\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRecommended for:\u003c\/strong\u003e puzzle gift, desk toy, brain teaser\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eWho Is This For?\u003c\/h2\u003e\u003cp\u003eGalette is a perfect gift for math lovers, Tetris fans, and puzzle collectors - anyone who appreciates a clean design hiding a genuinely difficult challenge. If you know someone who thinks they've seen every packing puzzle, this one will surprise them. It belongs on a desk, a shelf, or under a gift wrap.\u003c\/p\u003e\u003ch2\u003eWhy Is It So Hard?\u003c\/h2\u003e\u003cp\u003eThe top opening looks generous enough - and for the first few pieces, it is. But the side opening changes the rules entirely. It forces certain pieces through a narrow path, which means your usual stacking instincts stop working. Pieces that fit perfectly from above simply won't cooperate when the side constraint is in play. You have to think in three dimensions, rethink orientations you've already dismissed, and stay patient when every attempt seems almost right. Almost.\u003c\/p\u003e\u003cp\u003e\u003cem\u003eDesigned by \u003ca href=\"\/collections\/osanori-yamamoto\"\u003eOsanori Yamamoto\u003c\/a\u003e\u003c\/em\u003e\u003cbr\u003eThe puzzle measures 8.5 cm x 8.5 cm x 2.5 cm\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eReady to be stumped? Add Galette to your cart.\u003c\/strong\u003e\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46500536615079,"sku":"GP-GALE","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/galette_marble.png?v=1782028494"},{"product_id":"bonbon-puzzle","title":"BonBon | Packing Puzzle","description":"\u003cp\u003e\u003cstrong\u003eBonBon is an expert-level 3D packing puzzle designed by \u003ca href=\"\/collections\/frederic-boucher\"\u003eFrederic Boucher\u003c\/a\u003e. Your challenge: fit all 5 uniquely shaped pieces into the box so that not a single piece protrudes. Looks compact and simple. It is neither.\u003c\/strong\u003e\u003c\/p\u003e\u003cp\u003e5 pieces - Expert difficulty - 4+ hours solve time\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e adults who love spatial challenges that look approachable but deliver hours of satisfying frustration - ideal for experienced puzzle solvers seeking their next obsession.\u003c\/p\u003e\u003ch2\u003eThe Puzzle That Stops Seasoned Solvers Cold\u003c\/h2\u003e\u003cp\u003eThe box is small. The pieces seem obvious. And yet BonBon has stopped seasoned puzzlers cold - because the solution requires a packing sequence that defies every instinct your brain brings to the table.\u003c\/p\u003e\u003ch2\u003eThe Challenge\u003c\/h2\u003e\u003cp\u003eFive pieces. One box. Zero tolerance for protrusion. That is the entire ruleset - and it is brutally enough.\u003c\/p\u003e\u003cp\u003eBonBon's difficulty does not come from piece count. It comes from the way those 5 pieces interact in three dimensions. Every piece that seems to fit will block the next. You will find arrangements that get you to 4 pieces and feel certain you are close. You are not close. The fifth piece will not go in - and the sequence you used to get there is the problem.\u003c\/p\u003e\u003cp\u003eFrederic Boucher is known for exactly this kind of puzzle: elegant, minimalist, stripped of any distraction so that the constraint itself becomes the entire experience. There are no tricks, no hidden mechanisms, no misdirection. Just geometry - and the gap between how your brain models 3D space and how the pieces actually behave inside that box.\u003c\/p\u003e\u003cp\u003eThis is an expert-rated puzzle. Typical solve time exceeds 4 hours. Some solvers take considerably longer.\u003c\/p\u003e\u003ch2\u003eSpecs\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Frederic Boucher\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e 5 + 1 (pieces + box)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Expert\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve time:\u003c\/strong\u003e 4+ hours\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTrains:\u003c\/strong\u003e Spatial Thinking\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the BonBon packing puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eBonBon is an expert-level 3D packing puzzle by Frederic Boucher. The goal is to fit 5 shaped pieces into a small box so that no piece protrudes above the rim - a deceptively simple objective that demands advanced spatial thinking.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is BonBon?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eExpert difficulty. Most solvers spend 4 or more hours on BonBon. Despite its small size and low piece count, the 3D packing constraint makes it one of the most challenging puzzles in its category.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWho is BonBon best for?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eBest for experienced puzzle enthusiasts who want a compact, high-difficulty challenge - particularly those who enjoy packing puzzles and the work of minimalist puzzle designers.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46754763309223,"sku":"GP-BONB","price":34.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/bonbon_marble.png?v=1782070991"},{"product_id":"elftic-puzzle","title":"ElfTIC Puzzle | Turning Interlocking Cube","description":"\u003cp\u003e\u003cstrong\u003eQuick answer:\u003c\/strong\u003e ElfTIC is a 5-piece, 4x4x4 Turning Interlocking Cube puzzle designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e. Your goal: assemble all five interlocking pieces into a perfect cube using rotational moves. Rated Hard difficulty with a 1-4 hour solve time, it is best suited for experienced puzzle solvers who want a genuinely demanding spatial challenge.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e Experienced puzzle enthusiasts who have already worked through standard interlocking or burr puzzles and are ready for a harder, rotation-based challenge that takes real time and spatial focus to crack.\u003c\/p\u003e\n\u003ch2\u003eElfTIC - A 4x4x4 Turning Interlocking Cube by Andrew Crowell\u003c\/h2\u003e\u003cp\u003eElfTIC is a Turning Interlocking Cube puzzle designed by Andrew Crowell, one of the foremost names in TIC puzzle design. Your goal is simple to state: fit all the pieces together into a 4x4x4 cube. Actually doing it is another matter entirely.\u003c\/p\u003e\u003ch2\u003eWhat Is a TIC Puzzle?\u003c\/h2\u003e\u003cp\u003eA Turning Interlocking Cube - or TIC - is a type of interlocking puzzle where pieces do not simply slide in and out. They turn. That single twist changes everything. Pieces that look like they should fit... don't. Moves that seem like they should work... won't. The geometry that makes a TIC puzzle function is exactly what makes it so difficult to solve.\u003c\/p\u003e\u003cp\u003eStandard interlocking puzzles reward spatial thinking. TIC puzzles demand it at a deeper level. You are not just finding the right position for each piece. You are finding the right sequence of rotations to get there.\u003c\/p\u003e\u003ch2\u003eWhat Makes ElfTIC Special\u003c\/h2\u003e\u003cp\u003eElfTIC requires \u003cstrong\u003e16 total moves\u003c\/strong\u003e to assemble. The last piece alone takes \u003cstrong\u003e11 moves\u003c\/strong\u003e to place correctly. That is not a typo. Eleven moves for a single piece in a 4x4x4 cube.\u003c\/p\u003e\u003cp\u003eThat last piece is the whole puzzle. You can work your way through the first pieces with patience and logic - and then the final piece arrives and everything you thought you understood gets tested. The path to the solution is narrow. Miss a step and you are back to the beginning.\u003c\/p\u003e\u003cp\u003eThe cube measures \u003cstrong\u003e60x60x60mm\u003c\/strong\u003e - compact, solid, and satisfying to handle. It ships assembled, so you can study the finished form before you ever take it apart. That first disassembly is part of the solve.\u003c\/p\u003e\u003ch2\u003eWho Is ElfTIC For?\u003c\/h2\u003e\u003cp\u003eElfTIC is built for puzzlers who already know they love interlocking puzzles and want something with genuine depth. If you have worked through a few standard burr or interlocking cube puzzles and found yourself wanting more - more moves, more complexity, more of that specific satisfaction when a sequence finally clicks - this is the next step.\u003c\/p\u003e\u003cp\u003eIt is also an ideal introduction to TIC puzzles specifically. Andrew Crowell's designs are precise and purposeful. Nothing about ElfTIC is accidental. The difficulty is built in from the ground up, not bolted on.\u003c\/p\u003e\u003ch2\u003eAndrew Crowell\u003c\/h2\u003e\u003cp\u003eAndrew Crowell has built a reputation around Turning Interlocking Cubes. His puzzles are known for elegant mechanisms and move sequences that feel surprising even when you are the one executing them. ElfTIC is a strong example of what makes his work worth collecting.\u003c\/p\u003e\u003ch2\u003eA Puzzle Worth Owning\u003c\/h2\u003e\u003cp\u003eElfTIC sits in a specific spot in any serious collection - it is not decorative filler and it is not an entry-level warm-up. It is a focused, well-designed challenge that rewards time spent with it. If you care about TIC puzzles, this one belongs on your shelf.\u003c\/p\u003e\n\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the ElfTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eElfTIC is a Turning Interlocking Cube (TIC) puzzle designed by Andrew Crowell. It contains 5 interlocking pieces that must be assembled into a 4x4x4 cube using a precise sequence of rotational and sliding moves. The puzzle requires 16 total moves to assemble, with the final piece alone requiring 11 moves.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is the ElfTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eElfTIC is rated Hard. Most solvers take between 1 and 4 hours to complete it, making it one of the more demanding TIC puzzles available at Greg Puzzles. The difficulty is built into the move sequence itself - not just the number of pieces, but the precision required to place them correctly.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is a Turning Interlocking Cube (TIC) puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eA Turning Interlocking Cube is a mechanical puzzle where interlocking pieces must be rotated and slid in a specific sequence to assemble or disassemble a cube. Unlike standard interlocking puzzles, TICs require rotational moves that make the solve path non-obvious. Finding the right position is only half the challenge - finding the right sequence of rotations is the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs ElfTIC a good gift for puzzle lovers?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eElfTIC is a strong gift choice for adults who already enjoy interlocking or mechanical puzzles and want something with real depth. It is compact at 60x60x60mm, cleanly 3D-printed, and challenging enough to keep an experienced solver occupied for hours. It is one of the bestselling TIC puzzles at Greg Puzzles.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858590322855,"sku":"GP-ELFT","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/elftic_marble.png?v=1782203749"},{"product_id":"fantastic-puzzle","title":"FantasTIC Puzzle | Turning Interlocking Cube","description":"\u003ch2\u003eCan you fit all the pieces into a 4x4x4 cube?\u003c\/h2\u003e\u003cp\u003eSounds straightforward. It is not.\u003c\/p\u003e\u003cp\u003eThe FantasTIC puzzle was designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e, one of the leading names in Turning Interlocking Cube design. His specialty is building puzzles that look like they should cooperate - and then don't. FantasTIC is a perfect example of that.\u003c\/p\u003e\u003ch2\u003eYour Goal\u003c\/h2\u003e\u003cp\u003eFit all the pieces together to form a solid 4x4x4 cube. That's it. Simple goal. The pieces are clean, the cube shape is familiar, and everything looks like it should just... click into place.\u003c\/p\u003e\u003cp\u003eIt won't.\u003c\/p\u003e\u003ch2\u003eHow It Actually Feels to Solve\u003c\/h2\u003e\u003cp\u003eHere's what makes FantasTIC different from a standard interlocking cube: the pieces turn. They don't just slide in one direction. You have to rotate and maneuver them through a sequence of moves that isn't obvious - not even a little bit.\u003c\/p\u003e\u003cp\u003eThe puzzle ships assembled, which means your first job is to take it apart. That alone will teach you something. Pay attention to how it comes apart, because putting it back together is a different challenge entirely.\u003c\/p\u003e\u003cp\u003e30 total moves to solve. That number sounds manageable until you hit the last piece - which takes 7 moves on its own. Seven moves just to get the final piece seated. Every time you think you're close, you'll realize you need to back up and rethink. Moves that seemed right will block you three steps later.\u003c\/p\u003e\u003cp\u003eThis is not a puzzle you brute-force. You have to think ahead, hold the sequence in your head, and commit to a path even when you're not sure it's the right one.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e Experienced puzzlers who are comfortable with 3D interlocking puzzles and want something that will genuinely challenge their spatial reasoning - not just their patience.\u003c\/p\u003e\u003ch2\u003eQuick Summary\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Advanced\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e Multiple interlocking pieces forming a 4x4x4 cube\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve time:\u003c\/strong\u003e Expect a long session - the 30-move solution with a 7-move final piece earns the longplay warning\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFAQ\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat exactly is the FantasTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eFantasTIC is a Turning Interlocking Cube (TIC) puzzle. Unlike standard interlocking puzzles where pieces slide in straight lines, TIC puzzles require rotational moves to assemble and disassemble. The goal is to fit all pieces into a compact 4x4x4 cube.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is it?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eIt's genuinely hard. The 30-move solution and the 7-move sequence required for the last piece alone put this in advanced territory. If you've solved a few interlocking puzzles and found them too easy, this one will push back. If this is your first TIC puzzle, expect a real challenge.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs it a good gift?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eYes - for the right person. If someone on your list already enjoys mechanical or interlocking puzzles and is looking for something more serious, FantasTIC is a strong choice. It's compact, beautifully made, and the kind of puzzle that stays on the shelf as a trophy once solved. For a casual puzzler or a first-timer, it may be more frustrating than fun.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858595401895,"sku":"GP-FANT","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/fantastic_marble.png?v=1782130487"},{"product_id":"genetic-puzzle","title":"GeneTIC Puzzle | Turning Interlocking Cube","description":"\u003cp\u003e\u003cstrong\u003eQuick Summary:\u003c\/strong\u003e GeneTIC is a 3D-printed Turning Interlocking Cube puzzle designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e. Goal: disassemble and reassemble 5 interlocking pieces into a 4x4x4 cube. At 26 moves to solve, it is one of the highest move-count puzzles in the TIC series. Hard difficulty, 1-4 hour solve time, 5 pieces, 60x60x60mm. Best for: experienced puzzle solvers who want a genuinely difficult spatial challenge and enjoy puzzles that reward methodical, patient thinking over quick intuition.\u003c\/p\u003e\u003cp\u003eGeneTIC is a Turning Interlocking Cube puzzle designed by Andrew Crowell. The goal is simple to state: fit all pieces together into a 4x4x4 cube. The execution is anything but. Ships assembled. Take it apart - that's your starting point.\u003c\/p\u003e\u003ch2\u003eWhat Makes GeneTIC Different?\u003c\/h2\u003e\u003cp\u003eAmong Andrew Crowell's TIC series, GeneTIC stands out for one reason - move count. At 26 total moves to solve, it demands more from you than almost any other puzzle in the lineup. This isn't a puzzle you crack in a sitting. It's an endurance challenge. Each move has to be earned. The sequence is long, the path is non-obvious, and the last piece alone requires 7 moves to seat correctly. If you've worked through shorter TIC puzzles and found yourself wanting more, GeneTIC is the answer to that question.\u003c\/p\u003e\u003ch2\u003eDifficulty \u0026amp; Specs\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoves to solve:\u003c\/strong\u003e 26 total (7 for last piece)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Hard\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the GeneTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eGeneTIC is a Turning Interlocking Cube puzzle - 5 interlocking pieces that must be assembled into a 4x4x4 cube using a precise sequence of rotational moves. Designed by Andrew Crowell, it requires 26 moves to solve, making it one of the most complex puzzles in the TIC series.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is the GeneTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eHard difficulty, 1-4 hour solve time. With 26 total moves required, GeneTIC is significantly more challenging than entry-level TIC puzzles and is best suited to solvers who have already completed Medium-difficulty interlocking cube puzzles.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is a Turning Interlocking Cube puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eA Turning Interlocking Cube (TIC) is a mechanical puzzle where pieces must be rotated and interlocked - not just slid - to form a cube. The turning motion is what distinguishes TICs from standard interlocking puzzles.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858600284327,"sku":"GP-GENE","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/genetic_marble.png?v=1782130738"},{"product_id":"hypnotic-puzzle","title":"HypnoTIC Puzzle | Turning Interlocking Cube","description":"\u003ch2\u003eCan you fit all the pieces into a 4x4x4 cube?\u003c\/h2\u003e\u003cp\u003eSounds simple enough. Four pieces, one cube, one goal. But HypnoTIC is not a simple puzzle.\u003c\/p\u003e\u003cp\u003eDesigned by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e - one of the sharpest minds in Turning Interlocking Cube design - HypnoTIC earns its name. The pieces twist and turn in ways that feel almost hypnotic to work through. Every move you think is right sends something else out of place. Every near-solution reveals a new problem.\u003c\/p\u003e\u003cp\u003eThe goal is straightforward: assemble all the pieces into a clean 4x4x4 cube. That's it. No tricks explained up front. No hints built into the shape. Just you, the pieces, and a solution that takes exactly 17 moves to reach - with 4 of those moves reserved for the very last piece.\u003c\/p\u003e\u003cp\u003eThat last piece is where most solvers fall apart.\u003c\/p\u003e\u003cp\u003eYou can see where it needs to go. You can almost feel the path. But getting it there - in exactly the right sequence, without disturbing everything you've already placed - is genuinely difficult. The turning mechanic that makes TIC puzzles special is also what makes HypnoTIC so stubborn. Pieces don't just slide. They rotate. And each rotation has consequences.\u003c\/p\u003e\u003cp\u003eThis is not a puzzle you brute-force. It rewards patience, spatial thinking, and a willingness to undo progress and start a sequence over from a different angle. First-time solvers often spend more time than they expect. That's not a flaw. That's the design working exactly as intended.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e Puzzle solvers who enjoy 3D assembly challenges and want something that will genuinely push their spatial reasoning - not just keep them busy for ten minutes.\u003c\/p\u003e\u003ch3\u003eQuick Summary\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Challenging\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e 4\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve time:\u003c\/strong\u003e Longer than you think\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoves to solve:\u003c\/strong\u003e 17 total - 4 moves for the last piece\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigned by:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eFrequently Asked Questions\u003c\/h3\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is HypnoTIC?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eHypnoTIC is a Turning Interlocking Cube puzzle designed by Andrew Crowell. The goal is to assemble all pieces into a 4x4x4 cube. What makes it a TIC puzzle - and what makes it hard - is that the pieces don't just slide into place. They turn. That turning mechanic is what gives the puzzle its character and its difficulty.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is it?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eIt's harder than it looks. Four pieces sounds manageable. But the turning mechanic adds a layer of complexity that catches most solvers off guard. The solution requires 17 moves in the right sequence, and the final piece demands precise setup to place correctly. Expect to invest real time before the cube comes together cleanly.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs HypnoTIC a good gift?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eYes - if you know the person well. This is a great fit for someone who already enjoys puzzles and wants a genuine challenge. It's compact, well-crafted, and has real replay value as a display piece once solved. If the person you're buying for gets frustrated easily and gives up, this one might not land. But for the right solver, it's a standout gift.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858601726119,"sku":"GP-HYPN","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/hypnotic_marble.png?v=1782206426"},{"product_id":"mystic-puzzle","title":"MysTIC Puzzle | Turning Interlocking Cube","description":"\u003ch2\u003eWhat is MysTIC?\u003c\/h2\u003e\u003cp\u003eMysTIC is a Turning Interlocking Cube puzzle - a category where pieces don't just slide or stack. They rotate into place. Designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e, one of the most respected names in mechanical puzzle design, TIC puzzles are built around a deceptively simple goal: assemble all pieces into a 4x4x4 cube. The catch? The pieces interlock through a sequence of precise rotational moves. Get the order wrong and you're stuck.\u003c\/p\u003e\u003cp\u003eAndrew's design philosophy is tight. Every move is intentional. No filler steps, no lucky guesses. MysTIC sits at 15 total moves - with 9 of those required just for the last piece. That makes it the most approachable entry point in the TIC series. Challenging enough to make you think. Satisfying enough to make you want more.\u003c\/p\u003e\u003cp\u003eIf you've never solved a TIC puzzle before, start here. The move count is low enough to stay manageable, but the mechanism still surprises you. That moment when the last piece clicks into place? Worth every wrong turn.\u003c\/p\u003e\u003ch2\u003eSpecs \u0026amp; Difficulty\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoves:\u003c\/strong\u003e 15 total (9 for last piece)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLevel:\u003c\/strong\u003e Intermediate\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eShips:\u003c\/strong\u003e Disassembled\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eReady for More?\u003c\/h2\u003e\u003cp\u003eOnce MysTIC clicks, the TIC series goes much deeper. \u003ca href=\"\/products\/dectic-puzzle\"\u003eDecTIC\u003c\/a\u003e steps up the complexity with 4 pieces and a harder move sequence. \u003ca href=\"\/products\/genetic-puzzle\"\u003eGeneTIC\u003c\/a\u003e pushes further with 5 pieces and a longer solve. Both are built on the same satisfying mechanism - just with a lot more to figure out.\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858603856039,"sku":"GP-MYST","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/mystic_marble.png?v=1782206653"},{"product_id":"skeptic-puzzle","title":"SkepTIC Puzzle | Turning Interlocking Cube","description":"\u003ch2\u003eCan you fit all the pieces into a 4x4x4 cube?\u003c\/h2\u003e\u003cp\u003eSounds simple. It isn't.\u003c\/p\u003e\u003cp\u003eSkepTIC is a Turning Interlocking Cube puzzle designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e - a designer whose specialty is exactly this: puzzles that look like they should go together, but refuse to cooperate until you find the move you never expected.\u003c\/p\u003e\u003cp\u003eYour goal is straightforward. Fit all the pieces into a 4x4x4 cube. That's it. No tricks in the rules. All the tricks are in the pieces.\u003c\/p\u003e\u003ch2\u003eHow it actually feels to solve\u003c\/h2\u003e\u003cp\u003eYou'll find a position that seems right. Pieces align, everything looks promising - then one piece blocks another, and you're back to square one. That's the SkepTIC experience. It doesn't fight you with brute resistance. It fights you with logic.\u003c\/p\u003e\u003cp\u003e21 total moves to complete the solve. 12 of those moves belong to the last piece alone. That's not a typo. The final piece requires a 12-move sequence - meaning you can have everything else perfectly placed and still be completely stuck if you haven't found the path.\u003c\/p\u003e\u003cp\u003eMost solvers will get close. Getting close is part of what makes it hard. Close feels like almost there. It's rarely almost there.\u003c\/p\u003e\u003cp\u003eThe turning mechanism is what sets TIC puzzles apart from standard interlocking puzzles. Pieces don't just slide or drop in. They rotate. That rotation is how you unlock the sequence - and it's exactly what most people miss on their first few attempts.\u003c\/p\u003e\u003cp\u003eThis is not a puzzle you brute-force. You have to think in moves, not positions.\u003c\/p\u003e\u003ch2\u003eBest for:\u003c\/h2\u003e\u003cp\u003eExperienced puzzle solvers who want a genuine challenge. If you've worked through standard interlocking puzzles and want something that actually makes you work - this is the next step. Also a strong pick for anyone who appreciates clever mechanical design, not just the solve.\u003c\/p\u003e\u003ch2\u003eQuick Summary\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eType:\u003c\/strong\u003e Turning Interlocking Cube (TIC)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Advanced\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTotal moves to solve:\u003c\/strong\u003e 21\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoves for last piece:\u003c\/strong\u003e 12\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve time:\u003c\/strong\u003e Expect multiple sessions\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFAQ\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the SkepTIC puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eSkepTIC is a Turning Interlocking Cube puzzle designed by Andrew Crowell. Your goal is to fit all pieces into a 4x4x4 cube. Unlike standard interlocking puzzles, the pieces rotate - which is how the sequence unlocks, and why it's significantly harder than it first appears.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is it?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eHard. This is not a beginner puzzle. The solve requires 21 total moves, with 12 moves just for the final piece. If you're new to mechanical puzzles, this will be frustrating in the wrong way. If you have experience and want a real challenge, it delivers.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs SkepTIC a good gift?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eYes - for the right person. If they already enjoy puzzles and want something that will genuinely test them, SkepTIC is an excellent pick. It's compact, well-made, and the kind of puzzle that stays on the desk until it's solved. Not recommended as a first puzzle for someone new to the hobby.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":46858606575783,"sku":"GP-SKEP","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/skeptic_marble.png?v=1782211596"},{"product_id":"xmas-stocking-puzzle-pack-5-n-pieces-in-box","title":"Xmas Stocking Puzzle | Pack 5 N Pieces in box","description":"\u003cp\u003e\u003cstrong\u003eQuick answer:\u003c\/strong\u003e Xmas Stocking is a 5+1-piece packing puzzle by \u003ca href=\"\/collections\/osanori-yamamoto\"\u003eOsanori Yamamoto\u003c\/a\u003e. Hard difficulty, 1-4 hour solve time. Five identical N-shaped pieces plus a small box - and the challenge is fitting them all in so the hole is completely covered. Osanori's minimalist packing style meets a subtly themed holiday form.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e experienced packing puzzle solvers who already own Osanori's easier work, gift buyers looking for a puzzle with a holiday hook that isn't gimmicky, and desk-toy shoppers who want a challenging piece with a distinctive shape.\u003c\/p\u003e\n\u003cp\u003eXmas Stocking is a minimalist packing puzzle from Osanori Yamamoto.\u003c\/p\u003e\n\u003cp\u003eUsing 5 identical N pieces and a box, you must fit all the pieces inside the box so the hole will be covered.\u003c\/p\u003e\n\u003cp\u003eThe elegance of this puzzle comes from the identical pieces and the seemingly simple box. Although it is not Osanori Yamamoto's hardest puzzle, it will require some concentrated thinking and imagination to solve. \u003c\/p\u003e\n\u003cp\u003eSize: 40mm X 55mm X 55mm\u003c\/p\u003e\n\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the Xmas Stocking puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eXmas Stocking is a Hard-difficulty packing puzzle by Osanori Yamamoto. It uses 5 identical N-shaped pieces plus a small stocking-shaped box. The goal is to fit all pieces inside so the hole is completely covered. Typical solve time is 1-4 hours.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhy is Xmas Stocking rated Hard when it only has 5 pieces?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eThe pieces are identical, which sounds like it should make the puzzle easier but actually makes it harder - every piece can potentially occupy any position, creating a huge combinatorial search space. Combined with the constraint of covering the hole, the solve requires a specific arrangement that takes time to find.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs this a good gift for the holidays?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eYes - the stocking shape gives it a subtle holiday theme without being cartoonish. It works as a Christmas gift, stocking stuffer, or Secret Santa piece for anyone who enjoys mechanical puzzles. Just don't expect the recipient to solve it during the holiday itself - a Hard puzzle with a 1-4 hour solve rewards patience.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat makes Osanori Yamamoto's packing puzzles special?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eOsanori is a master of using the same shape repeated multiple times in a single puzzle. That constraint - fewer piece types, more of each - creates a uniquely satisfying solve where no piece feels wasted. Xmas Stocking is one of many puzzles in his catalog built around this principle.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":47305350021287,"sku":"GP-XMASSTOC","price":27.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/xmas_stocking_marble.png?v=1781971689"},{"product_id":"cubiz-puzzle","title":"Cubiz Puzzle | Pack 5 Pieces in box","description":"\u003cp\u003eCubiz looks simple. Five pieces, one box - but fitting them all inside so the lid sits flush will test your spatial reasoning in ways you won't expect.\u003c\/p\u003e\u003cp\u003eIt's the kind of puzzle that makes you think you're close. Then you realize you're not.\u003c\/p\u003e\u003ch2\u003eHow It Works\u003c\/h2\u003e\u003cp\u003eCubiz is a packing puzzle. Your goal: fit all 5 pieces into the box so every gap is filled and the top hole is completely covered.\u003c\/p\u003e\u003cp\u003eNo tools. No instructions. Just you, the pieces, and a box that seems like it should be easy to fill.\u003c\/p\u003e\u003cp\u003eThe challenge is 3D orientation. Each piece needs to be placed in exactly the right position and angle. One wrong decision early on and nothing fits at the end. You'll think you've cracked it - then find one piece left over and nowhere to put it.\u003c\/p\u003e\u003cp\u003eThat's the puzzle. Start over. Think differently. Try again.\u003c\/p\u003e\u003ch2\u003eWho Is This For?\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003ePuzzle fans who enjoy spatial and packing challenges.\u003c\/strong\u003e Cubiz rewards the kind of thinking that goes beyond trial and error. You have to visualize the whole before you place the parts.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eGift-buyers looking for a desk puzzle that sparks repeat attempts.\u003c\/strong\u003e It's compact, satisfying to hold, and hard to put down once you've started.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eFrederic Boucher puzzle collectors.\u003c\/strong\u003e Cubiz is a strong example of his design style - clean, deceptively simple, brutally effective.\u003c\/p\u003e\u003ch2\u003eWhy Cubiz?\u003c\/h2\u003e\u003cp\u003eThis puzzle exists because customers asked for it. Cubiz was specifically requested for production by the gregpuzzles community. That kind of demand doesn't happen by accident. It means people who know puzzles wanted this one made.\u003c\/p\u003e\u003cp\u003eNow it is.\u003c\/p\u003e\u003ch2\u003eSpecs\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eDesigner:\u003c\/strong\u003e \u003ca href=\"\/collections\/frederic-boucher\"\u003eFrederic Boucher\u003c\/a\u003e\u003cbr\u003e\u003cstrong\u003ePieces:\u003c\/strong\u003e 5 + box\u003cbr\u003e\u003cstrong\u003eSize:\u003c\/strong\u003e 72 x 72 x 72mm\u003cbr\u003e\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed\u003cbr\u003e\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Hard\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":47889437556903,"sku":"GP-CUBI","price":30.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/cubiz_marble.png?v=1782069358"},{"product_id":"lunatic-turning-interlocking-cube","title":"LunaTIC | Turning Interlocking Cube","description":"\u003cp\u003e\u003cstrong\u003eLunaTIC\u003c\/strong\u003e is an Expert-level 3D-printed Turning Interlocking Cube designed by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e. Goal: disassemble and reassemble 5 interlocking pieces into a perfect 4x4x4 cube. Difficulty: Expert. Solve time: 4+ hours. Best for experienced puzzle solvers who want the hardest TIC challenge in the series.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e experienced mechanical puzzle solvers who have worked through Medium and Hard TIC puzzles and are ready for the series' most demanding challenge; also an exceptional gift for a puzzle collector who has seen everything.\u003c\/p\u003e\u003ch2\u003eThe Challenge\u003c\/h2\u003e\u003cp\u003eLunaTIC looks like a neat little cube. It is not.\u003c\/p\u003e\u003cp\u003eThe disassembly itself is deceptive - pieces release in a sequence that feels almost accidental, which makes reassembly a genuine memory and spatial reasoning test. Unlike Hard-tier TICs where logical elimination eventually points to the answer, LunaTIC's 5 pieces can be oriented in combinations that seem correct right up until the final piece refuses to lock. Getting it apart is one thing - putting it back together is where the real chaos begins. Most solvers report multiple multi-hour sessions before achieving a clean reassembly.\u003c\/p\u003e\u003ch2\u003eSpecs\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e 5\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Expert\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve time:\u003c\/strong\u003e 4+ hours\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGoal:\u003c\/strong\u003e Disassemble and reassemble into a 4x4x4 cube\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMechanism:\u003c\/strong\u003e Turning (rotational) interlocking\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSkill trained:\u003c\/strong\u003e Spatial reasoning\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 60x60x60mm\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eAbout the Designer\u003c\/h2\u003e\u003cp\u003eAndrew Crowell is one of the world's foremost designers of Turning Interlocking Cube puzzles. LunaTIC sits at the apex of his Greg Puzzles series - solvers who complete it have genuinely earned the title of TICtician.\u003c\/p\u003e\u003ch2\u003eWhat Makes LunaTIC Special\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTurning moves required - not just sliding\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDevelops advanced 3D spatial thinking\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDeeply satisfying when it finally clicks\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDesigned by Andrew Crowell\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFAQ\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is a Turning Interlocking Cube?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eA Turning Interlocking Cube (TIC) is a 3D-printed mechanical puzzle where interlocking pieces must be rotated - not just slid - to come apart and go back together. The turning mechanic makes reassembly exponentially harder than standard interlocking puzzles.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is LunaTIC compared to other TIC puzzles?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eLunaTIC is rated Expert - the highest difficulty tier in the TIC series. It is significantly harder than Hard-tier puzzles like GeneTIC or MysTIC, with a 4+ hour solve time for most experienced solvers.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs LunaTIC good for beginners?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\n\u003cp\u003eNo. LunaTIC is designed for solvers who have already completed multiple TIC puzzles at Medium or Hard difficulty. If you are new to TICs, start with a Medium-tier puzzle like TriTIC or TreTIC before attempting LunaTIC.\u003c\/p\u003e\n\u003cp\u003eReady to collect the full TIC series? The \u003ca href=\"\/products\/master-tictician-bundle-34-tics-buy-27-get-7-free\"\u003eTitan TICtician Bundle\u003c\/a\u003e includes LunaTIC plus 33 other TIC puzzles - buy 30, get 4 free.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":50049157988519,"sku":"GP-LUNA","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/lunatic_marble.png?v=1782123153"},{"product_id":"twistic-turning-interlocking-cube","title":"TwisTIC | Turning Interlocking Cube","description":"\u003ch2\u003eTwisTIC - \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e's Turning Interlocking Cube\u003c\/h2\u003e\u003cp\u003eTwisTIC looks like a solid cube. It is not. The pieces twist, interlock, and refuse to cooperate - until suddenly they do.\u003c\/p\u003e\u003cp\u003eWell - it's much harder than it looks. Most solvers will spend a long time getting the first few pieces to sit right. Then the twist mechanism enters the picture. And everything you thought you understood stops working.\u003c\/p\u003e\u003cp\u003eThat is, if it ever did.\u003c\/p\u003e\u003ch3\u003eQuick Summary\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eGoal:\u003c\/strong\u003e Assemble all pieces into a 4x4x4 cube\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMechanism:\u003c\/strong\u003e Turning Interlocking Cube (TIC)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Expert\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eWhat Is a Turning Interlocking Cube?\u003c\/h3\u003e\u003cp\u003eA Turning Interlocking Cube - TIC - is a type of interlocking puzzle where the pieces do not simply slide apart. To disassemble or reassemble the cube, you have to rotate pieces relative to each other. That rotation is the only way to free them. It's not a trick. It's the mechanism. Every move is load-bearing.\u003c\/p\u003e\u003cp\u003eTwisTIC is one of Andrew Crowell's flagship designs in this category. The twist is not decorative - it is the entire puzzle.\u003c\/p\u003e\u003ch3\u003eBest For\u003c\/h3\u003e\u003cp\u003ePuzzle collectors who already own a few interlocking cubes and found them too straightforward. The solver who picks up a burr puzzle, figures it out in twenty minutes, and immediately wants something that will actually stop them. TwisTIC is for that person.\u003c\/p\u003e\u003ch3\u003eAbout the Designer\u003c\/h3\u003e\u003cp\u003eAndrew Crowell is one of the most respected designers working in the Turning Interlocking Cube format. His puzzles are known for mechanisms that feel impossible until they don't - and for assembly challenges that are just as hard as the disassembly.\u003c\/p\u003e\u003ch3\u003eSpecs\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eType:\u003c\/strong\u003e Turning Interlocking Cube (TIC)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesigner:\u003c\/strong\u003e Andrew Crowell\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaterial:\u003c\/strong\u003e 3D-printed plastic\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Expert\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGoal:\u003c\/strong\u003e Assemble all pieces into a 4x4x4 cube\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eFAQ\u003c\/h3\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs TwisTIC a twisty puzzle like a Rubik's Cube?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eNo. TwisTIC is an interlocking assembly puzzle. There is no color-matching and no algorithms. You are assembling physical pieces into a cube - but the pieces only come apart if you rotate them in the right way.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is it?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eHard. This is an expert-level puzzle. The twist mechanism means that moves which should work simply don't - until you find the right sequence. Spatial reasoning alone will not get you there.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat makes this different from a standard interlocking cube?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eThe rotation requirement. Standard interlocking cubes allow linear moves only. TwisTIC requires you to twist pieces relative to each other. That single difference changes everything about how you approach the solve.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eIs this a good first puzzle?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eNot as a first puzzle. If you are new to mechanical puzzles, start with something simpler and come back to TwisTIC when you are ready for a real challenge.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":50049193607335,"sku":"GP-TWIS","price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/twistic_marble.png?v=1782125170"},{"product_id":"minima-slider","title":"MINIMA Slider | Pack 5 Pieces in Box","description":"\u003ch2\u003eMINIMA Slider - Quick Summary\u003c\/h2\u003e\u003cp\u003eThe MINIMA Slider is a hard packing puzzle designed by \u003ca href=\"\/collections\/frederic-boucher\"\u003eFrederic Boucher\u003c\/a\u003e, inspired by Yasuhiro Hashimoto's Diagonal Twins. Your goal: fit 5 pieces inside the box. There is exactly one correct solution. Hard difficulty, 1-4 hour solve time. World-debut at Greg Puzzles.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eBest for:\u003c\/strong\u003e experienced puzzle solvers who want a compact, desk-worthy challenge with a single elegant solution, and collectors of designer packing puzzles.\u003c\/p\u003e\u003ch2\u003eIPP Exchange 2026\u003c\/h2\u003e\u003cp\u003eMINIMA Slider was Greg's exchange puzzle at the 2026 International Puzzle Party in Assisi, Italy - an international gathering of a closed circle of puzzle collectors, where brand-new puzzles are introduced and exchanged.\u003c\/p\u003e\u003ch2\u003eThe Design\u003c\/h2\u003e\u003cp\u003ePuzzle designer Frederic Boucher developed the MINIMA Slider after solving Diagonal Twins, an award-winning puzzle by Yasuhiro Hashimoto. The original Diagonal Twins introduced an unusual geometric relationship between its pieces - Boucher took that idea and pushed it into new territory with the MINIMA format.\u003c\/p\u003e\u003ch2\u003eWhat Makes It Different\u003c\/h2\u003e\u003cp\u003eWhat makes the Slider mechanically distinct from a standard packing puzzle is the sliding constraint. The pieces do not simply drop or press into position. They must be sequenced and slid into place in a specific order. That single change eliminates trial-and-error as a viable strategy. You cannot brute-force your way through it. Every move requires deliberate intent, and placing one piece incorrectly makes the next step impossible.\u003c\/p\u003e\u003cp\u003eThe puzzle has a compact footprint - small enough to sit on a desk without demanding space, substantial enough to feel purposeful in your hands. You will reach points where everything seems correct and nothing moves. Then something shifts, the sequence clicks, and the last piece slides flush with the frame.\u003c\/p\u003e\u003ch2\u003ePuzzle Specs\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003ePieces:\u003c\/strong\u003e 5+1\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDifficulty:\u003c\/strong\u003e Hard\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSolve Time:\u003c\/strong\u003e 1-4 hrs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTrains:\u003c\/strong\u003e Spatial Thinking\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eShips:\u003c\/strong\u003e Disassembled\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWhat is the MINIMA Slider?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eThe MINIMA Slider is a hard packing puzzle designed by Frederic Boucher, inspired by Yasuhiro Hashimoto's Diagonal Twins. Your goal: fit 5 pieces inside the box, in the only correct configuration. Hard difficulty, 1-4 hour solve time.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eHow hard is the MINIMA Slider?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003eHard difficulty. Most solvers spend 1-4 hours on their first attempt. The sliding constraint means the solution path is narrow - you can hold all the right pieces and still be stuck.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\u003cdetails class=\"gp-faq\"\u003e\u003csummary\u003e\u003ch3\u003eWho designed the MINIMA Slider?\u003c\/h3\u003e\u003c\/summary\u003e\u003cdiv class=\"gp-faq__a\"\u003e\u003cp\u003ePuzzle designer Frederic Boucher. He developed the MINIMA concept after solving Diagonal Twins by Yasuhiro Hashimoto.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":50831823896743,"sku":"GP-MINISLID","price":34.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/minima_slider_marble.png?v=1781965342"},{"product_id":"packtic-6","title":"PackTIC 6 | Turning Interlocking Cube","description":"\u003cp\u003eFive pieces, the fewest in the series. Still fifteen moves to place them.\u003c\/p\u003e\n\u003cp\u003eGoal: pack all 5 pieces into the frame to build a complete cube.\u003c\/p\u003e\n\u003cp\u003eRequires 15 moves. Ships assembled.\u003c\/p\u003e\n\u003cp\u003eEvery PackTIC is a Turning Interlocking Cube, so the pieces have to be rotated into place rather than simply pushed. What the series adds is the frame: Andrew describes each one as needing rotations, sliding moves, and thought as to where all the pieces go inside the frame piece.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's special about PackTIC 6?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRotations and sliding moves, not just straight assembly\u003c\/li\u003e\n\u003cli\u003e5 pieces, 15 moves to solve\u003c\/li\u003e\n\u003cli\u003eBuilds serious 3D spatial reasoning\u003c\/li\u003e\n\u003cli\u003ePart of the 10-puzzle PackTIC series\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eTied for the fewest pieces in the series. Fewer pieces also means fewer clues about where each one goes.\u003c\/p\u003e\n\u003cp\u003eGoing for the whole series? The \u003ca href=\"\/products\/packtic-collection\"\u003ePackTIC Collection\u003c\/a\u003e has all 10 - buy 9, get 1 free.\u003c\/p\u003e\n\u003cp\u003eDesigned by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e.\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":51482690846887,"sku":null,"price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/packtic_6___pack_6_pieces_into_a_cube_marble.png?v=1791466069"},{"product_id":"packtic-7","title":"PackTIC 7 | Turning Interlocking Cube","description":"\u003cp\u003eFive pieces, nineteen moves, graded Hard. Small does not mean simple here.\u003c\/p\u003e\n\u003cp\u003eGoal: pack all 5 pieces into the frame to build a complete cube.\u003c\/p\u003e\n\u003cp\u003eRequires 19 moves. Ships assembled.\u003c\/p\u003e\n\u003cp\u003eEvery PackTIC is a Turning Interlocking Cube, so the pieces have to be rotated into place rather than simply pushed. What the series adds is the frame: Andrew describes each one as needing rotations, sliding moves, and thought as to where all the pieces go inside the frame piece.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's special about PackTIC 7?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRotations and sliding moves, not just straight assembly\u003c\/li\u003e\n\u003cli\u003e5 pieces, 19 moves to solve\u003c\/li\u003e\n\u003cli\u003eBuilds serious 3D spatial reasoning\u003c\/li\u003e\n\u003cli\u003ePart of the 10-puzzle PackTIC series\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFive pieces and a Hard grade - the hardest of the two smallest puzzles in the series.\u003c\/p\u003e\n\u003cp\u003eGoing for the whole series? The \u003ca href=\"\/products\/packtic-collection\"\u003ePackTIC Collection\u003c\/a\u003e has all 10 - buy 9, get 1 free.\u003c\/p\u003e\n\u003cp\u003eDesigned by \u003ca href=\"\/collections\/andrew-crowell\"\u003eAndrew Crowell\u003c\/a\u003e.\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":51482698383527,"sku":null,"price":29.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/packtic_7___turning_interlocking_cube_pa_marble.png?v=1791466200"},{"product_id":"one-way-or-another-move-the-disc-corner-to-corner","title":"One Way or Another | Move the Disc Corner to Corner","description":"\u003cdiv class=\"gpow\"\u003e\n\u003cstyle\u003e\n.gpow{--fg:rgb(var(--color-foreground,18,18,18));\n --line:rgba(var(--color-foreground,18,18,18),.14);\n --muted:rgba(var(--color-foreground,18,18,18),.64);--accent:#02A9F7;\n font-family:var(--font-body-family,inherit);margin:2.4rem 0;max-width:46rem}\n.gpow *{box-sizing:border-box}\n.gpow h3{font-family:var(--font-heading-family,inherit);font-size:1.9rem;\n line-height:1.3;margin:0 0 .5rem;color:var(--fg)}\n.gpow p{font-size:1.45rem;line-height:1.65;margin:0 0 1.1rem;color:var(--muted);max-width:60ch}\n.gpow #owPhase{font-size:1.15rem;letter-spacing:.04em;color:var(--muted);margin-bottom:.4rem}\n.gpow #owBoard{width:100%;max-width:34rem}\n.gpow #owBoard svg{display:block;width:100%;height:auto;\n \/* The player sets touch-action:none inline because a dedicated page wants\n    full control. On a product page a finger landing here must still scroll,\n    so this overrides it: horizontal drags work, vertical ones scroll past,\n    and the whole puzzle is playable by tapping either way. *\/\n touch-action:pan-y !important}\n\/* iOS: no grey flash on every tap, no text selection while dragging a piece,\n   and no callout menu when a finger rests on the board *\/\n.gpow #owBoard,.gpow #owTray,.gpow .ctl button{-webkit-tap-highlight-color:transparent;\n -webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n.gpow .row{display:flex;gap:1.2rem;align-items:flex-start;flex-wrap:wrap;margin-top:.9rem}\n.gpow #owTray{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;padding:.7rem .8rem;\n border:1px solid var(--line);border-radius:7px;min-height:3.6rem;min-width:12rem}\n.gpow #owTray .empty{font-size:1.2rem;color:var(--muted)}\n.gpow .ctl{display:flex;gap:.5rem;flex-wrap:wrap}\n.gpow .ctl button{appearance:none;border:1px solid var(--line);background:transparent;\n color:var(--muted);font-family:inherit;font-size:1.2rem;padding:.55rem 1.1rem;\n border-radius:5px;cursor:pointer}\n.gpow .ctl button:hover{border-color:var(--accent);color:var(--fg)}\n.gpow .ctl button:disabled{opacity:.38;cursor:default}\n.gpow .ctl button:disabled:hover{border-color:var(--line);color:var(--muted)}\n.gpow #owSay{font-size:1.3rem;color:var(--muted);min-height:2rem;margin-top:.7rem}\n\u003c\/style\u003e\n\u003ch3\u003eTry it before you buy it\u003c\/h3\u003e\n\u003cp\u003ePack the four pieces in so the disc keeps its corner, then move the disc to the far\ncorner. Pieces push each other, so sliding one can shove the next along. Plenty of packings\nfit the tray. Far fewer leave the disc anywhere to go, and that is the whole puzzle.\u003c\/p\u003e\n\u003cp\u003eTap a piece to pick it up, then tap a square to nudge it that way. Dragging works too,\nand so do the arrow keys.\u003c\/p\u003e\n\u003cdiv id=\"owPhase\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"owBoard\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n  \u003cdiv id=\"owTray\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"ctl\"\u003e\n    \u003cbutton type=\"button\" id=\"owRotate\"\u003eRotate\u003c\/button\u003e\n    \u003cbutton type=\"button\" id=\"owFlip\"\u003eFlip\u003c\/button\u003e\n    \u003cbutton type=\"button\" id=\"owTake\"\u003eTake out\u003c\/button\u003e\n    \u003cbutton type=\"button\" id=\"owUnpack\"\u003eEmpty the tray\u003c\/button\u003e\n    \u003cbutton type=\"button\" id=\"owReset\"\u003eStart over\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"owSay\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\nvar D={\"w\":5,\"h\":4,\"order\":[\"tromino\",\"square\",\"tee\",\"ell\"],\"shapes\":{\"tromino\":[[0,0],[0,1],[1,0]],\"square\":[[0,0],[0,1],[1,0],[1,1]],\"tee\":[[0,0],[0,1],[0,2],[1,1]],\"ell\":[[0,0],[1,0],[2,0],[2,1]]},\"start\":[0,0],\"goal\":[3,4],\"packs\":[[[[0,2],[0,3],[1,2]],[[2,1],[2,2],[3,1],[3,2]],[[0,4],[1,3],[1,4],[2,4]],[[1,0],[1,1],[2,0],[3,0]]],[[[0,2],[0,3],[1,2]],[[2,1],[2,2],[3,1],[3,2]],[[1,4],[2,3],[2,4],[3,4]],[[1,0],[1,1],[2,0],[3,0]]],[[[0,2],[0,3],[1,2]],[[2,2],[2,3],[3,2],[3,3]],[[0,4],[1,3],[1,4],[2,4]],[[1,0],[1,1],[2,0],[3,0]]],[[[0,3],[0,4],[1,3]],[[2,1],[2,2],[3,1],[3,2]],[[1,4],[2,3],[2,4],[3,4]],[[1,0],[1,1],[2,0],[3,0]]],[[[2,2],[3,1],[3,2]],[[0,1],[0,2],[1,1],[1,2]],[[1,0],[2,0],[2,1],[3,0]],[[0,4],[1,4],[2,3],[2,4]]],[[[2,2],[3,1],[3,2]],[[0,1],[0,2],[1,1],[1,2]],[[1,0],[2,0],[2,1],[3,0]],[[1,4],[2,4],[3,3],[3,4]]],[[[2,2],[3,1],[3,2]],[[0,2],[0,3],[1,2],[1,3]],[[1,0],[2,0],[2,1],[3,0]],[[0,4],[1,4],[2,3],[2,4]]],[[[2,2],[3,1],[3,2]],[[0,2],[0,3],[1,2],[1,3]],[[1,0],[2,0],[2,1],[3,0]],[[1,4],[2,4],[3,3],[3,4]]]]};\n\/* ---------- One Way or Another: pack, then slide ---------- *\/\n(function(){\nvar W=D.w, H=D.h, ORDER=D.order, SHAPES=D.shapes;\nvar START=D.start, GOAL=D.goal, S=10;\nvar slideFrom=null;         \/* where the disc stood when the last piece went in *\/\nvar $=function(i){return document.getElementById(i);};\nvar NS=\"http:\/\/www.w3.org\/2000\/svg\";\nvar phase=\"pack\", placed={}, shapeOf={}, tray={}, disc=null, msg=\"\";\nvar drag=null, svgEl=null, picked=null;\nvar COL={tromino:\"#2E93C4\",square:\"#17678F\",tee:\"#4FAAD0\",ell:\"#0F4D69\"};\nvar LIGHT={tromino:\"#58B3DD\",square:\"#2E88B2\",tee:\"#78C6E4\",ell:\"#2A6E8E\"};\n\nfunction norm(cs){\n  var r0=Math.min.apply(null,cs.map(function(c){return c[0];}));\n  var c0=Math.min.apply(null,cs.map(function(c){return c[1];}));\n  return cs.map(function(c){return [c[0]-r0,c[1]-c0];});\n}\nfunction rotate(cs){ return norm(cs.map(function(c){ return [c[1],-c[0]]; })); }\nfunction flipped(cs){ return norm(cs.map(function(c){ return [c[0],-c[1]]; })); }\nfunction occupied(skip){\n  var o={};\n  for(var k in placed){\n    if(k===skip) continue;\n    placed[k].forEach(function(c){ o[c[0]+\",\"+c[1]]=k; });\n  }\n  if(disc \u0026\u0026 skip!==\"disc\") o[disc[0]+\",\"+disc[1]]=\"disc\";\n  return o;\n}\nfunction inside(cs){\n  return cs.every(function(c){ return c[0]\u003e=0\u0026\u0026c[0]\u003cH\u0026\u0026c[1]\u003e=0\u0026\u0026c[1]\u003cW; });\n}\nfunction fits(name,cells){\n  if(!inside(cells)) return false;\n  var occ=occupied(name);\n  for(var i=0;i\u003ccells.length;i++) if(occ[cells[i][0]+\",\"+cells[i][1]]) return false;\n  return true;\n}\nfunction reset(){\n  phase=\"pack\"; placed={}; shapeOf={}; disc=START.slice(); drag=null; picked=null;\n  slideFrom=null;\n  tray={}; ORDER.forEach(function(n){ tray[n]=SHAPES[n].map(function(c){return c.slice();}); });\n  msg=\"Click a piece then click the tray, or just drag it in. The disc moves too - drag it, or click it and click where it should go.\";\n  draw();\n}\nfunction packed(){ return ORDER.every(function(n){ return !!placed[n]; }); }\nfunction atGoal(p){ return p[0]===GOAL[0] \u0026\u0026 p[1]===GOAL[1]; }\nfunction setDisc(p){\n  disc=[p[0],p[1]];\n  \/* leaving the target square gives the disc a run to make, so a player who\n     packed with it already home only has to move it off and bring it back *\/\n  if(phase===\"slide\" \u0026\u0026 !atGoal(disc)) slideFrom=disc.slice();\n}\n\/* The disc roams while you pack, so parking it on the far square and then\n   packing around it is not a solved puzzle - it still has to make the trip. *\/\nfunction won(){ return phase===\"slide\" \u0026\u0026 atGoal(disc) \u0026\u0026 !atGoal(slideFrom||START); }\n\n\/* ---------- solid outlines ---------- *\/\nfunction outline(cells){\n  \/* Draw the piece as one shape. Rendering cell by cell left seams across the\n     middle of every piece, which made them hard to read as single objects. *\/\n  var has={}; cells.forEach(function(c){ has[c[0]+\",\"+c[1]]=1; });\n  var seg=[];\n  cells.forEach(function(c){\n    var r=c[0], k=c[1];\n    if(!has[(r-1)+\",\"+k]) seg.push([[k,r],[k+1,r]]);\n    if(!has[(r+1)+\",\"+k]) seg.push([[k,r+1],[k+1,r+1]]);\n    if(!has[r+\",\"+(k-1)]) seg.push([[k,r],[k,r+1]]);\n    if(!has[r+\",\"+(k+1)]) seg.push([[k+1,r],[k+1,r+1]]);\n  });\n  return seg;\n}\nfunction loops(cells){\n  \/* Chain the boundary segments into closed rings. A single path per piece is\n     what lets the corners round and the shadow sit under the whole shape,\n     instead of each cell being its own little square. *\/\n  var segs=outline(cells).map(function(e){ return [e[0].slice(),e[1].slice()]; });\n  var out=[];\n  while(segs.length){\n    var ring=[segs[0][0],segs[0][1]]; segs.splice(0,1);\n    var guard=0;\n    while(guard++\u003c400){\n      var head=ring[ring.length-1], found=-1;\n      for(var i=0;i\u003csegs.length;i++){\n        if(segs[i][0][0]===head[0]\u0026\u0026segs[i][0][1]===head[1]){ ring.push(segs[i][1]); found=i; break; }\n        if(segs[i][1][0]===head[0]\u0026\u0026segs[i][1][1]===head[1]){ ring.push(segs[i][0]); found=i; break; }\n      }\n      if(found\u003c0) break;\n      segs.splice(found,1);\n      var a=ring[0], b=ring[ring.length-1];\n      if(a[0]===b[0]\u0026\u0026a[1]===b[1]){ ring.pop(); break; }\n    }\n    if(ring.length\u003e2) out.push(ring);\n  }\n  return out;\n}\nfunction roundedPath(ring,r){\n  \/* walk the ring, cutting each corner with a quadratic *\/\n  var d=\"\", n=ring.length;\n  for(var i=0;i\u003cn;i++){\n    var p0=ring[(i-1+n)%n], p1=ring[i], p2=ring[(i+1)%n];\n    var v1=[p1[0]-p0[0],p1[1]-p0[1]], v2=[p2[0]-p1[0],p2[1]-p1[1]];\n    var l1=Math.hypot(v1[0],v1[1])||1, l2=Math.hypot(v2[0],v2[1])||1;\n    var rr=Math.min(r,l1\/2,l2\/2);\n    var a=[p1[0]-v1[0]\/l1*rr, p1[1]-v1[1]\/l1*rr];\n    var b=[p1[0]+v2[0]\/l2*rr, p1[1]+v2[1]\/l2*rr];\n    d += (i===0 ? \"M\"+a[0].toFixed(2)+\" \"+a[1].toFixed(2)\n                : \"L\"+a[0].toFixed(2)+\" \"+a[1].toFixed(2));\n    d += \"Q\"+p1[0].toFixed(2)+\" \"+p1[1].toFixed(2)+\" \"+b[0].toFixed(2)+\" \"+b[1].toFixed(2);\n  }\n  return d+\"Z\";\n}\nfunction svg(t,a){ var e=document.createElementNS(NS,t);\n  for(var k in a) e.setAttribute(k,a[k]); return e; }\nfunction pieceNode(name,cells,opts){\n  var g=svg(\"g\",{style:\"cursor:grab;touch-action:none\"});\n  g.setAttribute(\"data-p\",name);\n  var rings=loops(cells).map(function(ring){\n    return roundedPath(ring.map(function(p){ return [p[0]*S,p[1]*S]; }), S*0.17);\n  });\n  var d=rings.join(\" \");\n  if(!opts.ghost){\n    g.appendChild(svg(\"path\",{d:d,fill:\"rgba(18,32,40,.22)\",transform:\"translate(0.5,0.9)\",\n      filter:\"url(#owSoft)\"}));\n  }\n  g.appendChild(svg(\"path\",{d:d,fill:\"url(#ow_\"+name+\")\",\n    \"fill-opacity\":opts.ghost?\".45\":\"1\",\n    stroke:opts.bad?\"#C2544C\":(opts.sel?\"#0B7FA8\":\"rgba(10,26,34,.42)\"),\n    \"stroke-width\":opts.sel?\"1.1\":\".45\",\"stroke-linejoin\":\"round\"}));\n  if(!opts.ghost){\n    g.appendChild(svg(\"path\",{d:d,fill:\"none\",stroke:\"rgba(255,255,255,.34)\",\n      \"stroke-width\":\".5\",\"stroke-linejoin\":\"round\",transform:\"translate(0,0.45)\",\n      \"clip-path\":\"url(#owClip_\"+name+\")\"}));\n  }\n  return g;\n}\n\/* ---------- drawing ---------- *\/\nfunction syncButtons(){\n  var t=$(\"owTake\");\n  if(t) t.disabled = !(phase===\"slide\" \u0026\u0026 picked \u0026\u0026 placed[picked]);\n}\nfunction draw(){\n  var s=svg(\"svg\",{viewBox:(-PAD)+\" \"+(-PAD)+\" \"+(W*S+PAD*2)+\" \"+(H*S+PAD*2),\n    width:\"100%\",height:\"100%\",style:\"touch-action:none\"});\n  var defs=svg(\"defs\",{});\n  var grads=\"\";\n  for(var nm in COL){\n    grads+='\u003clinearGradient id=\"ow_'+nm+'\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"\u003e'\n      +'\u003cstop offset=\"0\" stop-color=\"'+LIGHT[nm]+'\"\/\u003e'\n      +'\u003cstop offset=\"1\" stop-color=\"'+COL[nm]+'\"\/\u003e\u003c\/linearGradient\u003e';\n  }\n  defs.innerHTML=grads\n    +'\u003cfilter id=\"owSoft\" x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\"\u003e'\n    +'\u003cfeGaussianBlur stdDeviation=\"0.5\"\/\u003e\u003c\/filter\u003e'\n    +'\u003cfilter id=\"owGrain\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"\u003e'\n    +'\u003cfeTurbulence type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"3\" seed=\"4\"\/\u003e'\n    +'\u003cfeColorMatrix type=\"saturate\" values=\"0\"\/\u003e'\n    +'\u003cfeComponentTransfer\u003e\u003cfeFuncA type=\"discrete\" tableValues=\"0 0 0 0 .5\"\/\u003e'\n    +'\u003c\/feComponentTransfer\u003e\u003c\/filter\u003e'\n    +'\u003cradialGradient id=\"owDisc\" cx=\"0.35\" cy=\"0.3\" r=\"0.8\"\u003e'\n    +'\u003cstop offset=\"0\" stop-color=\"#3E63D8\"\/\u003e\u003cstop offset=\"1\" stop-color=\"#15308C\"\/\u003e'\n    +'\u003c\/radialGradient\u003e';\n  s.appendChild(defs);\n  \/* the tray: a speckled rim with a recessed floor, like the printed one *\/\n  s.appendChild(svg(\"rect\",{x:-PAD,y:-PAD,width:W*S+PAD*2,height:H*S+PAD*2,rx:\"3\",fill:\"#EDEAE3\"}));\n  s.appendChild(svg(\"rect\",{x:-PAD,y:-PAD,width:W*S+PAD*2,height:H*S+PAD*2,rx:\"3\",\n    fill:\"#8A8275\",\"fill-opacity\":\".5\",filter:\"url(#owGrain)\"}));\n  s.appendChild(svg(\"rect\",{x:-0.6,y:-0.6,width:W*S+1.2,height:H*S+1.2,rx:\"1.6\",\n    fill:\"#F6F4EF\",stroke:\"rgba(80,74,64,.30)\",\"stroke-width\":\".5\"}));\n  s.appendChild(svg(\"rect\",{x:-0.6,y:-0.6,width:W*S+1.2,height:H*S+1.2,rx:\"1.6\",\n    fill:\"#8A8275\",\"fill-opacity\":\".28\",filter:\"url(#owGrain)\"}));\n  s.appendChild(svg(\"rect\",{x:GOAL[1]*S+1.4,y:GOAL[0]*S+1.4,width:S-2.8,height:S-2.8,rx:\"1.4\",\n    fill:\"none\",stroke:\"#0B7FA8\",\"stroke-opacity\":\".75\",\"stroke-width\":\".65\",\n    \"stroke-dasharray\":\"1.8 1.4\"}));\n  ORDER.forEach(function(n){\n    if(!placed[n]) return;\n    if(drag\u0026\u0026drag.name===n\u0026\u0026drag.live) return;      \/* drawn as the ghost instead *\/\n    s.appendChild(pieceNode(n,placed[n],{sel:picked===n}));\n  });\n  if(disc \u0026\u0026 !(drag\u0026\u0026drag.name===\"disc\"\u0026\u0026drag.live)){\n    s.appendChild(svg(\"circle\",{cx:disc[1]*S+S\/2+0.5,cy:disc[0]*S+S\/2+0.9,r:S*0.36,\n      fill:\"rgba(18,32,40,.26)\",filter:\"url(#owSoft)\",\"pointer-events\":\"none\"}));\n    var d=svg(\"circle\",{cx:disc[1]*S+S\/2,cy:disc[0]*S+S\/2,r:S*0.36,\n      fill:\"url(#owDisc)\",stroke:picked===\"disc\"?\"#0B7FA8\":\"rgba(8,20,60,.5)\",\n      \"stroke-width\":picked===\"disc\"?\".9\":\".4\",style:\"cursor:pointer\"});\n    d.setAttribute(\"data-p\",\"disc\");\n    d.setAttribute(\"style\",\"touch-action:none\");\n    s.appendChild(d);\n    \/* the sheen is decoration: it must not swallow the click meant for the disc *\/\n    s.appendChild(svg(\"ellipse\",{cx:disc[1]*S+S\/2-S*0.1,cy:disc[0]*S+S\/2-S*0.13,\n      rx:S*0.15,ry:S*0.09,fill:\"rgba(255,255,255,.28)\",\"pointer-events\":\"none\"}));\n  }\n  if(drag\u0026\u0026drag.live){\n    if(drag.name===\"disc\"){\n      var dc=(drag.cells\u0026\u0026drag.cells[0])||disc;\n      s.appendChild(svg(\"circle\",{cx:dc[1]*S+S\/2,cy:dc[0]*S+S\/2,r:S*0.36,\n        fill:\"#1B3FAE\",\"fill-opacity\":\".78\",stroke:\"#0B7FA8\",\"stroke-width\":\".7\"}));\n    } else {\n      s.appendChild(pieceNode(drag.name,drag.cells,{ghost:true,bad:!drag.ok,sel:true}));\n    }\n  }\n  svgEl=s;\n  $(\"owBoard\").innerHTML=\"\"; $(\"owBoard\").appendChild(s);\n  wire(s);\n  syncButtons();\n  drawTray();\n  $(\"owSay\").textContent = won()? \"The disc is across. That is the whole puzzle.\" : msg;\n  $(\"owPhase\").textContent = phase===\"pack\" ? \"Step one: pack the tray\"\n                                            : \"Step two: move the disc\";\n}\nfunction drawTray(){\n  var box=$(\"owTray\"); box.innerHTML=\"\";\n  ORDER.forEach(function(n){\n    if(!tray[n]) return;\n    var cs=tray[n];\n    var hh=Math.max.apply(null,cs.map(function(c){return c[0];}))+1;\n    var ww=Math.max.apply(null,cs.map(function(c){return c[1];}))+1;\n    var s=svg(\"svg\",{viewBox:\"-.6 -.6 \"+(ww*S+1.2)+\" \"+(hh*S+1.2),\n      width:(ww*19)+\"px\",height:(hh*19)+\"px\",style:\"cursor:grab;touch-action:none\"});\n    s.appendChild(pieceNode(n,cs,{sel:picked===n}));\n    if(picked===n) s.style.outline=\"2px solid #0B7FA8\";\n    s.style.outlineOffset=\"2px\"; s.style.borderRadius=\"4px\";\n    s.addEventListener(\"pointerdown\",function(e){ startDrag(n,cs,e,true); });\n    box.appendChild(s);\n  });\n  if(!Object.keys(tray).length) box.innerHTML='\u003cspan class=\"empty\"\u003eAll packed\u003c\/span\u003e';\n}\n\/* ---------- dragging ---------- *\/\nvar PAD=3;                                   \/* the tray rim, in view units *\/\nfunction cellAt(ev){\n  \/* Derived from the viewBox rather than hardcoded. Adding the rim changed the\n     viewBox from -1 to -3 and this kept using the old numbers, so every\n     pointer position mapped to the wrong square. *\/\n  var b=svgEl.getBoundingClientRect();\n  var vw=W*S+PAD*2, vh=H*S+PAD*2;\n  var vx=-PAD+((ev.clientX-b.left)\/b.width)*vw;\n  var vy=-PAD+((ev.clientY-b.top)\/b.height)*vh;\n  return [Math.floor(vy\/S), Math.floor(vx\/S)];\n}\nfunction originOf(cells){\n  return [Math.min.apply(null,cells.map(function(c){return c[0];})),\n          Math.min.apply(null,cells.map(function(c){return c[1];}))];\n}\nfunction startDrag(name,cells,ev,fromRack){\n  ev.preventDefault();\n  var base=norm(cells.map(function(c){return c.slice();}));\n  var anchor=fromRack?[0,0]:null;\n  drag={name:name,base:base,fromRack:fromRack,live:false,cells:cells,ok:true,anchor:anchor};\n  if(!fromRack \u0026\u0026 name!==\"disc\" \u0026\u0026 placed[name]){\n    \/* which square of the piece the pointer came down on, so the piece follows\n       the hand instead of assuming it was grabbed by its first cell *\/\n    var gc=cellAt(ev), og=originOf(placed[name]);\n    drag.grab=[gc[0]-og[0], gc[1]-og[1]];\n  }\n  if(!fromRack\u0026\u0026name!==\"disc\"){\n    drag.start=cells.map(function(c){return c.slice();});\n  }\n  window.addEventListener(\"pointermove\",onMove);\n  window.addEventListener(\"pointerup\",onUp);\n  window.addEventListener(\"pointercancel\",onCancel);\n}\nfunction onCancel(){\n  window.removeEventListener(\"pointermove\",onMove);\n  window.removeEventListener(\"pointerup\",onUp);\n  window.removeEventListener(\"pointercancel\",onCancel);\n  if(!drag) return;\n  var d=drag; drag=null;\n  if(d.restore){                     \/* it was lifted off the board - put it back *\/\n    placed[d.name]=d.restore.cells; shapeOf[d.name]=d.restore.shape; delete tray[d.name];\n  }\n  picked=null; draw();\n}\nfunction onMove(ev){\n  if(!drag||!svgEl) return;\n  var rc=cellAt(ev);\n  drag.live=true;\n  if(drag.name===\"disc\"){\n    \/* the disc never jumps: it only follows as far as empty squares reach *\/\n    var occ=occupied(\"disc\");\n    if(rc[0]\u003e=0\u0026\u0026rc[0]\u003cH\u0026\u0026rc[1]\u003e=0\u0026\u0026rc[1]\u003cW\u0026\u0026!occ[rc[0]+\",\"+rc[1]]\n       \u0026\u0026reachable(disc,rc,occ)) drag.cells=[rc];\n    else if(!drag.cells) drag.cells=[disc.slice()];\n    drag.ok=true; draw(); return;\n  }\n  if(phase===\"pack\"||drag.fromRack){\n    var cells=drag.base.map(function(c){ return [c[0]+rc[0],c[1]+rc[1]]; });\n    drag.cells=cells; drag.ok=fits(drag.name,cells);\n  } else {\n    \/* sliding: step toward the pointer, pushing anything in the way *\/\n    var guard=0, grab=drag.grab||[0,0];\n    while(guard++\u003c12){\n      var cur=originOf(placed[drag.name]);\n      var want=[rc[0]-grab[0], rc[1]-grab[1]];\n      var dr=Math.sign(want[0]-cur[0]), dc=Math.sign(want[1]-cur[1]);\n      if(!dr\u0026\u0026!dc) break;\n      \/* try the bigger pull first, then the other axis, so a mostly sideways\n         drag is not abandoned just because the vertical step is blocked *\/\n      var tries=(Math.abs(want[0]-cur[0])\u003e=Math.abs(want[1]-cur[1]))\n        ? [[dr,0],[0,dc]] : [[0,dc],[dr,0]];\n      var mv=null, step=null;\n      for(var ti=0;ti\u003ctries.length;ti++){\n        var t=tries[ti];\n        if(!t[0]\u0026\u0026!t[1]) continue;\n        mv=chainMove(drag.name,t[0],t[1]);\n        if(mv){ step=t; break; }\n      }\n      if(!mv) break;\n      applyChain(mv,step[0],step[1]);\n      if(Object.keys(mv).length\u003e1) msg=\"Pushed \"+(Object.keys(mv).length-1)\n        +\" piece\"+(Object.keys(mv).length\u003e2?\"s\":\"\")+\" along.\";\n    }\n    drag.cells=placed[drag.name].map(function(c){return c.slice();});\n    drag.ok=true;\n  }\n  draw();\n}\nfunction onUp(){\n  window.removeEventListener(\"pointermove\",onMove);\n  window.removeEventListener(\"pointerup\",onUp);\n  window.removeEventListener(\"pointercancel\",onCancel);\n  if(!drag){ return; }\n  var d=drag; drag=null;\n  if(!d.live){\n    \/* a tap, not a drag *\/\n    if(d.name===\"disc\"){\n      picked=(picked===\"disc\")?null:\"disc\";\n      msg=(picked===\"disc\")?\"Disc picked up. Click an empty square to send it there.\":\"\";\n      draw(); return;\n    }\n    if(d.fromRack){ picked=d.name; }           \/* hold it until the tray is tapped *\/\n    else if(phase===\"slide\"){\n      if(picked===d.name){ picked=null; msg=\"\"; }\n      else {\n        picked=d.name;\n        msg=\"Tap a square to nudge it that way, or drag it. \"\n           +\"Take out puts it back in the tray.\";\n      }\n    }\n    draw(); return;\n  }\n  if(d.live){\n    picked=null;\n    if(d.name===\"disc\"){\n      var t=d.cells\u0026\u0026d.cells[0];\n      var occ3=occupied(\"disc\");\n      if(t\u0026\u0026!occ3[t[0]+\",\"+t[1]]\u0026\u0026reachable(disc,t,occ3)){ setDisc(t); msg=\"\"; }\n      draw(); return;\n    }\n    if(phase===\"pack\"||d.fromRack){\n      if(d.ok){ placed[d.name]=d.cells; shapeOf[d.name]=d.base; delete tray[d.name];\n        msg = packed()? \"\" : \"\";\n        if(packed()){ phase=\"slide\"; slideFrom=disc.slice();\n          msg = atGoal(disc)\n            ? \"Packed, but the disc is already sitting on its target. Start it \"\n              +\"somewhere else so it has a run to make.\"\n            : \"Packed. Drag the disc, or click it and click where it should go. \"\n              +\"Arrow keys work too. Click a piece to take it back out.\"; }\n      } else { msg=\"That will not fit there.\"; }\n    }\n  }\n  draw();\n}\nfunction discStep(dr,dc){\n  var n=[disc[0]+dr,disc[1]+dc];\n  if(n[0]\u003c0||n[0]\u003e=H||n[1]\u003c0||n[1]\u003e=W) return false;\n  var occ=occupied(\"disc\");\n  if(occ[n[0]+\",\"+n[1]]){ msg=\"The disc is blocked. Drag a piece out of its way.\"; return false; }\n  setDisc(n); msg=\"\"; return true;\n}\nfunction occupantAt(cell,movers){\n  var k=cell[0]+\",\"+cell[1];\n  for(var n in placed){\n    if(movers[n]) continue;\n    for(var i=0;i\u003cplaced[n].length;i++)\n      if(placed[n][i][0]===cell[0]\u0026\u0026placed[n][i][1]===cell[1]) return n;\n  }\n  if(!movers.disc \u0026\u0026 disc \u0026\u0026 disc[0]===cell[0] \u0026\u0026 disc[1]===cell[1]) return \"disc\";\n  return null;\n}\nfunction stepToward(name,rc){\n  var cs=placed[name];\n  var rs=cs.map(function(c){return c[0];}), cl=cs.map(function(c){return c[1];});\n  var top=Math.min.apply(null,rs), bot=Math.max.apply(null,rs);\n  var lef=Math.min.apply(null,cl), rig=Math.max.apply(null,cl);\n  var dr=rc[0]\u003ctop?-1:(rc[0]\u003ebot?1:0);\n  var dc=rc[1]\u003clef?-1:(rc[1]\u003erig?1:0);\n  if(!dr\u0026\u0026!dc) return false;\n  \/* the bigger offset first, then the other axis, so a tap that is mostly\n     sideways still moves the piece when the vertical step is blocked *\/\n  var dRow=Math.min(Math.abs(rc[0]-top),Math.abs(rc[0]-bot));\n  var dCol=Math.min(Math.abs(rc[1]-lef),Math.abs(rc[1]-rig));\n  var tries=(dRow\u003e=dCol)?[[dr,0],[0,dc]]:[[0,dc],[dr,0]];\n  for(var i=0;i\u003ctries.length;i++){\n    var t=tries[i];\n    if(!t[0]\u0026\u0026!t[1]) continue;\n    var mv=chainMove(name,t[0],t[1]);\n    if(mv){\n      applyChain(mv,t[0],t[1]);\n      msg = Object.keys(mv).length\u003e1\n        ? \"Pushed \"+(Object.keys(mv).length-1)+\" along.\"\n        : \"\";\n      return true;\n    }\n  }\n  msg=\"That piece has nowhere to go that way.\";\n  return false;\n}\nfunction chainMove(name,dr,dc){\n  \/* Slide one piece into another and the second one goes too, as long as it\n     has somewhere to go. The push carries on down the line, and the disc gets\n     shoved along with everything else, the way a loose disc in a tray would. *\/\n  var movers={}; movers[name]=1;\n  var queue=[name], guard=0;\n  while(queue.length \u0026\u0026 guard++\u003c30){\n    var n=queue.shift();\n    var cells=(n===\"disc\")?[disc]:placed[n];\n    for(var i=0;i\u003ccells.length;i++){\n      var t=[cells[i][0]+dr, cells[i][1]+dc];\n      if(t[0]\u003c0||t[0]\u003e=H||t[1]\u003c0||t[1]\u003e=W) return null;   \/* the tray wall stops it *\/\n      var occ=occupantAt(t,movers);\n      if(occ){ movers[occ]=1; queue.push(occ); }\n    }\n  }\n  if(queue.length) return null;\n  return movers;\n}\nfunction applyChain(movers,dr,dc){\n  for(var n in movers){\n    if(n===\"disc\"){ setDisc([disc[0]+dr, disc[1]+dc]); continue; }\n    placed[n]=placed[n].map(function(c){ return [c[0]+dr,c[1]+dc]; });\n  }\n}\nfunction reachable(from,to,occ){\n  \/* the disc travels through empty squares, it never jumps over a piece *\/\n  var seen={}, q=[from]; seen[from[0]+\",\"+from[1]]=1;\n  while(q.length){\n    var c=q.shift();\n    if(c[0]===to[0]\u0026\u0026c[1]===to[1]) return true;\n    var ds=[[1,0],[-1,0],[0,1],[0,-1]];\n    for(var i=0;i\u003cds.length;i++){\n      var n=[c[0]+ds[i][0],c[1]+ds[i][1]], k=n[0]+\",\"+n[1];\n      if(n[0]\u003c0||n[0]\u003e=H||n[1]\u003c0||n[1]\u003e=W||seen[k]||occ[k]) continue;\n      seen[k]=1; q.push(n);\n    }\n  }\n  return false;\n}\nfunction wire(s){\n  \/* Swiping the board walks the disc, so once everything is packed you can\n     play with flicks or the arrow keys and never have to grab the disc itself. *\/\n  s.addEventListener(\"click\",function(ev){\n    \/* Picking the disc up happens in onUp - see the tap branch there. The disc is\n       loose in the tray from the start, so it answers to clicks while you are\n       still packing, not only once the last piece is in. *\/\n    if(picked===\"disc\"){\n      var rc2=cellAt(ev);\n      var occ2=occupied(\"disc\");\n      if(rc2[0]\u003c0||rc2[0]\u003e=H||rc2[1]\u003c0||rc2[1]\u003e=W) return;\n      if(rc2[0]===disc[0]\u0026\u0026rc2[1]===disc[1]) return;   \/* the tap that picked it up *\/\n      if(occ2[rc2[0]+\",\"+rc2[1]]){ msg=\"Something is already there.\"; draw(); return; }\n      if(reachable(disc,rc2,occ2)){ setDisc(rc2); picked=null; msg=\"\"; }\n      else msg=\"No clear run of empty squares that way.\";\n      draw(); return;\n    }\n    if(phase===\"slide\"){\n      if(picked\u0026\u0026placed[picked]){\n        var rcp=cellAt(ev);\n        if(rcp[0]\u003c0||rcp[0]\u003e=H||rcp[1]\u003c0||rcp[1]\u003e=W) return;\n        stepToward(picked,rcp); draw();\n      }\n      return;\n    }\n    if(!picked||!tray[picked]) return;\n    var rc=cellAt(ev);\n    var base=norm(tray[picked].map(function(c){return c.slice();}));\n    var cells=base.map(function(c){ return [c[0]+rc[0],c[1]+rc[1]]; });\n    if(fits(picked,cells)){\n      placed[picked]=cells; shapeOf[picked]=base; delete tray[picked];\n      picked=null;\n      if(packed()){ phase=\"slide\"; slideFrom=disc.slice();\n        msg = atGoal(disc)\n          ? \"Packed, but the disc is already sitting on its target. Start it \"\n            +\"somewhere else so it has a run to make.\"\n          : \"Packed. Arrow keys or a swipe move the disc. Drag a piece to shift it.\"; }\n      else msg=\"\";\n    } else msg=\"That will not fit there.\";\n    draw();\n  });\n  var sw=null;\n  s.addEventListener(\"pointerdown\",function(ev){\n    \/* a swipe may start on the disc too - only a piece takes priority *\/\n    var hit=ev.target.closest\u0026\u0026ev.target.closest(\"[data-p]\");\n    if(hit\u0026\u0026hit.getAttribute(\"data-p\")!==\"disc\") return;\n    sw={x:ev.clientX,y:ev.clientY};\n  });\n  s.addEventListener(\"pointerup\",function(ev){\n    if(!sw) return;\n    var dx=ev.clientX-sw.x, dy=ev.clientY-sw.y; sw=null;\n    if(Math.abs(dx)\u003c12\u0026\u0026Math.abs(dy)\u003c12) return;\n    var step=Math.abs(dx)\u003eMath.abs(dy) ? [0,dx\u003e0?1:-1] : [dy\u003e0?1:-1,0];\n    var n=Math.max(1,Math.round(Math.max(Math.abs(dx),Math.abs(dy))\n          \/(s.getBoundingClientRect().width\/W)));\n    for(var k=0;k\u003cn;k++) if(!discStep(step[0],step[1])) break;\n    draw();\n  });\n  Array.prototype.forEach.call(s.querySelectorAll(\"[data-p]\"),function(e){\n    e.addEventListener(\"pointerdown\",function(ev){\n      var n=e.getAttribute(\"data-p\");\n      if(n===\"disc\"){\n        \/* a piece in hand wants to be placed, so let the click fall through\n           to the tray and report that the disc's square is taken *\/\n        if(picked\u0026\u0026picked!==\"disc\"\u0026\u0026tray[picked]) return;\n        startDrag(\"disc\",[disc.slice()],ev,false); return;\n      }\n      if(phase===\"pack\"){\n        var wasAt=placed[n], wasShape=shapeOf[n];\n        tray[n]=shapeOf[n]; delete placed[n]; delete shapeOf[n];\n        startDrag(n,tray[n],ev,true);\n        if(drag) drag.restore={cells:wasAt,shape:wasShape};\n      } else startDrag(n,placed[n],ev,false);\n    });\n  });\n}\ndocument.addEventListener(\"keydown\",function(e){\n  var d={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[e.key];\n  if(!d) return;\n  e.preventDefault();\n  if(phase===\"slide\"\u0026\u0026picked\u0026\u0026placed[picked]){\n    var mv=chainMove(picked,d[0],d[1]);\n    if(mv){ applyChain(mv,d[0],d[1]); msg=\"\"; }\n    else msg=\"That piece has nowhere to go that way.\";\n  } else discStep(d[0],d[1]);\n  draw();\n});\n$(\"owRotate\").addEventListener(\"click\",function(){\n  var n=(picked\u0026\u0026tray[picked])?picked:Object.keys(tray)[0];\n  if(n){ tray[n]=rotate(tray[n]); draw(); }\n});\n$(\"owFlip\").addEventListener(\"click\",function(){\n  var n=(picked\u0026\u0026tray[picked])?picked:Object.keys(tray)[0];\n  if(n){ tray[n]=flipped(tray[n]); draw(); }\n});\nfunction backToPack(){\n  \/* The disc stays exactly where it is. Taking a piece out is a way to free it\n     up, so sending it home would undo the run you were in the middle of. *\/\n  phase=\"pack\";\n  slideFrom=null;\n}\nvar takeBtn=$(\"owTake\");\nif(takeBtn) takeBtn.addEventListener(\"click\",function(){\n  if(phase!==\"slide\"||!picked||!placed[picked]) return;\n  tray[picked]=shapeOf[picked];\n  delete placed[picked]; delete shapeOf[picked];\n  backToPack();\n  msg=\"Took that piece out. Place it again when you are ready.\";\n  draw();\n});\nvar emptyBtn=$(\"owUnpack\");\nif(emptyBtn) emptyBtn.addEventListener(\"click\",function(){\n  ORDER.forEach(function(n){\n    if(!placed[n]) return;\n    tray[n]=shapeOf[n];\n    delete placed[n]; delete shapeOf[n];\n  });\n  backToPack(); picked=null;\n  msg=\"Tray emptied. Pack it again however you like.\";\n  draw();\n});\n$(\"owReset\").addEventListener(\"click\",reset);\nreset();\n})();\n\n})();\n\u003c\/script\u003e\n\n\n\n\n\n\n\u003cp\u003ePut the disc in one corner. Pack the pieces in around it. Now slide them until the disc comes out in the opposite corner.\u003c\/p\u003e\n\u003cp\u003eGoal: fit every piece into the tray so one corner stays free for the disc, then move the disc to the diagonally opposite corner using sliding moves alone.\u003c\/p\u003e\n\u003cp\u003eAlexander Magyarics took a tray packing puzzle and gave it somewhere to go. Finding an arrangement that fits is the easy half. Finding the one that also leaves the disc a path across the tray is the part worth owning. It earned a Jury Honorable Mention at the 2026 Nob Yoshigahara Puzzle Design Competition in Assisi.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's special about One Way or Another?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eUnique puzzle in one tray: pack it, then slide to create a path\u003c\/li\u003e\n\u003cli\u003eJury Honorable Mention, 2026 Nob Yoshigahara Puzzle Design Competition\u003c\/li\u003e\n\u003cli\u003eFlat and light enough to take with you\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eBest for: packing puzzle fans who have run out of tray puzzles that still surprise them, and gift buyers after a small desk puzzle with a real idea behind it.\u003c\/p\u003e\n\u003cp\u003eDesigned by \u003ca href=\"\/collections\/alexander-magyarics\"\u003eAlexander Magyarics\u003c\/a\u003e\u003c\/p\u003e","brand":"Greg Puzzles","offers":[{"title":"Default Title","offer_id":51517396910247,"sku":"GP-ONEWAY","price":16.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0668\/2827\/1783\/files\/one_way_or_another___move_the_disc_corne_marble.png?v=1792040466"}],"url":"https:\/\/gregpuzzles.com\/collections\/5-piece-puzzles.oembed","provider":"Greg Puzzles","version":"1.0","type":"link"}