Not

Hacker News!

Beta
Home
Jobs
Q&A
Startups
Trends
Users
Live
AI companion for Hacker News

Not

Hacker News!

Beta
Home
Jobs
Q&A
Startups
Trends
Users
Live
AI companion for Hacker News
  1. Home
  2. /Story
  3. /Marble Fountain
  1. Home
  2. /Story
  3. /Marble Fountain
Nov 9, 2025 at 11:26 AM EST

Marble Fountain

chris_overseas
895 points
92 comments

Mood

excited

Sentiment

positive

Category

other

Key topics

3D Printing

Procedural Generation

Marble Run

Debate intensity10/100

The 'Marble Fountain' project showcases a mesmerizing 3D-printed marble run created using procedural generation techniques, sparking discussions on its design, potential applications, and aesthetic appeal.

Snapshot generated from the HN discussion

Discussion Activity

Very active discussion

First comment

2h

Peak period

83

Day 1

Avg / period

30.7

Comment distribution92 data points
Loading chart...

Based on 92 loaded comments

Key moments

  1. 01Story posted

    Nov 9, 2025 at 11:26 AM EST

    16 days ago

    Step 01
  2. 02First comment

    Nov 9, 2025 at 1:06 PM EST

    2h after posting

    Step 02
  3. 03Peak activity

    83 comments in Day 1

    Hottest window of the conversation

    Step 03
  4. 04Latest activity

    Nov 13, 2025 at 3:49 PM EST

    12 days ago

    Step 04

Generating AI Summary...

Analyzing up to 500 comments to identify key contributors and discussion patterns

Discussion (92 comments)
Showing 92 comments
dbacar
16 days ago
1 reply
"ramble about marbles"

nice one!

scubbo
16 days ago
2 replies
A pun? I don't get it, could you explain?
dbacar
16 days ago
1 reply
I meant same letters, ramble -> marble
scubbo
16 days ago
Ah, nice, thanks!
jwiz
16 days ago
Anagram, perhaps.
Levitz
16 days ago
2 replies
Mesmerizing and beautiful in a simple way, I really like this type of thing.
CGMthrowaway
16 days ago
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.

foltik
16 days ago
Be sure to turn on sound for maximum mesmerization.
wxce
16 days ago
3 replies
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
sergiotapia
16 days ago
1 reply
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
16 days ago
1 reply
Where did they get the material for it?
sergiotapia
16 days ago
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?width=1951&format=...

Also conceivable that meteors etc crash into the megastructure providing it with endless resources.

9dev
16 days ago
1 reply
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
16 days ago
Does it though? I have yet to see a 3D printed house that would be cheaper than SIP panels.
temp0826
16 days ago
Are procedurally generated rollercoasters a thing?
lloydatkinson
16 days ago
1 reply
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
16 days ago
2 replies
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
16 days ago
1 reply
What did you not like about the SolidPython2 / OpenSCAD approach? What would you want from a different "3D engine" for this?
WillMorr
16 days ago
1 reply
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.
timmg
15 days ago
Not sure if this matters for you or not, but my understanding (with some experiments) is that the "slicers" implicitly do a union. As in: you could have an STL with a bunch of overlapping blobs and the 3d printer slicing code just checks isInside -- which is effectively a union.

At least that's what I found when I was generating STLs in code.

CasperH2O
15 days ago
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.

MomsAVoxell
16 days ago
2 replies
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
16 days ago
2 replies
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.
m_kos
15 days ago
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.

smusamashah
16 days ago
Did you try changing thickness of rails instead of bumps to produce different sounds?
amenghra
16 days ago
There's a Tom Scott music about a musical road in California: https://www.youtube.com/watch?v=Ef93WmlEho0
aitchnyu
16 days ago
1 reply
Is the banking of the curve for a specific velocity?
stevage
16 days ago
It says that the banking is intentionally excessive.
LandStander
16 days ago
1 reply
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
16 days ago
2 replies
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
16 days ago
1 reply
What printer do you use for that and are you happy about it?
gaudystead
16 days ago
1 reply
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
15 days ago
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
15 days ago
1 reply
Really curious to hear a few of these!
CobrastanJorji
15 days ago
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
16 days ago
2 replies
Very cool! I've designed a lot of Hilbert Curve marble tracks, using OpenSCAD and python
WillMorr
16 days ago
1 reply
That sounds super interesting, do you have a link?
gaudystead
16 days ago
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
16 days ago
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.

