- June 25, 2017 at 5:37 pm #36711
I saw the Sisyphus – The Kinetic Art Table by Bruce Shapiro, https://www.kickstarter.com/projects/1199521315/sisyphus-the-kinetic-art-table.
I want one……so I got out some of the prints I couldn’t sell and went to work. Good sunday project right? I hope Mr. Shapiro and his team don’t get irked. Come on though quick and dirty, ugly as heck but it works (kinda).
I think I need to try a different shape magnet and this super fine sand is kinda crunchy so maybe I’ll dump it and go to baking powder instead. It was fun, glad I did it. Goes to show the Mostly Printed CNC is pretty versatile, right?
So any suggestions for a single line art type program? Then I can just drop it into EstlCAM and do a engrave, or carve. It would keep the sand super level if all the art went from out to in then back out again. Pretty self leveling.
1 user thanked author for this post.June 25, 2017 at 5:57 pm #36716
Uhh, we need more pictures of the underside!! I’ve been wanting to make something like this since I saw the first prototype table a couple years ago!June 25, 2017 at 6:06 pm #36717
Under the skirt…..you dirty dog, you.
This is the center assembly, both parts. The rest is the current build, no feet or locks, just corner bottoms pop riveted to the frame.
It is almost a standard build. I have a set of the second series of z guides in there (the ones right before the “better middle Z” parts were released. and a big fat magnet sitting on the bolt head. I’m thinking a smaller diameter stack might be better, or maybe a doughnut shape. Right now the ball kind off moves in little spurts, even on just a smooth glass surface.
Its ugly and doesn’t work well enough yet. But If I can iron out some bugs, I would love to make some new parts and do a full sized dinner table. How cool would that be, If I can get a good font, Have it draw each person’s name in front of their seat! While it keeps drawing in the “sand” though a meal.
Attachments:June 25, 2017 at 8:05 pm #36725
Wow, cool! Damn. I wish I would have bought more clear plastic.
Hmmm. Might be a fun gcode simuator. I wonder if you’d like the design if you made it just 3D print your parts, drawing one layer at a time, but scaled up to fill the area. On second thought, you probably see that enough.
You could certainly do some fun things in estlcam, but you’re going to be limited to peel and parallel pockets for anything interesting. I guess you could try doing some engraving, but it won’t be able to lift the ball up, so at some point, estlcam is going to run travel moves all over your things.
Maybe there’s a good way to do the name thing by milling out everything but the name, with a parallel pocket. Do that for a rectangle in front of each person’s place. Oh, but it would do that from the outside in, and then get stuck. You might have some manual gcodes to get it from rectangle to rectangle. Even with the travel moves, I’m pretty sure 100% of the people would be impressed (and if not, then why are they eating with you?).
You could go to the bare metal and write up some gcode in python. It would be pretty easy if there was some math to just make interesting patterns, like a spirograph. There are some gcode python libraries. Even ones that will let you preview it, IIRC. It’s also not terribly hard to write the gcode after you figure out where the x, and y should be. If you have some mathy patterns you want drawn in gcode, send me an email and I’ll write it up if you’re too scared.
What speeds do you recommend? What size should I make it if I want to push aluminum sand around?
Any chance you’ll make a vid soon? I think that would help me convince my wife that I should make it, and that it should be ahead of fixing the sprinklers.June 25, 2017 at 8:57 pm #36726
HAHAHA slow down, I read that like you didn’t take a breath between sentences…
I made another path in solidworks, I laid out a font and used the spline tool to make a single path that started and ended in the same corner in cursive. Exported as a DXF. Came out okay, but it did not let me cross the path so it wasn’t perfect. But it is pretty fun, I think using solidworks I could come up with some decent ones but nothing like the stuff for the Sisyphus table.
I haven’t done more than 10 minutes of research into designs, but I think they would need to be generated straight to gcode, not having to go through estlcam.
For speeds I was running slow…like always, then I tried 12mm/s, then I ran it again at 200% no issues. I want to try and get the ball to roll more smooth before I put too much coding time into it though. Right now it is chunky. I’ll order a new magnet stack and see if it helps now that I have an idea of load put on the ball.
I threw together a janky “will it work” build using duct tape and everything. turns out it is pretty cool. I would love to make some low profile parts for this. My chef buddy just came over for a beer and saw it, and just about lost his mind with ideas. Even if you didn’t have it running while you were around it but once a day it turned on and kicked out a new random pattern it would be so awesome. Like, come home from work and the dinner table is full of new randomly generated patterns. Hope they don’t have a patent on it cuz this is too cool for school.June 25, 2017 at 9:09 pm #36729
Very nice, It would be therapeutic to watch it. I love kinetic art.June 25, 2017 at 9:11 pm #36730
I don’t think they were the original. I remember seeing one a really long time ago.
And yeah, we got a new coffee machine, and I haven’t figured out the dosage yet.June 25, 2017 at 9:22 pm #36732
Jim, It is pretty cool but a bit to chunky right now, if it were smooth and silent I can see myself zoning out for a few hours while it does its thing.
Hefe, That happens to me all the. A little extra in the filter and I am off the hook for a few hours.
If they weren’t the first ones I will put in some more time on this thing. It is worth it. I just don’t want to piss anyone off making a printed one… The key to this will be the design program though. It would need to handle different sized builds, speeds, (later add a time of day to change?), then some sort of randomness. Even if it was just a random seed/s (point or points to build to or from) then work out and only do travel moves at the borders. Do you think I could program this in c++, or what would you recommend I look into that might have an easily configurable GUI? It sounds doable to me, I would have to write out an outline or something to be sure.June 26, 2017 at 5:46 am #36751
Almost any language can do almost anything. C++ can definitely handle it, but if you’re not familiar with it, it can bite. I don’t know what kind of interface you’re thinking, but web would be the most flexible. Then you could attach with your phone or computer. I have a raspberry pi running my sprinklers and it’s just a Python program hosting a web page, with some jQuery to do the dynamic stuff. I also made a thermostat in a similar fashion:
That ran on a Yun, which has an Arduino with a serial connection to an embedded Linux computer (like a pi, but smaller, running openwrt). I ran the Python in Linux.
If you did it in C++, you’d make it simple and probably connect it to a web server with some protocol. The web server would be where the smart GUI went and how you’d connect would depend on how you made it.
Another choice is using the esp8266. There are some neat web servers running on them. I think there are even projects for 3D printers controlled by them, so it might be a good place to look.
Personally, I would do Python. There is so much web support, and text support, and you can easy make plots to debug your algorithms.June 26, 2017 at 6:15 am #36753
I am hijacking a little here. I love the project, and it reminded me of an Axidraw video I saw.
They draw in the sand with a bamboo skewer, and I though it would make a great sign for a beach cafe or something. Is there any way to ‘freeze’ the sand for this type of project? I imagine if you just sprayed epoxy on it it would be a fail.June 26, 2017 at 6:59 am #36759
My wife had a great idea. She wants this, but with two nobs like on a large etch a sketch.June 26, 2017 at 7:37 am #36767
OMG and etch-a-sketch would be epic let it run a “program” until manual intervention. We need to make this happen. Estlcam has the gamepad function, that would work immediately I am sure you could mess with the pinouts to hook up some knobs if you wanted them instead of the sticks. Time to solder up my protoneer shield.
James, maybe with some slow set epoxy it could work. There has got to be a few additives that would hold the design. MAybe encase it in a thin epoxy after the fact, thin enough to penetrate.June 26, 2017 at 7:37 am #36768
I need this codeJune 26, 2017 at 7:46 am #36775
Maybe the joystick to move the “cursor” and then a keyboard to write notes. Shopping lists, reminders, instructions to Maxwell Smart…
You definitely need that code. Since it says it’s using inkscape, I wonder if they literally drew the flower shape, then did some operation to rotate and shrink it 50 times? Actually, that would be interesting too, to make some code to put in a simple polygon, and have the code rotate and shrink (or enlarge) it over and over. That would be a decent prototype algorithm.
I wonder if you could mix the sand with some slow slow setting glue, and then draw on it before it sets up. I think something like the stuff you use for making jigsaw puzzles set up would work. It reminds me of water-based polyurethane, but they sell it specifically for puzzles. I bet you could water down poly and spray it on. It would really have to soak in. Another alternative is to just have the cafe make an MPCNC, and rewrite it every day when it gets ruined (the mandala approach) or you could carve the sign out of wood or small cell foam and then attach sand to it with spray adhesive.June 26, 2017 at 7:48 am #36777You definitely need that code. Since it says it’s using inkscape, I wonder if they literally drew the flower shape, then did some operation to rotate and shrink it 50 times? Actually, that would be interesting too, to make some code to put in a simple polygon, and have the code rotate and shrink (or enlarge) it over and over. That would be a decent prototype algorithm.
(((Responding to myself, I’ve gone infinite!)))
I could make a python script that would take in gcode for a polygon, and then turn it into an infinite spiral. I think that would be <100 lines.June 26, 2017 at 7:52 am #36779
Peter A MillsParticipant
Try some kinetic sand. Easy enough to make with household supplies. That might hold it enough but you’d have to find a way to “erase” it.
Cool project!June 26, 2017 at 7:54 am #36781
The part that takes some math would be how to act when it hits a max/min dimension. So if it was doing a square in a rectangle it knows to limit the coordinates at 450 and 0 in the x axis and let the Y keep going until all 4 max and mins have been reached….I started to get serious about this last night. Using a single seed point for circles, 2 for rectangles, 3 for triangles is within my immediate coding abilities. Also having it start at the outside and work in, and then do another random from the inside and work out. That would keep all the sand even and always park the ball in the home corner.
Adding patterns like that video would just put this over the top.
Now I need to build a full sized one with all low profile parts.June 26, 2017 at 7:59 am #36783
My kid’s school makes play sand with: “4 cups whole wheat flour and ½ cup vegetable oil.”
When it hits the outside, it either stops (pattern over) or it can clip it to that extent.
next_coord = compute_something(…)
next_coord.x = min(MAX_X, max(MIN_X, next_coord.x))
if next_coord.x < MIN_X or next_coord.x > MAX_X:
all_done()June 26, 2017 at 8:00 am #36784
Dang it, I am going to be obsessed with this now….there goes any free time I had this week.June 26, 2017 at 8:05 am #36788
Hefe is there something like the size calculators I use that would make a web based one easy for me? I’m not too scared (just lazy) to learn a new language but I think it would be more fun to get it up and running faster.June 26, 2017 at 8:09 am #36792
To lock the sand pattern, water down some Elmer’s glue in a spray bottle. Few light coats should do it.June 26, 2017 at 8:18 am #36794Hefe is there something like the size calculators I use that would make a web based one easy for me? I’m not too scared (just lazy) to learn a new language but I think it would be more fun to get it up and running faster.
I don’t claim to know everything on the Internet, but I don’t know how that would work. There are some online Python interpreters, but I had some difficulty getting external libraries to work with them.
This is the library I was thinking of using:
It has filters already for rotating gcode. It doesn’t have a scale for some reason, but I think that would be easy to add. The arcs might be an issue, but you can avoid using arcs at first.
I guess you’re thinking that there would be a website where you could input a few key numbers, like the center of a circle, and it would return a gcode file that you could load on the SD?
Keep in mind, you don’t have to learn the whole language, you just have to get enough to do what you want.June 26, 2017 at 8:44 am #36798
Barry, that is pretty much what I have. I think the diameter is too much the ball jumps from the outer edge to the center as it moves. I am thinking maybe something like a cow magnet, a much smaller diameter so if it does move you won’t really see it.
Hefe, I was figuring lines are easy enough to do the math on and arcs I would just pick a value between nodes and plot them individually until I learn how to use arcs. I figured I would have to write it all from scratch. But I was just looking at something that had some shortcuts for an interface. I have zero GUI experience. Some input boxes, and maybe a few drop downs, eventually show a graphic of the output.
I can look around, there has to be something out there, or maybe a gui is easier to build than I think.June 26, 2017 at 9:04 am #36801
It really is (responding to the difficulty of making a GUI). And (sounding like a broken record) python has some good libraries. flask and bottle are two really simple libraries for hosting a web page from python. If you wanted this to be on the Internet, I have 0 experience there, but if you wanted something that would just run on a pi connected to your arduino, I could help. It’s really just a few lines to get started, then you can polish it as much as you want. You probably have more experience with web than I do thanks to these forums.
The hard part about GUIs is always getting them to run on someone else’s machine. Because other people have Windows, or Linux, or Mac, or Android. That’s why the web page works so well. A lot of companies (like slack) have their GUI run in a stripped down version of chrome (electron, same as the atom editor) just to make it cross platform.
I was just toying with that gctools, and I made the input gcode rotate 90 degrees in 1 degree steps:
#!/usr/bin/env python from util import * input = loadGCode('input.gcode') # start with the output just being the input output = GCode() # for each of these angles for angle in range(90): # rotate the input to that angle temp = input.clone(Rotate(angle)) # copy that rotationm to the output output.lines += temp.lines saveGCode("output.gcode", output)
The attached was made from this input file:
G01 X-100.0 Y-100.0 G01 X100.0 Y-100.0 G01 X100.0 Y100.0 G01 X-100.0 Y100.0
Super quick. Making it scale is a little harder, and I think I’d also want it to scale each point so it’s a smooth transition from one rotation to the next. Adding a web interface is a few more lines, really. The hard part is getting a machine with gctools, PIL, and access to the web page.
Attachments:June 26, 2017 at 9:17 am #36804
I’ll have to look. I was just hoping to use something very similar to c++ because I have a few semesters worth of serious math programming in it, including iterative solutions with input and output. The last final I remember taking was pen and paper doing a infinite matrix by hand solving a nasty problem. Took about 35 minutes by hand for the first person to turn it in. An hour or so for the rest of us.
I do enjoy programming a little bit, so maybe it is time to learn something new.June 26, 2017 at 10:02 am #36808
Ya’ll are making this way too hard.
Drop gcode and drop estlcam.
just setup an arduino to randomly move the steppers to produce it’s “own” design. The machine is it’s own artist.
adding two rotators for the etch a sketch function would be easy. Simple switch to flip from manual to auto.June 26, 2017 at 10:04 am #36809
Coming from C++ to Python is a joy. As Jeff says, the libraries rock. I bet you could do the same math programming you were doing with numpy and scipy with less brainpower.
There’s a turtle lib which someone has converted the output to Gcode here:
I’m pretty pleased I found this because I’m really into doing some large format plotting for fun.June 26, 2017 at 10:15 am #36811
James, my buddy my pal. I think you found what we are looking for! I knew something had to exist.June 26, 2017 at 10:20 am #36812
I just checked the code, and it’s not really doing anything special. But I think the gcodetools lib that Jeff posted is pretty interesting.
I didn’t get the reason for the web interface? Is it seen as a quick route for a GUI?
TK is the GUI toolkit you’d turn to in Python, and it’s probably as easy as writing web interfaces.
As for the libs question, Jeff, if I understand, you are talking about runtime library dependencies?
If that’s the case you can make your Python distributable with p2exe, but there are other ways too.June 26, 2017 at 10:34 am #36813James, my buddy my pal. I think you found what we are looking for! I knew something had to exist.
I can’t wait to mess around with this stuff myself. What’s great is there are tons of tutorials/examples of some quite complex plotting people have done with Python Turtle ready to be adapted to output gcode. I’d say it should be possible to make something quite slick that you can have a GUI where you could use interface controls or paste turtle commands, if that’s of interest.
Edit: Stupid question deleted
You must be logged in to reply to this topic.