3D Printing LEGO-like Blocks

LEGO are perhaps the perfect children’s toy, at least until you step on the errant brick while walking around the house. Available in all kinds of sets with varying themes and characters, they encourage building and creativity in kids like no other. Those with 3D printers might have considered creating their own specialty blocks, but the manufacturing of real LEGO blocks involves steel molds with extremely tight tolerances far outside the realm of most 3D printers. To print blocks capable of interconnecting in a similar way involves taking advantage of the characteristics of 3D printers and their materials instead, as [CNC Kitchen] demonstrates with these PrintABloks.

The PrintABlok was the idea of [Joe Larson] aka [3D Printing Professor] and is built around a one-unit base block, which has holes on all of its sides, paired with small connecting pieces which are placed in the holes to connect the various blocks to one another. Using your CAD software of choice (although they were originally built using Blender), the base block can be lengthened or widened for printing various different types of blocks, and the diamond-shaped hole can even be added to various prints that aren’t blocks at all. This means that a wide variety of parts can be made, all designed to interlock with the bricks or various other shapes. [Joe] even created an array of themed sets like robots, castles, and dinosaurs and although he sells these more complex models, he released his base set and interconnection mechanism for free and is available for anyone to use.

Another perk of the PrintABlok system is that they are scalable, mitigating safety risks for smaller children that might try to swallow some of the smaller parts. It’s an excellent way to put the 3D printer to work if there are any children around in the house. But this isn’t the only LEGO-inspired build we’ve ever seen, and they aren’t always going to be used to make children’s toys. [Ivan] recently used similar 3D-printed interlocking bricks more in the style of LEGO Technic to attempt to build a human-rideable go-kart.

Continue reading “3D Printing LEGO-like Blocks”

Think You Know CURL? Care To Prove It?

Do you happen to remember a browser-based game “You Can’t JavaScript Under Pressure”? It presented coding tasks of ever-increasing difficulty and challenged the player to complete them as quickly as possible. Inspired by that game, [Ben Cox] re-implemented it as You Can’t cURL Under Pressure!

In it, the user is challenged in their knowledge of how to use the ubiquitous curl in a variety of different ways. Perhaps this doesn’t sound terribly daunting, especially if your knowledge of curl is limited to knowing it is a command-line tool to fetch something from a web server. But curl has a staggering number of features. The man page is over 4500 lines in length. The software’s main site offers a (free) 250+ page guide on how to use curl and libcurl. Reflecting on this is exactly what led [Ben] to create his challenge.

It’s a wonderful piece of work, but things get really interesting once [Ben] starts talking about the infrastructure behind it all. At its core the game works by giving the user a problem and a virtual machine, and catching outgoing HTTP calls to see whether they look correct. If the outgoing HTTP call is the right solution for the problem, terminate the current VM and start up the next one with the next problem. He’s put a lot of work into getting suitable VMs up and running quickly, securely, and properly isolated. The code can be found on the project’s GitHub repository for those who want a closer look.

But that’s not all. [Ben] says that in the past he’s had a bad habit of presenting interactive features in his blog posts that can’t keep up with sudden demand. So to address that, the system auto-scales as needed with a small Linux cluster; small brick-sized PCs are started and shut down automatically to meet demand. Hey, the only thing cooler than a functioning cluster is a cluster doing an actual job, like this one that detects NSFW images.