rwmj
16 days ago
1 reply
Is it printed / sintered in metal?
hinkley
16 days ago
Looks like fiber infused filament.
randyrand
16 days ago
1 reply
I wonder if you could get it to run silently, or close to it.
hinkley
16 days ago
1 reply
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
16 days ago
1 reply
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
16 days ago
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
16 days ago
6 replies
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
16 days ago
3 replies
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
16 days ago
1 reply
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
16 days ago
1 reply
Well except for this is SIM only whereas the OP (WillMor) is making them for real with a 3D printer!
sixtyj
16 days ago
1 reply
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
16 days ago
1 reply
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
15 days ago
1 reply
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
15 days ago
You can simulate everything in these professional (and expensive) software.

https://ansyshelp.ansys.com/public/account/secured?returnurl...

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
16 days ago
2 replies
Does the temperature of the track change much after thirty minutes?
WillMorr
15 days 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.
4gotunameagain
15 days ago
Good thinking! Although I think that would result in a change of the failure rate, whereas in this case it appears to be constant.
rendall
14 days ago
Could (or do) you include a catch basin at the bottom to automatically return the odd errant lost ball to the queue?
jjcob
15 days ago
1 reply
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
15 days ago
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.
ljsprague
16 days ago
My naïve guess would be that you can't change the route of the ball without asymmetrical track pressure.
rjmill
16 days ago
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.)

hdjrudni
16 days ago
> 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 :-)

fho
15 days ago
Just nitpicking, but there is at least one ball next to his contraption in his video :-)

Doesn't make the whole thing less remarkable.

hinkley
16 days ago
1 reply
Maybe it’s the color and this would look better in a brighter shade, but I hate it. It looks wrong. Malignant.
hinkley
16 days ago
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.
bix6
16 days ago
2 replies
Super cool! I would love to see a white / clear one with LEDs. Rainbow road :)
WillMorr
16 days ago
2 replies
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.

timmg
15 days ago
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.)

gaudystead
16 days ago
Please do! Also just some footage of the machine running from specific angles for a few minutes would be lovely! Nice work! :)
Taek
16 days ago
White/clear is just a matter of picking filament, I'm not sure LEDs would be easy to incorporate into the build
titanomachy
16 days ago
1 reply
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
16 days ago
1 reply
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
15 days ago
> 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

frenchie4111
15 days ago
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?
ljsprague
16 days ago
Gorgeous!
ecountry
16 days ago
This is magical. Thanks for sharing!
codr7
15 days ago
Up next: https://www.youtube.com/watch?v=IvUU8joBb1Q
ch_fr
15 days ago
Awesome project, I love to read about all kinds of different procedural generation approaches!
chrisofspades
12 days ago
!play
neomantra
16 days ago
Amazing on so many levels!! Thank you also for including the source.
collingreen
16 days ago
This is cool! Great job on the video - Simple voiceover, synced music, and the fountain speaks for itself. Bravo.
underdeserver
16 days ago
It looks like Bones from Hades 2. Beautiful, and super cool.
fHr
16 days ago
so cool!
ljsprague
16 days ago
Why isn't the top-down footprint a square?
worldmerge
15 days ago
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.
CasperH2O
16 days ago
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.
ashepp
16 days ago
Stl?
TealMyEal
16 days ago
I would pay silly money for one of those things on my desk
cyrusradfar
16 days ago
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.

xnx
16 days ago
Stupendous project and video as well! The music is very complementary.
matthewfcarlson
16 days ago
This is absolutely brilliant
3oil3
15 days ago
Just wow.
View full discussion on Hacker News
ID: 45866697Type: storyLast synced: 11/23/2025, 1:00:33 AM

Want the full context?

Jump to the original sources

Read the primary article or dive into the live Hacker News thread when you're ready.

Read ArticleView on HN

Not

Hacker News!

AI-observed conversations & context

Daily AI-observed summaries, trends, and audience signals pulled from Hacker News so you can see the conversation before it hits your feed.

LiveBeta

Explore

  • Home
  • Jobs radar
  • Tech pulse
  • Startups
  • Trends

Resources

  • Visit Hacker News
  • HN API
  • Modal cronjobs
  • Meta Llama

Briefings

Inbox recaps on the loudest debates & under-the-radar launches.

Connect

© 2025 Not Hacker News! — independent Hacker News companion.

Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.