Arrakis 2.0
You're looking at the Arrakis 2.0 sand table, designed, built, and programmed by me, Mark Rehorst (whose name appears on GLD Gin bottles). The table is normally used as a coffee table in my home. It is on temporary loan to GLD.
Arrakis 2.0 at home |
The sequence of patterns currently running on the machine can go for about 12 hours. There is no real limit, and it is possible to program a sequence that will run for weeks without ever repeating a pattern. As you may notice, the sand tends to build up around the edges of the table. Once about every 50 hours of operation I push it back toward the center of the table.
In the current sequence, some patterns finish in a few minutes, others take over an hour. After each pattern finishes, there is a 60 second delay to allow you to contemplate the Sisyphean pointlessness of existence, "ooh and aah", take pictures of the pattern, or use the restroom. Then it erases and starts drawing the next one.
Despite rumors you may have heard to the contrary, the sand is definitely not cocaine. It's actually baking soda, used because its fine grains capture pattern details, it's pure white so the LEDs light it up nicely, it doesn't get sticky when it's humid, bugs don't eat it, it's cheap, and available everywhere. There are about 2 lbs of baking soda on the table.
Almost all the electronics in the table are off-the-shelf stuff, most commonly used in making 3D printers. Many of the mechanical parts in the mechanism are 3D printed or are parts commonly used in 3D printers, such as GT2 belts and drive pulleys. Unlike similar tables you may have seen, this one uses servomotors to achieve high speeds and quiet operation.
Those of you familiar with 3D printing will understand when I say the table uses a CoreXY robotic positioning mechanism to move a magnet under the table. The magnet pulls the steel ball on top of the table through the sand leaving behind beautiful patterns and messages.
The pattern generating software, Sandify, is free, online, and saves patterns as simple gcode files. I wrote a post-processor for the pattern files that assigns two speeds to the motion, fast along the edges of the table, and usually slower for drawing the patterns to preserve details.
The process of generating patterns using Sandify starts with selecting a basic shape and applying different modifiers. As changes, are made, their effects can be seen in a preview window. When I like what I see, I tell Sandify to save the pattern. Then I run a post-processor on the pattern file that assigns two speeds to the motion. Finally, I upload the pattern to the table via WiFi and it's ready to run. Patterns can be strung together in sequences using a macro file. It takes me anywhere from a few minutes to a few hours to generate patterns that I feel are worth keeping.
You may notice that the ball is "smart" in that it always takes the shortest path around the table when it is traveling along the edges of the table. That behavior was added to the pattern generator after I wrote a post processor to delete excess edge motion from the pattern files. The authors of Sandify liked the demo video I sent them so much they added that function into Sandify. They have yet to add dual speed operation, so I continue to use my post-processor for that
In case you're curious about the mechanism, here's a video tour of it:
The table has other uses. It's great for entertaining cats, especially when the ball is traveling at high speeds:
I have also used it to paint pictures by having the ball roll paint on a canvas board:
History
Shortly after I finished designing and building a CoreXY 3D printer (UMMD) at the Milwaukee Makerspace, I got the idea to build my first sand table, "The Spice Must Flow", for the 2018 Milwaukee MakerFaire using the same type CoreXY mechanism and 3D printer controller board. That table was larger, louder, and slower because the mechanism was driven by stepper motors.
After the MakerFaire I continued to work on the table, with goals of making it run faster and quieter, so that I could have it in my living room. Many of the parts in the mechanism, including motor mounts, the magnet carriage, and pulley blocks were designed by me and 3D printed on UMMD.
At first I worked on speeding the table up, and managed to get it to work up to 500 mm/sec. That wasn't fast enough, and it was pretty noisy because it used stepper motors, so I switched to servo motors that are capable of running much faster and quieter. With the servomotors the table can run up to 2000 mm/sec.
Once the speed and motor noise issues were solved, I started working on other noises that the table made, hunting them down and eliminating or reducing them one by one. The result is in front of you: Arrakis 2.0.
Do you want to build one yourself?
If you have kids building a table like this would be a great way to introduce them to mechanical and electrical engineering and programming. My blog contains enough information about the table that if you are skilled mechanically, and know a little about electronics and programming, you can use it to build your own table. I am always happy to answer questions and make suggestions, including sources of inexpensive parts to use.
As built, there's about $400 worth of electronics in the table, including the servomotors, but there are much cheaper ways to go. The easiest way to cut costs is to use stepper motors if you don't mind the table speed being limited to about 100 mm/sec, and you can use an inexpensive Arduino based 3D printer controller. Many people build sand tables by modifying glass top tables from Ikea.
If you would like to build a sand table, or other things, but don't have work space or tools, stop by and tour the Milwaukee Makerspace in Bay View or St. Francis. We have all the space, tools, and expertise you'll ever need for almost any project you can think of.
Do you want me to build one for you?
I can do that, but it's not going to be cheap. That said, I'd love to talk to you about it and maybe we can come to some agreement.
Links to more info:
Duet3D (3D printer controller boards)
The Spice Must Flow sand table- my first
Arrakis sand table
Arrakis 2.0 sand table
Sandify sand table pattern generator