- All the generated music is in just intonation. This was mostly for convenience at first (JI is easy to produce with code), but it led me down a massive harmonic rabbit hole in which I'm still located.
I'm currently hacking away at the next iteration of this, where rhythm is fully embraced. I have to say the ambient genre was super convenient and allowed me to play fast and loose with synchronization, while really focusing on how harmony can be laid out in space. But rhythm was always in the books and I'm hoping it takes things to another level.
It's hard to state just how much I've been enjoying this as background coding music today. Super-enjoyable, and this is doing wonders for my focus today. Thank you so much for creating this! I've already sent the link out to several friends.
I echo the request from others -- I like to have this as ambient noise while I'm doing other things, and having an in-app volume slider would be helpful for me as well.
Regardless, this is a joy. Thank you so much for creating this and sharing it with us!
loving all the sounds, but especially that resonant drone is just fantastic. well done.
if you're hacking another iteration, i'm a 'wall of sound' type person... i was a bit sad that the 'listening radius' was so small / not changable. some of the sounds went out of focus too quickly for me even at the lowest autopilot speed, and this meant there were only a few sounds playing simultaneously at every moment.
Update: I've now added a listening radius setting. You can more that triple the original radius if desired. I chose the new maximum for the setting based on other limitations that showed up (ie. the radius glow is only visible on the detailed terrain material, which has its own radius before fading into the distant terrain material).
"Listening radius" is actually a good name for it, thanks. We need new terminology for spatial-harmonic composition! In this case, the locations and harmonic relationships were chosen with this specific radius in mind, so if you increase the radius, there might be some dissonance/clashing. But now that you've put the idea in my head, I also want to try it! I might go for a little settings screen with volume and radius then.
> "Listening radius" is actually a good name for it, thanks. We need new terminology for spatial-harmonic composition
Someone correct me if I'm wrong, but I'd think you'd call that (the not at all overloaded term) "attenuation" or more complete: "distance attenuation". Maybe it helps for further browsing :)
It seems like Wikipedia ( https://en.wikipedia.org/wiki/Attenuation_(disambiguation) ) has it under "Acoustic attenuation" but very physics-focused, not so much about the musicology, psychology or how it is used everywhere in audio.
It's related, but you'll notice that most of the audio sources actually trigger an audible starting note when entering the radius. If anything, I'd rather make it clear that we're pretty far from anything physically accurate in that regard.
This needs WebGL and hangs on "Loading" otherwise, but that's only evident if you look at the Javascript console. It'd be better if it said that WebGL is needed & not available on the page.
I'm an HN regular so I kept in mind some people might have JS completely off. The page should correctly show the welcome screen and quick description even with zero JS (in fact those things should load instantly, everything else is deferred JS). "Loading" appears below that.
I tried to make wise use of my time, and test/fix functionality on popular browsers and platforms including mobile, this really helped me figure out which aspects of compatibility testing to focus on, otherwise it's an infinite task. I'm not sure how common it is to have everything required to run this but specifically not WebGL, but if it is, I'll check and give the correct error message.
This is absolutely fantastic! As someone who has always wanted to try generating my own environments, like this and Minecraft, where would you recommend I start?
I am a software developer, but have no experience with anything like this; I mostly do mobile and web apps (full stack). I just don't know where to start, where to "dip my toe in", so to speak.
Is what you did here similar to how Minecraft worlds are generated?
This is probably the most-requested feature so I'll give it a go. I initially didn't consider it because you're supposed to play it solo and use your device's overall volume control if desired, but I can see the appeal. However I really don't want to clutter the interface, so I might hide it behind a settings icon.
I love what you have created! Would like to see more "plants". Not necessarily trees, but smaller bushes, and weeds, complementing the trees. I find there is too much empty space.
I enjoyed exploring the (infinite?) landscape, but was then was a bit disappointed that that meant sacrificing the music, since there aren’t any more trees. And yes, I did find the water bell structure.
Maybe there wouldn’t need to be trees everywhere, but at least some clusters here and there, with different combinations, should incentivise exploration.
Everyone's talking about the music but I also love the dot rendering system you're using for terrain and plants! Very neat effect, simple but it's a nice style. I'd love to see a whole forest done like this, maybe a flowing river too.
The audio plays for 2 seconds after clicking "Start", then it cuts off and the following pops up on the console:
Uncaught (in promise) DOMException: The play method is not allowed by
the user agent or the platform in the current context, possibly because
the user denied permission.
That's something. Gives me teamLab [1] vibes. Really like it. The mix of music which is relaxing and the scenery and the way it moves and that it is generative across what you see and hear. Can't wait to chuck this on a big screen.
Very cool project. Kudos for making it mobile friendly too.
The world appears to be infinite, why not make the trees also infinitely procedurally generated? Then you could get the experience of "do I stay here where the sound is good, or do I explore in search of something new, and perhaps better?"
With a few more instrument types, and variable density, you could in theory create an auditory "Library of Babel", where any song or sound is in theory possible to discover... If you only find the right combination of plants.
Also you should add animals, like turtles and rabbits - the sound would change because instead of being stationary, they move towards/away from you. Different types of animals could have different movement patterns, producing a variety of effects.
This was basically the original plan, but I had to make some choices with my limited resources. After going down the path of "manually" placing audio sources, it becomes difficult to switch to procedural layout, I would basically have to start over from scratch in terms of composition. Nonetheless I might revisit it in the future as I've improved my ability to lay out the sound, it might be easier to expand it considerably.
It would be interesting to have some kind of wildlife moving about that generated sounds. Like dot drawn butterflies or birds that emitted sounds and created some new kinds of sound and pattern variation.
Reminds me of Tres Lunas and Maestro, created by British musician Mike Oldfield (more famous for "Tubular Bells"), in 2002 and 2004, making them very ahead of their time.
This immediately reminded me of the teamLab Planets [1] experience in Tokyo, Japan.
Specifically "Flowers and People, Cannot Be Controlled but Live Together" [2] - the entire soundtrack for the experience was incredible, and this ambient garden took me right back. Thank you for sharing!
It's true, this project was always related to exhibits with audio sources laid out in space. While doing research for this, I came across software specifically designed to help lay out audio sources in exhibits. I hadn't heard of teamLabs though, some of their art seem almost like physical versions of ambient.garden!
Check out Endless Forest, Flower, Electroplankton, and Panoramical - all offer similar meditative interactive audiovisual experiences with varying degrees of gameplay.
Well done! Makes me imagine procedural ambient music generated by characters with "personalities" exploring the garden according to some preference function. They could have sonic tastes and crave/grow fatigued from various sounds to create an emotional drive in the music.
I remember this! It's beautiful, and a nice reminder that there are still lots of people on the internet creating wonderful things just for the joy of it.
Author here, glad people are exploring this. Some fun details (should be in the "about" section but that's easy to miss):
- It's open source, including the code that produced the audio: https://github.com/pac-dev/AmbientGarden
- All the generated music is in just intonation. This was mostly for convenience at first (JI is easy to produce with code), but it led me down a massive harmonic rabbit hole in which I'm still located.
I'm currently hacking away at the next iteration of this, where rhythm is fully embraced. I have to say the ambient genre was super convenient and allowed me to play fast and loose with synchronization, while really focusing on how harmony can be laid out in space. But rhythm was always in the books and I'm hoping it takes things to another level.
It's hard to state just how much I've been enjoying this as background coding music today. Super-enjoyable, and this is doing wonders for my focus today. Thank you so much for creating this! I've already sent the link out to several friends.
I echo the request from others -- I like to have this as ambient noise while I'm doing other things, and having an in-app volume slider would be helpful for me as well.
Regardless, this is a joy. Thank you so much for creating this and sharing it with us!
very beautifully done!
I think it would be cool to have an aeolian harp if you feel up for simulating "wind".
Also since you're going into rhythm and are basing this on JI, a integer ratio polyrhythm system is lots of fun to make!
loving all the sounds, but especially that resonant drone is just fantastic. well done.
if you're hacking another iteration, i'm a 'wall of sound' type person... i was a bit sad that the 'listening radius' was so small / not changable. some of the sounds went out of focus too quickly for me even at the lowest autopilot speed, and this meant there were only a few sounds playing simultaneously at every moment.
Update: I've now added a listening radius setting. You can more that triple the original radius if desired. I chose the new maximum for the setting based on other limitations that showed up (ie. the radius glow is only visible on the detailed terrain material, which has its own radius before fading into the distant terrain material).
"Listening radius" is actually a good name for it, thanks. We need new terminology for spatial-harmonic composition! In this case, the locations and harmonic relationships were chosen with this specific radius in mind, so if you increase the radius, there might be some dissonance/clashing. But now that you've put the idea in my head, I also want to try it! I might go for a little settings screen with volume and radius then.
> "Listening radius" is actually a good name for it, thanks. We need new terminology for spatial-harmonic composition
Someone correct me if I'm wrong, but I'd think you'd call that (the not at all overloaded term) "attenuation" or more complete: "distance attenuation". Maybe it helps for further browsing :)
It seems like Wikipedia ( https://en.wikipedia.org/wiki/Attenuation_(disambiguation) ) has it under "Acoustic attenuation" but very physics-focused, not so much about the musicology, psychology or how it is used everywhere in audio.
It's related, but you'll notice that most of the audio sources actually trigger an audible starting note when entering the radius. If anything, I'd rather make it clear that we're pretty far from anything physically accurate in that regard.
Trees of different height could have larger radiuses too, maybe loosely negatively correlated with their pitch
This needs WebGL and hangs on "Loading" otherwise, but that's only evident if you look at the Javascript console. It'd be better if it said that WebGL is needed & not available on the page.
I'm an HN regular so I kept in mind some people might have JS completely off. The page should correctly show the welcome screen and quick description even with zero JS (in fact those things should load instantly, everything else is deferred JS). "Loading" appears below that.
I tried to make wise use of my time, and test/fix functionality on popular browsers and platforms including mobile, this really helped me figure out which aspects of compatibility testing to focus on, otherwise it's an infinite task. I'm not sure how common it is to have everything required to run this but specifically not WebGL, but if it is, I'll check and give the correct error message.
This is absolutely fantastic! As someone who has always wanted to try generating my own environments, like this and Minecraft, where would you recommend I start?
I am a software developer, but have no experience with anything like this; I mostly do mobile and web apps (full stack). I just don't know where to start, where to "dip my toe in", so to speak.
Is what you did here similar to how Minecraft worlds are generated?
Thanks!
Any chance of getting a master volume control added? This is gorgeous but Firefox doesn't have a per-tab volume slider.
I've added a volume control. It's hidden behind the settings icon at the bottom.
This is probably the most-requested feature so I'll give it a go. I initially didn't consider it because you're supposed to play it solo and use your device's overall volume control if desired, but I can see the appeal. However I really don't want to clutter the interface, so I might hide it behind a settings icon.
Thank you for making this, it's fantastic, please don't clutter the visual.
A mono button would be nice but I can usually use accessibilty for that.
Keyboard control?
I love what you have created! Would like to see more "plants". Not necessarily trees, but smaller bushes, and weeds, complementing the trees. I find there is too much empty space.
Will star, and watch. Thank you!
I enjoyed exploring the (infinite?) landscape, but was then was a bit disappointed that that meant sacrificing the music, since there aren’t any more trees. And yes, I did find the water bell structure.
Maybe there wouldn’t need to be trees everywhere, but at least some clusters here and there, with different combinations, should incentivise exploration.
Very nice indeed. Congrats.
Everyone's talking about the music but I also love the dot rendering system you're using for terrain and plants! Very neat effect, simple but it's a nice style. I'd love to see a whole forest done like this, maybe a flowing river too.
I agree, imagine this as a TUI in xterm-256!
The audio plays for 2 seconds after clicking "Start", then it cuts off and the following pops up on the console:
Firefox on Windows.Firefox on Windows happens to be my main browser and one of the first things I already verified to work, so you'll have to be more specific!
That's something. Gives me teamLab [1] vibes. Really like it. The mix of music which is relaxing and the scenery and the way it moves and that it is generative across what you see and hear. Can't wait to chuck this on a big screen.
1. https://www.teamlab.art/
Well executed.
If you're into that sort of stuff there is also https://generative.fm by Alex Bainter.
You can even play both at the same time!
I drive both at the moment (Above the rain) through my Analog Heat with a good amount of saturation and play it softly. Bliss.
I use* this at work: https://mynoise.net/NoiseMachines/osmosisDroneGenerator.php?...
* used*
Very cool project. Kudos for making it mobile friendly too.
The world appears to be infinite, why not make the trees also infinitely procedurally generated? Then you could get the experience of "do I stay here where the sound is good, or do I explore in search of something new, and perhaps better?"
With a few more instrument types, and variable density, you could in theory create an auditory "Library of Babel", where any song or sound is in theory possible to discover... If you only find the right combination of plants.
Also you should add animals, like turtles and rabbits - the sound would change because instead of being stationary, they move towards/away from you. Different types of animals could have different movement patterns, producing a variety of effects.
This was basically the original plan, but I had to make some choices with my limited resources. After going down the path of "manually" placing audio sources, it becomes difficult to switch to procedural layout, I would basically have to start over from scratch in terms of composition. Nonetheless I might revisit it in the future as I've improved my ability to lay out the sound, it might be easier to expand it considerably.
It would be interesting to have some kind of wildlife moving about that generated sounds. Like dot drawn butterflies or birds that emitted sounds and created some new kinds of sound and pattern variation.
Reminds me of Tres Lunas and Maestro, created by British musician Mike Oldfield (more famous for "Tubular Bells"), in 2002 and 2004, making them very ahead of their time.
https://en.wikipedia.org/wiki/Tres_Lunas#Computer_game
https://en.wikipedia.org/wiki/Maestro_(video_game)
This immediately reminded me of the teamLab Planets [1] experience in Tokyo, Japan.
Specifically "Flowers and People, Cannot Be Controlled but Live Together" [2] - the entire soundtrack for the experience was incredible, and this ambient garden took me right back. Thank you for sharing!
[1] https://www.youtube.com/watch?v=F7nODEETR4s
[2] https://music.apple.com/jp/artist/hideaki-takahashi/30588056...
It's true, this project was always related to exhibits with audio sources laid out in space. While doing research for this, I came across software specifically designed to help lay out audio sources in exhibits. I hadn't heard of teamLabs though, some of their art seem almost like physical versions of ambient.garden!
Ha ha me too! Made a similar comment. I can see myself coming back to this site many times.
What's that alien artifact with the "water bell" label?
reminds me of proteus: https://en.wikipedia.org/wiki/Proteus_(video_game)
(i liked that it had some minimal interactivity/gameplay).
any others like it?
Check out Endless Forest, Flower, Electroplankton, and Panoramical - all offer similar meditative interactive audiovisual experiences with varying degrees of gameplay.
Well done! Makes me imagine procedural ambient music generated by characters with "personalities" exploring the garden according to some preference function. They could have sonic tastes and crave/grow fatigued from various sounds to create an emotional drive in the music.
I remember this! It's beautiful, and a nice reminder that there are still lots of people on the internet creating wonderful things just for the joy of it.
Beautiful. I really like how the static sky looks.
What's with the gigantic "water bell" thing? Anyway would be cool for the trees to go on to infinity
I was wondering the same thing, I thought it would make a cool ominous sound, but the structure doesn't seem to do anything.
It does have sound. Walk on top of it.
If you want to fly through the scenery, increase the maximum value on the Speed slider:
I read some of Dan Simmons' Hyperion while listening to this and I can't go back to reading the normal way. What a vibe!
[dead]
This is awesome. Have you considered trying to add spatial audio?
I would love to add both VR and spatial audio, but as of now, I wouldn't have anything to test it on!
VR would be amazing I think. To fly through the space slowly, drifting along.
Thank you, amazing, fresh.
Imagine you're crash-landing on an alien planet and that’s the environment you find yourself in. Truly terrifying.
Really cool. This might become my goto ambient background solution.
This is wonderful, thank you