The December 2022 issue of IEEE Spectrum is here!

Close bar

3-D Print and Rubik's Cube-ify Almost Anything

As if a traditional Rubik's Cube wasn't hard enough, a new algorithm can turn any shape into a twisting puzzle and then create it on a 3D printer

2 min read
3-D Print and Rubik's Cube-ify Almost Anything
Image: Columbia University

A Rubik’s Cube is a 3-D puzzle designed to be enjoyed for 15 minutes, loathed 30 more minutes, and then placed in a drawer and forgotten. This is because the utility of a solved Rubik’s Cube is less than the utility of an unsolved Rubik’s Cube, so there is simply no motivation to solve it. 

But imagine if you could turn any object whatsoever into a puzzle that needs to be solved before you can use it. That would be fun, right? Sure it would, if by “fun” you mean “the worst.” So let’s do it!

Two computer science students from Columbia University have developed a method that allows people who have no idea what they're doing to create twisting 3D puzzles from arbitrary 3D models. Once you have the model in a computer, you can select your own rotation planes, and an algorithm will munch through everything, adjusting your model to prevent collisions and then 3D printing all the bits and pieces so that they interlock and rotate properly:

At the moment, this method works best with 3D models that have a large spherical component to their design, although the researchers are working on generalizing their technique. They’re also experimenting with ways of allowing some pieces to block the rotation of other pieces, which would allow for more rotational axes while also potentially enhancing the difficulty of the puzzle. From the sound of things, the biggest source of frustration has been the 3D printing itself, which makes assembly tricky and leaves the puzzles a bit fragile. So other potential improvements would be automatic generation of assembly instructions along with optimization of joint design for robustness.

Computational Design of Twisty Joints and Puzzles, by Timothy Sun and Changxi Zheng from Columbia University, will be presented at SIGGRAPH 2015 in Los Angeles, but you can read the full-length paper ahead of time here.

The Conversation (0)

Why Functional Programming Should Be the Future of Software Development

It’s hard to learn, but your code will produce fewer nasty surprises

11 min read
A plate of spaghetti made from code
Shira Inbar

You’d expectthe longest and most costly phase in the lifecycle of a software product to be the initial development of the system, when all those great features are first imagined and then created. In fact, the hardest part comes later, during the maintenance phase. That’s when programmers pay the price for the shortcuts they took during development.

So why did they take shortcuts? Maybe they didn’t realize that they were cutting any corners. Only when their code was deployed and exercised by a lot of users did its hidden flaws come to light. And maybe the developers were rushed. Time-to-market pressures would almost guarantee that their software will contain more bugs than it would otherwise.

Keep Reading ↓Show less