Readit News logoReadit News
WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
adzm · a month ago
Does the temperature of the track change much after thirty minutes?
WillMorr · a month ago
I haven't actually measured it but that's a good thought, I may borrow a thermal camera and do some testing! It's not noticeably warm to the touch but this functionally a system that converts potential energy into heat and sound so there's probably a measurable change.
WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
fogleman · a month ago
What did you not like about the SolidPython2 / OpenSCAD approach? What would you want from a different "3D engine" for this?
WillMorr · a month ago
Mostly speed, I'm mostly doing large boolean unions of primitives or chain hulls and OpenSCAD chugs pretty good at large numbers of operations. Don't get me wrong, they're great tools for what they're good at. I need to do more research before I start a port, SDFs seem like the best option but I'm not 100% confident. I am considering using your SDF library though (github.com/fogleman/sdf) but need do do some experimenting/benchmarking first.
WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
bix6 · a month ago
Super cool! I would love to see a white / clear one with LEDs. Rainbow road :)
WillMorr · a month ago
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.

WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
titanomachy · a month ago
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.

WillMorr · a month ago
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.

WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
MomsAVoxell · a month ago
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...
WillMorr · a month ago
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.
WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
eschluntz · a month ago
Very cool! I've designed a lot of Hilbert Curve marble tracks, using OpenSCAD and python
WillMorr · a month ago
That sounds super interesting, do you have a link?
WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
kazinator · a month ago
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.

WillMorr · a month ago
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.

WillMorr commented on Marble Fountain   willmorrison.net/posts/ma... · Posted by u/chris_overseas
lloydatkinson · a month ago
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.
WillMorr · a month ago
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.

u/WillMorr

KarmaCake day126November 3, 2025View Original