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.)
My point was that these software could help to find weak parts in trajectory - so instead of trying to figure it out by looking where balls are too quick to fall from the ride - you can simulate it. I saw real tramway simulation done in Ansys.
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.
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.
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.
This is really quite interesting and similar to a project I'm working on. I've been using procedural generation to generate a marble dexterity track similar to a Perplexus. My tools are mainly Python, the Build123D library and a 3D printer.
Beautiful, I wonder what kind of craziness would be possible with this, at scale. Whole buildings being printed and assembled block by block. Real life Minecraft, if you will
There are serious efforts and working prototypes of printing houses. This works surprisingly well, allows construction in days instead of months, and shows a lot of promise. It’s a great rabbit hole to fall into!
Blame! is a manga where in the future humans have robots that build, and are controlled by people with Net Terminal Genes. Something happens and those humans die leaving the robots building non-stop procedurally for eons. By the time our protagonist moves about in the world, its said the Megastructure reaches from Earth all the way to Jupiter.
That guy who makes marble music recently worked out a ball funnel that uses inserts in a different material to eat most of the noise. But in that case it’s also eating momentum as well so I’m not sure how that would work for this design. Maybe some bushings in the supports to reduce harmonics.
Now my brain is doing it's usual "over complicate things to the extent a project cannot possibly get started" thing"...
Active noise cancelling. Vibration detectors on oscillating parts of the track with LRAs or similar actively driving opposing vibrations. Might be able to use whatever the cheap active noise cancelling electronics headphones have? Might be able to use a high speed camera and video motion amplification to work out the best places to deploy it?
How you mount things matters a lot, and adjusting shapes to prevent harmonics might be something this guy could add to his algorithm.
I saved a couple friends in college from getting into fights with their downstairs neighbors by finding them milk crates to set their speakers on so the bass doesn’t all end up in the floor. Isolating from the base or making the base of TPU could likely help.
I wish there was a write up of how some of the code works. There's a lot of Python in the repo. Looks fascinating, seems to use Python to generate OpenSCAD code, I think.
It's specifically using SolidPython2 to generate the models. I originally wanted to do a quick code cleanup and have the specific math be much clearer but by the time it was working that was an absolutely massive undertaking. If I touch the code again I'm probably going to refactor the entire codebase and use a different 3D engine.
I bet this would look baller with green rails and brown supports. Also might help with losing the balls visually as they get to the bottom. The visual noise makes them harder to track.
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.
For roller coasters there is a software for simulation. It is imho similar situation compared with balls in your Marble Fountain
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.)
Well except for this is SIM only whereas the OP (WillMor) is making them for real with a 3D printer!
My point was that these software could help to find weak parts in trajectory - so instead of trying to figure it out by looking where balls are too quick to fall from the ride - you can simulate it. I saw real tramway simulation done in Ansys.
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.
Did you try changing thickness of rails instead of bumps to produce different sounds?
There's a Tom Scott music about a musical road in California: https://www.youtube.com/watch?v=Ef93WmlEho0
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.
This is cool! Great job on the video - Simple voiceover, synced music, and the fountain speaks for itself. Bravo.
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.
Stl?
Super cool! I would love to see a white / clear one with LEDs. Rainbow road :)
Mesmerizing and beautiful in a simple way, I really like this type of thing.
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.
Be sure to turn on sound for maximum mesmerization.
This is really quite interesting and similar to a project I'm working on. I've been using procedural generation to generate a marble dexterity track similar to a Perplexus. My tools are mainly Python, the Build123D library and a 3D printer.
Beautiful, I wonder what kind of craziness would be possible with this, at scale. Whole buildings being printed and assembled block by block. Real life Minecraft, if you will
Are procedurally generated rollercoasters a thing?
There are serious efforts and working prototypes of printing houses. This works surprisingly well, allows construction in days instead of months, and shows a lot of promise. It’s a great rabbit hole to fall into!
Does it though? I have yet to see a 3D printed house that would be cheaper than SIP panels.
Blame! is a manga where in the future humans have robots that build, and are controlled by people with Net Terminal Genes. Something happens and those humans die leaving the robots building non-stop procedurally for eons. By the time our protagonist moves about in the world, its said the Megastructure reaches from Earth all the way to Jupiter.
Also, the movie Fracture features these cool marble machines. https://www.youtube.com/watch?v=Y-v6E9H6nh0
Back when movies were made with unique good scripts and not marvel slop.
It looks like Bones from Hades 2. Beautiful, and super cool.
Very cool! I've designed a lot of Hilbert Curve marble tracks, using OpenSCAD and python
That sounds super interesting, do you have a link?
I wonder if you could get it to run silently, or close to it.
That guy who makes marble music recently worked out a ball funnel that uses inserts in a different material to eat most of the noise. But in that case it’s also eating momentum as well so I’m not sure how that would work for this design. Maybe some bushings in the supports to reduce harmonics.
Now my brain is doing it's usual "over complicate things to the extent a project cannot possibly get started" thing"...
Active noise cancelling. Vibration detectors on oscillating parts of the track with LRAs or similar actively driving opposing vibrations. Might be able to use whatever the cheap active noise cancelling electronics headphones have? Might be able to use a high speed camera and video motion amplification to work out the best places to deploy it?
How you mount things matters a lot, and adjusting shapes to prevent harmonics might be something this guy could add to his algorithm.
I saved a couple friends in college from getting into fights with their downstairs neighbors by finding them milk crates to set their speakers on so the bass doesn’t all end up in the floor. Isolating from the base or making the base of TPU could likely help.
I would pay silly money for one of those things on my desk
Is it printed / sintered in metal?
Looks like fiber infused filament.
Amazing on so many levels!! Thank you also for including the source.
Stupendous project and video as well! The music is very complementary.
Is the banking of the curve for a specific velocity?
It says that the banking is intentionally excessive.
"ramble about marbles"
nice one!
A pun? I don't get it, could you explain?
Anagram, perhaps.
I meant same letters, ramble -> marble
This is magical. Thanks for sharing!
I wish there was a write up of how some of the code works. There's a lot of Python in the repo. Looks fascinating, seems to use Python to generate OpenSCAD code, I think.
It's specifically using SolidPython2 to generate the models. I originally wanted to do a quick code cleanup and have the specific math be much clearer but by the time it was working that was an absolutely massive undertaking. If I touch the code again I'm probably going to refactor the entire codebase and use a different 3D engine.
This is absolutely brilliant
Maybe it’s the color and this would look better in a brighter shade, but I hate it. It looks wrong. Malignant.
I bet this would look baller with green rails and brown supports. Also might help with losing the balls visually as they get to the bottom. The visual noise makes them harder to track.
so cool!