[HN Gopher] Marble Fountain
       ___________________________________________________________________
        
       Marble Fountain
        
       Author : chris_overseas
       Score  : 840 points
       Date   : 2025-11-09 16:26 UTC (1 days ago)
        
 (HTM) web link (willmorrison.net)
 (TXT) w3m dump (willmorrison.net)
        
       | matthewfcarlson wrote:
       | This is absolutely brilliant
        
       | dbacar wrote:
       | "ramble about marbles"
       | 
       | nice one!
        
         | scubbo wrote:
         | A pun? I don't get it, could you explain?
        
           | jwiz wrote:
           | Anagram, perhaps.
        
           | dbacar wrote:
           | I meant same letters, ramble -> marble
        
             | scubbo wrote:
             | Ah, nice, thanks!
        
       | xnx wrote:
       | Stupendous project and video as well! The music is very
       | complementary.
        
       | neomantra wrote:
       | Amazing on so many levels!! Thank you also for including the
       | source.
        
       | Levitz wrote:
       | Mesmerizing and beautiful in a simple way, I really like this
       | type of thing.
        
         | foltik wrote:
         | Be sure to turn on sound for maximum mesmerization.
        
         | CGMthrowaway wrote:
         | 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.
        
       | ecountry wrote:
       | This is magical. Thanks for sharing!
        
       | wxce wrote:
       | 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
        
         | temp0826 wrote:
         | Are procedurally generated rollercoasters a thing?
        
         | sergiotapia wrote:
         | 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.
        
           | stavros wrote:
           | Where did they get the material for it?
        
             | sergiotapia wrote:
             | They never really specify beyond the planets themselves
             | being consumed wholesale. Some of the structures are just
             | hollow spheres: https://preview.redd.it/7tvkbj5bp2hb1.jpg?w
             | idth=1951&format=...
             | 
             | Also conceivable that meteors etc crash into the
             | megastructure providing it with endless resources.
        
         | 9dev wrote:
         | 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!
        
           | IshKebab wrote:
           | Does it though? I have yet to see a 3D printed house that
           | would be cheaper than SIP panels.
        
       | lloydatkinson wrote:
       | 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 wrote:
         | 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.
        
           | fogleman wrote:
           | What did you not like about the SolidPython2 / OpenSCAD
           | approach? What would you want from a different "3D engine"
           | for this?
        
             | WillMorr wrote:
             | 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.
        
           | CasperH2O wrote:
           | Have you considered Build123D for CAD code?
           | 
           | I am also procedurally generating marble tracks and 3D
           | printing them for about a year now and found that library
           | very useful.
           | 
           | The community is very active and its very similar to features
           | we know from Fusion360/SolidWorks but all in code.
        
       | collingreen wrote:
       | This is cool! Great job on the video - Simple voiceover, synced
       | music, and the fountain speaks for itself. Bravo.
        
       | MomsAVoxell wrote:
       | 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...
        
         | amenghra wrote:
         | There's a Tom Scott music about a musical road in California:
         | https://www.youtube.com/watch?v=Ef93WmlEho0
        
         | WillMorr wrote:
         | 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.
        
           | smusamashah wrote:
           | Did you try changing thickness of rails instead of bumps to
           | produce different sounds?
        
           | m_kos wrote:
           | I am not surprised you tried given your earlier project :)
           | https://hackaday.com/2022/09/25/this-found-sound-organ-
           | was-m...
           | 
           | 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.
        
       | aitchnyu wrote:
       | Is the banking of the curve for a specific velocity?
        
         | stevage wrote:
         | It says that the banking is intentionally excessive.
        
       | LandStander wrote:
       | 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.
        
         | stavros wrote:
         | 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.
        
           | cissou wrote:
           | What printer do you use for that and are you happy about it?
        
             | gaudystead wrote:
             | I'm not the person you asked, but depending on what kinds
             | of quality of life improvements you're looking for, your
             | budget, your 3D design abilities, and your tolerance for
             | working on the printer versus printing with it, the answer
             | will vary in terms of what works for you.
             | 
             | If you're casually interested, the Bambu Lab A1 combo will
             | do most things you'd want it to do, fairly reliably, but
             | with a closed ecosystem.
             | 
             | If you want something more robust, go for a Prusa, but be
             | ready for a more hands on experience.
             | 
             | If you want an entirely customized bespoke with a high
             | learning curve, go for a Voron.
        
               | jstanley wrote:
               | If you want something more _open source_ go for a Prusa.
               | I don 't buy that a Prusa is more robust than a Bambu.
               | 
               | I used to have a Prusa Mini and now have a Bambu X1C and
               | it is a world of difference. I would never go back.
        
           | deaux wrote:
           | Really curious to hear a few of these!
        
             | CobrastanJorji wrote:
             | I'll give you an example from my life. I got a set of cheap
             | LED lights for a closet. They come with a little remote
             | control to turn them on, but I didn't have a good place to
             | put the remote control, so I made a little wall holster
             | that's sized exactly to hold the little remote.
             | 
             | I also got one of those SimpliSafe home security systems.
             | It came with a door sensor, but the sensor didn't quite fit
             | our door frame. So I printed a tiny piece whose dimensions
             | exactly matched the SimpliSafe and my door frame, so it
             | allows the parts to meet up but doesn't look weird.
             | 
             | Of course, 99% of what I print is useless stuff that looked
             | neat on Printables, but sometimes I make stuff that
             | actually serves a purpose!
        
       | eschluntz wrote:
       | Very cool! I've designed a lot of Hilbert Curve marble tracks,
       | using OpenSCAD and python
        
         | WillMorr wrote:
         | That sounds super interesting, do you have a link?
        
           | gaudystead wrote:
           | Not the person you asked, but look up "Hilbert Curve" on
           | Thingiverse, Printables, or Thangs and I bet you'll find
           | somebody who uploaded a marble run with more information for
           | you.
        
         | CasperH2O wrote:
         | Small world, I opted for a Gosper curve myself, but when it got
         | too big, cut out specific pieces and connected those.
         | 
         | It gives everything a uniform look while allowing to fill the
         | space in a different way.
        
       | fHr wrote:
       | so cool!
        
       | CasperH2O wrote:
       | 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.
        
       | cyrusradfar wrote:
       | 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.
        
       | TealMyEal wrote:
       | I would pay silly money for one of those things on my desk
        
       | rwmj wrote:
       | Is it printed / sintered in metal?
        
         | hinkley wrote:
         | Looks like fiber infused filament.
        
       | randyrand wrote:
       | I wonder if you could get it to run silently, or close to it.
        
         | hinkley wrote:
         | 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.
        
           | bigiain wrote:
           | 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?
        
             | hinkley wrote:
             | 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.
        
       | kazinator wrote:
       | 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 wrote:
         | 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.
        
           | sixtyj wrote:
           | 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.)
        
             | djmips wrote:
             | Well except for this is SIM only whereas the OP (WillMor)
             | is making them for real with a 3D printer!
        
               | sixtyj wrote:
               | 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.
        
               | stavros wrote:
               | I think the physics are different, a ball is basically a
               | car without a differential, so it's going to behave
               | differently on the tracks. I'd imagine the ball is harder
               | to simulate because of that.
        
               | bazzargh wrote:
               | One of the results for hilbert curve marble tracks,
               | mentioned elsewhere in the thread, was a video showing
               | how to make one in blender, which has a physics engine so
               | it can simulate it pretty well.
               | 
               | https://www.youtube.com/watch?v=8YeXyUNCnhM
               | 
               | I'd imagine that the 3d-printable models could be
               | imported into blender, so it's 'just' adding balls and
               | motion to the lift.
        
               | sixtyj wrote:
               | You can simulate everything in these professional (and
               | expensive) software.
               | 
               | https://ansyshelp.ansys.com/public/account/secured?return
               | url...
               | 
               | But for hobby purposes I would suggest to contact some
               | university, they have such software, and they could find
               | simulation of balls motion at marble fountain interesting
               | for research (and educational) purposes.
        
           | adzm wrote:
           | Does the temperature of the track change much after thirty
           | minutes?
        
             | 4gotunameagain wrote:
             | Good thinking! Although I think that would result in a
             | change of the failure rate, whereas in this case it appears
             | to be constant.
        
             | WillMorr wrote:
             | 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.
        
         | hdjrudni wrote:
         | > That's the thing here: he has it running for hours presumably
         | without any ball jumping out.
         | 
         | You can see a ball on the ground at the end of the video :-)
        
         | ljsprague wrote:
         | My naive guess would be that you can't change the route of the
         | ball without asymmetrical track pressure.
        
         | rjmill wrote:
         | Not to dimish the achievement, but TFA is pretty clear about
         | the limitations of the piece:
         | 
         | > 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.)
        
         | fho wrote:
         | Just nitpicking, but there is at least one ball next to his
         | contraption in his video :-)
         | 
         | Doesn't make the whole thing less remarkable.
        
         | jjcob wrote:
         | You are missing inertia!
         | 
         | 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...
        
           | there4 wrote:
           | 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.
        
       | hinkley wrote:
       | Maybe it's the color and this would look better in a brighter
       | shade, but I hate it. It looks wrong. Malignant.
        
         | hinkley wrote:
         | 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.
        
       | underdeserver wrote:
       | It looks like Bones from Hades 2. Beautiful, and super cool.
        
       | bix6 wrote:
       | Super cool! I would love to see a white / clear one with LEDs.
       | Rainbow road :)
        
         | Taek wrote:
         | White/clear is just a matter of picking filament, I'm not sure
         | LEDs would be easy to incorporate into the build
        
         | WillMorr wrote:
         | 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.
        
           | gaudystead wrote:
           | Please do! Also just some footage of the machine running from
           | specific angles for a few minutes would be lovely! Nice work!
           | :)
        
       | ashepp wrote:
       | Stl?
        
       | titanomachy wrote:
       | 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 wrote:
         | 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.
        
           | froh wrote:
           | > 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
        
       | ljsprague wrote:
       | Gorgeous!
        
       | ljsprague wrote:
       | Why isn't the top-down footprint a square?
        
       | codr7 wrote:
       | Up next: https://www.youtube.com/watch?v=IvUU8joBb1Q
        
       | 3oil3 wrote:
       | Just wow.
        
       | ch_fr wrote:
       | Awesome project, I love to read about all kinds of different
       | procedural generation approaches!
        
       | worldmerge wrote:
       | Will this is incredible! I've been learning openscad and making
       | 3d models with it using python and this is such an inspiration.
       | Check out the latest nightly version of openscad it's
       | significantly faster, like seconds vs multiple minutes on my
       | exports.
        
       | frenchie4111 wrote:
       | This is awesome! I'd love to print one for my office. Any chance
       | there is an stl around I can print without having to get the
       | script running?
        
       ___________________________________________________________________
       (page generated 2025-11-10 23:01 UTC)