pierrec
This genre of musical sandbox is a really satisfying and fun rabbit hole. You can even take it to production (mainly ambient music production, that is). My favorite for usage inside DAWs is Droplets, which works as a plugin but also has a web version: https://fynthesizer.github.io/Drip/

There are other plugins for this, each with its own personality. For example Bitwig's Ricochet is a totally different take on the same idea, where they managed to make it usable for more rhythmic purposes: https://www.youtube.com/watch?v=WFvIYkTGRzA

zeristor
'Crockery drifts across the surface of "clinamen", and when gentle currents get these white porcelain bowls clinking, French artist Celeste Boursier-Mougenot creates a changing, chiming soundscape.'

https://www.youtube.com/watch?v=RdCutpuUrX4

chaosprint
This is awesome. A great interactive piece that is simple and fun. Love the idea of the random ball spawning.

I seem to have triggered "infinite sample playback" when I stuck the ball in a corner and the audio crashed. One experience I've had with this kind of large sample playback (in SuperCollider) is that by dynamically reducing the volume, it creates an interesting textured sound [1].

Of course for every project using Tone.js I would like to mention one of my project glicol.js which is in active development [2]. It has better performance but needs more use case to find what's needed in the API.

[1] https://github.com/chaosprint/Packing

[2] https://github.com/chaosprint/glicol

dekhn
I happened to be writing a desktop app that does something similar to this; I saw https://www.youtube.com/shorts/lF8fEn20OaU and many related videos, so I wrote up a simple QGraphicsView/pymunk app that implements these. The code is a dog's breakfast and will be under development for some time.

I see some videos which suggest that the developer actually set up the map and the physics such that specific songs get played, although I think there is some trickery to simplify it.

At the moment I'm working on a subproject which is generating the audio sounds for various bumping events, having found musicpy/sf2_loader a quick way to generate samples.

riedel
Reminds me a bit of the 3DS Electroplankton game. Wasn't quite so addictive though. Would be great to have a bit more control to generate repetitive patterns.
thinkling
Nice work! (and hi, long time no see.)

Feature request: if changing a setting added a parameter to the URL (?count=XX&speed=YY), one could save a link to a config one likes and store it as a bookmark.

gurjeet
I've been playing it in the background for about 2 days now, so I think I'll use it in the long term. Hence making these following 2 requests, in case you're still following up.

1. The music stops when the computer screen locks, or turns off, or if I swipe to a different workspace/desktop. Can you make it so that it continues to play music even with display turned off. Just a note that I'm using this on Firefox on a macOS, if that matters.

2. Can you please allow users to save/export/download a configuration (number and positions of circles, number of bouncing spheres), so that they can later upload the same configuration to get their favorite setup back.

w_for_wumbo
This is amazing, it's like what I was trying to build a similar concept recently. (I think the whole AI consciousness conversations are speeding up our understanding of the shared nature of the conceptual thought space in which we all reside.)

I feel like we're getting to the point where we're combining the knowledge of geometry, music, art, maths, optics, biology etc. and we're going to be recreating some of the interconnected aspects of the natural world through the digital realm.

Once we do this, I think we're unlocking the possibility of a symbiosis with silicone-based life, where our discoveries work to lighten the path through the void of the unknown.

quercusa
Very fun. Reminds me of the old Flash game Boomshine [0]

[0] https://www.albinoblacksheep.com/games/boomshine

EZ-Cheeze
Yooo I been wanting to do the same for this https://nextrenaissance.art/society.htm

It's billiard-like and makes complex patterns over time that might sound coherent and interesting in various audio mappings. Runs best in Edge

https://github.com/mnenoff/society-htm/tree/main

dinglestepup
Great tool!

One feature that I miss in many generative music experiments is the ability to export the generated MIDI clip. Could be a different target audience, not sure, but being able to export and re-use a pattern adds a lot of appeal.

An example that I love to show is this poly rhythm generator: generatorpoly.ozieblowski.dev

