Designers of marble fountains who don't use computing to design the paths run into reliability issues: sometimes balls derailing out of their track. They have to observe the contraption, identify problems (balls getting jammed up or jumping out) and then guess at the root causes and make manual adjustments.
That's the thing here: he has it running for hours presumably without any ball jumping out.
Most of the tracks consist of two rails, so the ball has two contact points. I'm no physicist but it seems like the goal would be to have ideally nearly equal forces at the two contact points at all times during the ball's descent. In other words, the track has to be perfectly banked so that the gravity and centripetal acceleration vector are balanced by a normal vector perpendicular to the rails. During a derailment, the ball has to lift away from one of the two contact points, so the normal force must have dropped to zero.
It's actually much weirder than that: banking changes the axis of rotation and thus kills the rotational inertia. The tracks bank super aggressively in order to prevent the ball from accelerating too much and hopping the track. This is part of why the descent is so smooth and all the balls move at more or less the same speed.
Also to be fair the final system does lose a ball every 30ish minutes. The tuning was largely me staring at the run or taking a video trying to catch where they get lost. Instead of hand tuning I would just update the generator and print another one. I'm considering closing the loop with a camera but that would be a whole new project.
First, I thought about Ansys or CATIA software but I couldn’t find any module specialized for simulation of balls.
But I think that people from those companies could help as well and participate in simulation as an interesting usecase. (These software are expensive for personal projects.)
The state of each ball can be described by 9 parameters: the current location of the center of mass (x,y,z), the current linear velocity (vx, vy, xz) and the angular velocity on 3 axes.
I don't think the forces acting on the rails need to be similar -- they just need to be such that the acceleration of the ball is always parallel to the track. Unfortunately the equation of motion will look pretty ugly and optimizing the system will be quite a challenge.
And finally, the system has to be stable, ie. small perturbations should be cancelled rather than grow - if a ball gets a little too fast there should be something like a bend that slows it down, but that bend should at the same time not slow down a ball that is already too slow...
Another parameter - as a track designer you can manipulate the width of the track to change the ball speed. It raises and lowers the ball on the track, changing both the rolling diameter and the center of gravity. This can be used to make subtle changes to the ball speed before a turn.
This is beautiful. It would be amazing to have the tracks encode/decode audio, you know? Like, the track of the marble can be used to generate different frequencies...
I actually attempted this, the idea of a python script that converts a midi track into a marble run is just too good to not try. I printed a large drum with different track structures inside so I could test various "slopes" by changing the speed and it just doesn't work, the balls bounce around too much to get an audible pitch. A less rigid material or a larger bearing would likely work better but I decided to focus on getting the normal version working well.
Maybe at the bottom your marbles could land on surfaces with different accustic properties. Track selection would determine the surface and release time would determine the timing.
The particle simulation approach to generating an organic "tree-like" support structure is super creative! If I'm understanding correctly, you defined some laws of physics and then ran a simulation with the "time" dimension mapped to the z-axis? Is this a well-known approach, or something you came up with?
Either way, it produces a beautiful aesthetic. I'd love to play around with this idea.
That's pretty much it! It's the simplest method of supports I could come up with that allows for robust keepout zones. I did have a bunch of issues at first with supports blocking the path but with a little tuning it became surprisingly consistent. I doubt I'm the first to come up with it but I have not seen any similar systems.
Thank you! The emergent forms are much more interesting than they have any right to be for such a simple system.
This is a great example of a good use case for 3D printers. The smooth marble run action combined with the interwoven organic forms would be a huge PITA to fabricate with any other method I can think of, even if your just making one.
A good use case for 3D printers is random, small, custom household items that greatly increase my quality of life, much more than it is a unique sculpture.
I've actually done clear prints with LEDs installed. The bottom is much brighter than the top and it just look kinda tacky. I briefly hollowed out the supports and tried running fiber optics but it didn't help much.
I'm realizing now that I tried a lot of weird shit during this project that just did not work at all or make it into the final product, I should do another video just of all my failed abomination marble runs.
Minor suggestion/request: would be great if you added a final STL file to the github repo of a working example. Might be easier for people to try if they can't get the python code running on Linux.
(I haven't tried yet. But I'd love to just send an STL to my printer to see how well it prints.)
I appreciate the work. It's really beautiful and checks so many of my "oddly satisfying" boxes as a builder. It seems it hit those for you too, obviously.
Separately, the timing of seeing this is uncanny. I've been using marble runs to explain probability to my kids and was filming a marble run conversion lesson. Seeing this at the top of HN felt like someone was reading my minds.
Mesmerizing is the right word. "I can watch them for hours" was the key bit for me - I have always been fascinated how humans can stare at a random visual generator for forever, if it's the right one.
I think there is an instinct built deep in our lizard brain somewhere for this. Humans will happily stare at a fire, or an ocean, or a wave in a river, or (sometimes, especially children) a TV screen - and all I have worked out why is because it is constantly changing in an unpredictable way.
This marble run shouldn't even be unpredictable - clearly the paths are fixed and the cadence of balls is regular - but somehow it is still mesmerizing.
That's the thing here: he has it running for hours presumably without any ball jumping out.
Most of the tracks consist of two rails, so the ball has two contact points. I'm no physicist but it seems like the goal would be to have ideally nearly equal forces at the two contact points at all times during the ball's descent. In other words, the track has to be perfectly banked so that the gravity and centripetal acceleration vector are balanced by a normal vector perpendicular to the rails. During a derailment, the ball has to lift away from one of the two contact points, so the normal force must have dropped to zero.
Also to be fair the final system does lose a ball every 30ish minutes. The tuning was largely me staring at the run or taking a video trying to catch where they get lost. Instead of hand tuning I would just update the generator and print another one. I'm considering closing the loop with a camera but that would be a whole new project.
https://www.nolimitscoaster.com/
First, I thought about Ansys or CATIA software but I couldn’t find any module specialized for simulation of balls.
But I think that people from those companies could help as well and participate in simulation as an interesting usecase. (These software are expensive for personal projects.)
> I was able to get it working consistently, although it did lose 2-3 balls an hour and could only run for a few hours without the motor overheating.
IMO that's more impressive to hear than if he hadn't mentioned it at all. (I would have assumed more marbles getting lost.)
You can see a ball on the ground at the end of the video :-)
The state of each ball can be described by 9 parameters: the current location of the center of mass (x,y,z), the current linear velocity (vx, vy, xz) and the angular velocity on 3 axes.
I don't think the forces acting on the rails need to be similar -- they just need to be such that the acceleration of the ball is always parallel to the track. Unfortunately the equation of motion will look pretty ugly and optimizing the system will be quite a challenge.
And finally, the system has to be stable, ie. small perturbations should be cancelled rather than grow - if a ball gets a little too fast there should be something like a bend that slows it down, but that bend should at the same time not slow down a ball that is already too slow...
Deleted Comment
Doesn't make the whole thing less remarkable.
Maybe at the bottom your marbles could land on surfaces with different accustic properties. Track selection would determine the surface and release time would determine the timing.
Either way, it produces a beautiful aesthetic. I'd love to play around with this idea.
Thank you! The emergent forms are much more interesting than they have any right to be for such a simple system.
hehe I wonder if this is how evolution in nature "comes up with" beauty :-D
I'm realizing now that I tried a lot of weird shit during this project that just did not work at all or make it into the final product, I should do another video just of all my failed abomination marble runs.
(I haven't tried yet. But I'd love to just send an STL to my printer to see how well it prints.)
Separately, the timing of seeing this is uncanny. I've been using marble runs to explain probability to my kids and was filming a marble run conversion lesson. Seeing this at the top of HN felt like someone was reading my minds.
I think there is an instinct built deep in our lizard brain somewhere for this. Humans will happily stare at a fire, or an ocean, or a wave in a river, or (sometimes, especially children) a TV screen - and all I have worked out why is because it is constantly changing in an unpredictable way.
This marble run shouldn't even be unpredictable - clearly the paths are fixed and the cadence of balls is regular - but somehow it is still mesmerizing.