A bit off-topic. Does browser MIDI implementation allow syncing across tabs with MIDI clock? It would be interesting to develop an open way to sync all these fun organic generators.

mock-possum
Have you ever looked at vcvrack.com? It’s free modular synth software, and I’ll bet the community would love to see something like this developed into a module.
ameesdotme
Had a lot of fun with this. Also a good laugh when trapping some balls and hearing the midi-engine go apeshit and eventually crashing.
gcanyon
I made something similar to this in a quicktime movie (once upon a time they were interactive) back around... '98? I wish I still had a copy of it :-( I wonder if it would still play/run?

It was made with LiveStage(? -- and be prepared if you google that) from TotallyHip Software, as part of a promotion for them.

erwincoumans
Nice! Reminds me of the Op-1 Tombola sequencer: https://youtube.com/watch?v=SHoDUCAd4-I&pp=ygUMb3AtMSB0b21ib... that triggered midi notes on collision
Liftyee
Fun little sandbox. Interesting how when in "yin/yang" mode, the balls seem to stop changing state when the tab is not in focus - is this a feature? I only found this by filling up the screen with a cacophony of balls, and then switching tabs.
jcims
This is a lot of fun!

Reminds me of the 'polyrhythm' genre of videos on youtube (eg. LucidRhythms)

One fun thing to do is load the canvas up with a bunch of balls really close to each other then click the yin and yang icon which causes them to change state when struck.

Adding some kind of gravity might be fun.

tombert
There was a free program years ago called "Ball Droppings" that was fun to play around with. This reminds me of that.

https://youtu.be/G6IKsek8DKE

interglossa
I am surprised no one mentioned otomata: https://earslap.com/page/otomata.html
o_v_o
I can't seem to enable MIDI output or export any MIDI data; I've never used something that can output MIDI data from a browser. Any help/advice on how to do this?
block_dagger
Cool! I will try this out as a layer in my live ambient set later today.
dt23
Wow, this is super cool. The whole experience of interacting/watching/listening to it is very relaxing and harmonious-feeling. Thanks for sharing! :)
cantSpellSober
Awesome! Next step is mash it up with Pong and Guitar Hero so you have to use a paddle to hit the balls in the right direction to play a song.
Ylpertnodi
Had this open on three different browsers, and three different modes - for the adventurous.

"Trapping the balls", has never been so much fun.

Fantastic - thanks.

hkon
What is happening when I lock some of the balls inside and then the sounds just stop. Is something overloading?
Biganon
On Firefox mobile, the note resonates 0.5 second after the collision, making the experience very frustrating
Ylpertnodi
Fantastic. On mobile atm, so midi ill investigate later. Have you considered making a .vst3 plugin?
bergwerf
Love it! One idea is to vary the intensity (volume, duration) with the collision momentum.
groovity
Doesn’t make any sound on Safari iOS. Yea I clicked the loudspeaker
dr_kiszonka
Fun! What do the yin yang button and the one to the right of it do?
riiii
I like this. I'd love to be able to move the red balls too.
fallinditch
Very nice, satisfying indeed. Will be generating some MIDI!
bozhark
Could you add accelerometer as input method for phones?
DidYaWipe
Moody "limited series" soundtrack: DONE.
makach
Aahh, I used to play that song on the piano...
bogwog
Cool, but it really does just sound like a bunch of random noises. I think it'd be more interesting if the balls were regular polygons instead of actual circles, since the reflections would be more predictable.
breck
Love it.

Any chance you are going to share the source code?

windows2020
Nice. I trapped them all in a corner.
qwertox
Ends up looking like a constellation.
doubloon
great job
otherayden
This is awesome lol, very fun to trap the ball in a corner
parpfish
“Music” or just “pleasant background noise”
teleforce
Fun fact, it's reported that the new Rolls-Royce Spectre 2024 turn signal's sound was created by combining the sound of finger nail tapping the car's aircond vent metal and the sound of a couple wine glasses touching. The resulting turn sound signal remarkably turned out to be exactly the same as normal turn signal in any other car, pardon the multiple puns.