I was gonna say, that's actually a pretty useful way to make sure your functions are all nicely decomposed rather than trying to cram everything in, train-of-thought style.
iirc there is a part about how oxygen actually "looks more blue than violet" too, but I think he summarized things in a quick and good way that clearly passed the message that "there are several reasons that contribute to the same effect" (not to mention that iirc it was also debated whether what I mentioned was to such a small extent it could be considered *entirely negligible* in terms of the sky's color)
"i have long since lost any faith in the code i write ..." "my favorite programming trick: calling a function that doesn't exist and worrying about it later" "that sped things up immensely, with the minor tradeoff of completely ruining everything." these feel like personal attacks
I can absolutely relate to this line's accuracy as a college Robotics major and hobbyist game developer. Nothing, not even a seemingly basic optimization, ever works exactly right the first time. In my experience, only one third of programming is actually devising the logic and writing the program. The remaining two thirds are roughly equally split between debugging and tweaking the numbers. I've had this concept apply to every single project I've worked on from basic Pong clones to turn-based RPG's to autonomous navigation.
The most mind-blowing part about these shaders is that they look good both above- and below their "surface". This one looks great from space and from the planet surface, and the water one looks great both inside- and outside the water. Absolutely boggles my mind.
That's because Sebastian bases his solutions on actual physics instead of going for easy surface level solutions. The man deserves all the credit he gets and then some!
@@masamainio4052 Looks great, but is not based entirely on real physics. He did use some tricks to make it easier. The red colors should not appear when looking from outside the planet. Still awesome work :) he really inspires all of us
@@_Killkor Ha. No one is going to touch NMS planet generation for a long time. Everyone's height map performance barely runs better than NMS having not only more points of data in the same FOV. But also voxelates the entire surface. All while running almost as well as even the best competitors. That is seriously impressive optimization. NMS is easily the best optimized game of this decade. It should not run anywhere near as well as it does with that kind of real time terrain generation. All while having graphical affects on par with anything else out that isn't ray traced. And it runs on consoles AND VR quite flawlessly? My very modest 1060 keeps it solidly within max reprojection fps better than any other game I can't run at the full 80 on my rift. Hahaha, no ones going to get close for a long while.
Next video: "I don't really like how the stars are not realistically generated so I'm writing this quick program to simulate the formation of the Universe using these papers I read about the fundamental composition of space and time."
@Commep "So I'm not really happy with how the computers made in the realm of man aren't up to everything we need to do so I wrote a quick program to self optimize its own hardware- aaaaaaaaand it's taking over..."
@@EzeKry "but soon I realized it was just a misplaced + sign and after I fixed that the machines were replaced by a sentient and mostly atheist life form. It's better when they don't know"
actual mom: "blue is the shortest wavelength of light so it scatters when it hits the atmosphere coloring the sky blue and as the sun goes bellow the horizon (blah blah blah) the range of light the reaches the atmosphere and scatters changes and turns the sky different colors (blah blah blah)." wooo science
Your ability to visualize and present concepts of all kinds is actually one of your strongest points. The editing and visual elements combined with music infused with your personal touch (hand drawing explanations) is a real highlight to everything. Regardless of topic, I'm sure you could make it interesting. I just happen to love your coding adventures.
And in theory if you could know enough about everything, break it all down mathematically, and calculate it all from the big bang, you'd be able to know the future through every cause and effect chain
@@EKIANandWolvesGaming nah I get why that seems to make sense but there are truly random events happening all the time. The spin of a quark for example, when it is formed
@@EKIANandWolvesGaming I think one of the main problems with that theory is that you cannot know / have complete precision of natural values (acceleration, etc.), and those precision errors will cause prediction errors over long periods of time due to the butterfly effect. Though perhaps it could be precise enough to at least be accurate for a few billion years...though of course it would still require an impossibly large amount of processing power.
No kidding. Our reality functions like one of those tutorials where the dev reads through it halfway, misunderstands/misapplies half of that, and wings the rest.
Hey everyone, hope you enjoy this little video about atmospheres! UA-cam's compression was not so kind on the results (they came out a bit blocky and bandy) so I've put together a little demo build where you can play with some of the settings yourself and see the results. It's available here if you're interested: sebastian.itch.io/atmosphere-experiment Some notes: A number of knowledgeable people have pointed out in the comments that reality is not as simple as my little diagram around 4:35, and that light does not literally wiggle up and down like a wave, so please note that my diagram is incorrect! The project files from this episode are currently in early access for patrons of the channel, so if you'd like to experiment with those (and support my work in the process) you can download them here: www.patreon.com/posts/project-files-40730130 There is a public repository for this on-going Solar System project over here: github.com/SebLague/Solar-System, which currently includes the gravity simulation and procedural planets from the previous two episodes, and the atmospheres will be added to it on September 15
@@kurtisgibson2929 Aah yes, the AI simulating an advanced civilization going to war against an advanced form of humanity. Of course it has. Where again?
I mean in projects where you're working with other people yeah just put the function in and worry about someone else writing that code. However in single person projects it's up to personal preference, do want to finish your train of thought before moving onto the smaller but still important things, or do everything as it's coming up
Mme. Veronica *pretends to understand* Oh yeah totally I saw a video on that it was by that one guy who’s good at this right yes I know more than you okay not really can you elaborate
Just start with a simple map, something achievable with your skills. You can start with the course "procedural map generation" with Brackeys. Then increment your project, still with something doable, etc. Each time you'll add something, you'll get better, and so will be your project. And one day... your virtual world may become something wonderful :)
He's so calm explaining all of this, I can't imagine he doesn't get immensely frustrated like me trying to figure out these problems and having to do ridiculous amounts of research to solve them
Right? He says it like he knows exactly what he has to do, exactly how to do it, and why he has to do it that way all the time. It would be so interesting to actually just watch him do it
No joke tho, he had a mini series on writing a neural network that was left unfinished. I bet we'll finally get the long-awaited conclusion as he puts in life forms!!!
I can't wait until he eventually adds every single coding adventure into this one project. Simulating ecosystems, boids in the form of procedurally generated fish, procedurally generated animals, caves, ray tracing reflections, hydrolic erosion. The whole works. He's just gonna simulate the world at this point
Not: Heres quantum mechanics But: Theres this thing called a photon. It is the light you see and ... [LOTS OF DETAILED TALKING] so thats quantum mechanics. IMO they can but you just need to take so much time explaining it gradually that they already are a year older or something. Like how you dont learn everything in school in 1 year but 12
Wow I didnt know Star Citizen made so much progress! Jokes aside awesome work my man you always always shock me. Thank you for sharing your knowledge Cheers!
Now I know how my dog felt when I tried to explain spreadsheets to him. Hey, he was really eager to find out why we couldn't play together that instance
Others showing us how we can use Unity. Sebastian is showing us WHAT WE CAN DO with Unity. Every priceless journey starts with imagination. Absolutely wonderful! :)
Me: uses a inverted sphere with a unlit transparent material for the sky Sebastian: makes a 20 minute long video explaining the shaders and scripts he wrote
Sebastian Lague is a 10th-dimensional being who designed our entire universe for a school project and is now role-playing as a human to give us a tease of the entire process. Erosions, ecosystems, oceans, and now the Universe. Thank you for this video!
@@SebastianLague Please keep up the quality, man. I'd ask for that request, and also thanking you for your efforts. *Note:* I'd like to resend similar messages again in the future videos.
"That sped things up immensely, with the minor tradeoff of completely ruining everything" is pretty much the slogan of every first optimization attempt ever xD Your dry sense of humour is such a joy to behold, please don't ever lose it!
If I was half as smart as you... I would currently feel half as dumb. That was not only an amazing tutorial, fun experiment but also shows just how good you are at math and programming and research apparently! Great video... Makes me really appreciate all these great games we have today.
He is not smarter than you. How can you say that if you haven't even tried to make a game? Go Download Unity Google "how to make earth in Unity" Google "how to add lightning in Unity" And after making a game make a tutorial like this and post on YT
I really love this journey (which I joined an bit late by the looks of it), not only from a programming perspective, which I absolutely love, but also because of how you explain the physics behind it in the clearest way possible
This actually isn't completely unattainable. For a game, you wouldn't actually need to simulate the entire universe at the same time, just the region close enough that the player that they can meaningfully observe it. The rest can just be loaded/generated "on the fly" as needed, or unloaded to save space (pun intentional) if it is no longer inside this region. Methods like this are often used to enable games to have extremely large, and sometimes practically infinite, worlds (or universes in this case) that couldn't possibly fit in memory in their full forms; Minecraft is probably the most famous example. I've even seen Sebastian implement systems like this on other projects, so he could easily simulate an entire fictional universe.
@@andrewsprojectsinnovations6352 Yes you're right. The program SpaceEngine has already done something like this. (I'd suggest checking it out. The old versions are free I think or you can find some footage on yt.)
I declare a function, make the function and then the program decides to not let me call the function Like 2/3 functions can't be called because the program doesn't like them, while the others have no problems
The more I watch your series on making this solar system, the more I appreciate what Maxxis went through creating SPORE. That might be mostly because Spore doesn't look too far off from what you've made thus far, though with today's tech and such you'd likely be able to make something that looks a bit better. In any case, loved the video.
These video's are about what he want's to explore, things he wants to try. I have tried doing similar things on a smaller scale and honestly the biggest joy in some ways is when it doesn't go right. It's easy for someone with more experience to produce a "perfect" video that doesn't show the mistakes or his frustration. By showing you all that he is first saying that you probably will never write perfect code first time, but, also that mistakes happen even when you have more experience
At the end of this series he would say: "And this is how i created the earth, the universe and you. You are just thouthands lines of code and living in my simulation, watching those videos right now".
I’ve never sat on my couch before and cheered out loud about code like it was a sporting event. This is brilliant. I was moved. Also had to google what a float3 was, haven’t seen that yet. The results were beautiful both visually and scientifically. An intersection of art and science. Also, you just taught me why sunsets are fiery orange. This might be the greatest coding video I’ve ever watched. Wow. Just... wow...
there are three skill to be an expert programming : 1 : experience programming 2 : understanding physics _But most importantly..._ 3 : *talking fast like a rapper* (11:12)
@@SoulSukkur I would guess that the Outer wilds planets are at least partially procedurally generated at some point and then they went in and modified them.
@@perfredelius8060 I watched the making of documentary from noclip and they didn't suggest anything like that. they discussed how they had to design Timber Hearth as layers of spheres, and then they had to overhaul that for the Ember Twin, which has more complex geometry. everything in that game was made deliberate. they talked about how annoying it was to make brittle hollow, which has the highest level of surface detail. they had to model each of the flat bits individually. Honestly, i don't see how there would be any design benefit to procedural generation. if you want to have a way to generate as many unique-but-similar moons as you want, then go ahead and make a random crater generator. but Outer Wilds only has 3 moons, and only one of those has craters. designing systems to procedurally generate things you'll only need once is so inefficient. just make a sphere and sculpt some dents into it. no math, no parameters, full artistic control.
He just made a planet with atmosphere and sunsets that look so amazing and real. It's awesome to have this sort of your own world, and I hope you'll add more stuff to it.
This has to be one of the highest quality channels on youtube. All the videos are educational, inspiring, really engaging and shows a thought process of tackling nearly any problem. Absolutely love this content.
15:35 ... awww... that loooooooks so gooorgeous xD ..... i love it with these nice sunset colours on the side. Who says coding cant be art. this is ART! :D
People have already done these things.. he learns from those people.. Pretty sure programmers do very complicated things like this. I am not saying it isn't amazing but he isn't the one to come up with everything, he learns it from other sources too.
@@elythas128 I am a professional developer. Very few devs have the ability to not only abstract the maths problems this well, but to also explain it so concisely... And I work with an ex-maths teacher now programmer...
@@YouReyKarr Yeah sorry I responded to the wrong comment, well no, it was more confusing, I responded twice, you responded to my response, but I thought the original comment was another one, sorry for the misunderstanding. Also I am not sure why would you degrade me when I did not attack you in any way, sorry if it seemed so. (And no, I don't think I could decipher a university paper, not without prior knowledge.
It would be really hard though... erosion is a static effect and requires you to store all the procedural data somewhere, and raymarched clouds are extremely computationally expensive.
Electromagnetic waves don't "undulate" through space like that. We say they're transverse waves because they are formed by electric and magnetic fields that point perpendicular to the direction of travel. The wave itself may have a volume, or it may be very narrow, depending on the light source, dispersion, that sort of thing. What's actually happening is that the air molecules are being polarized by the oscillating electric field of the light traveling through it, which makes them behave like tiny little antennae and reradiate. These molecules are like mass-spring systems; they have a natural frequency they "like" to oscillate at. This resonance frequency would be the frequency that would result in the most efficient scattering. Well, it turns out that for air this frequency is actually in the ultraviolet, which means the "higher frequency = more scattering" rule works, but only for visible light. If the sun output more energy in higher wavelengths, and your eyes were sensitive to those wavelengths, you might expect the sky would be purple.
Well said. You can actually see that uv light is scattered more in practice if you use a uv camera. If you were able to see uv light, the world would be extremely misty and thick as the atmosphere is scattering the light a ton.
This is so cool. I don't remember how I found your channel, but I'm so glad I did. I've been trying to learn to do this stuff in UE4, and your videos and source, although in a different language, have been incredibly informative.
Went into this thinking it would be about setting a mood or a tone. Got a whole lecture about the scientific atmosphere of celestial bodies instead. That was amazing!
"To calculate the optical depth, I use my favourite programming trick: calling a function that does not exist and worrying about it later." 7:42 These videos are entertaining, educational, inspiring and a pleasure to watch, all at the same time. This channel is a gem (extra points for the super cute dog on the profile picture)
I absolutely love the way you have done this series, not only is it fascinating to watch and see what you managed to achieve, but as a coder also interested in these topics, it is very valuable at pointing out various techniques used, and even explaining and visualizing them to a degree to make delving into the topics easier(plus I know what to look up in order to get full details on a topic). So, thank you for these, I look forward to seeing your future progress and see what you manage to do with it moving forwards.
Bugs that i've found so far(in the demo): 1. Stars are visible through the ocean 2. Scattering doesn't apply on the ocean reflections/glares 3. The ocean reflections/glares are visible even when the sun is under the horizon
Oceans aren't really there. It's all just a shader based on planet's centre position. Sebastian would need to make them more of a "physical" in-game object over just a screen space shader
Wow, this is not only phenomenally cool code but has also helped me understand more about how light scatters through our own atmosphere as well!! Love the content, keep up the great work!
What a great guide and the best part about it was how thoroughly you explained everything. So thoroughly in fact, that I noticed some parts that I thought I could maybe improve even. I'm itching to try it out myself now. Really inspirational!
for some reason I can't stop watching your videos... it really puts into perspect how much I have to learn as a new game developer with only a couple tutorials under my belt. can't wait for the next video. :)
10:10 The usage of length there feels like something that could actually get a rather sizeable performance gain from using length2 instead to avoid the sqrt (with the following division obviously using the pow2 (or rather x*x) as well to compensate), as I have a feeling this method might be called _quite_ often every frame.. (once, per every scatter point, per pixel, per frame, for just that direct call. Then opticalDepth further nests yet another loop :p Though this latter part is thankfully avoided with the optimization introduced later on). *_Edit:_*_ So apparently the gain of avoiding sqrt is not that significant on modern gpu's, costing effectively only 1 cycle on average. kudos to a reply for informing me :)_ 13:25 I am always amazed at how much effort you seem to go through in making tools to help explain stuff, liek that interactive slider. Granted, I don't know if it is an actual tool you screen-captured, or just vfx animated and added in post, still, it seems quite high-effort to me either way. A few I am sure are actual tools (like the sliders for clouds or in this video, for sun position and shader values). The animated graphs (ie. 14:40) are likewise appreciated things that seem quite high-effort for no other reason than to help explain in the video. 15:40 looks nice! Though I am unsure if the red parts near surface makes sense here :p The sun is as far as I can tell somewhat perpendicular to the direction you look at the planet, so it is not like how a sunset is red, exactly. The light at those positions _does_ travel further, so it is not entirely odd and might just be that the intense scatteringStrength is what creates a result different from what I would expect. But I would expect blue anyway... Or maybe my estimation of the angle is just off (nevermind that, later we see the red bands even with the sun behind us. This _definitely_ feels somewhat wrong, if a bit like cooler-than-life "its a feature not a bug" territory). 18:00 the celestial ball with the stars painted on it (that takes the place of a skybox) is honestly quite good looking, which is amazing me when I consider its simplicity. I particularly like how it essentially is a literal take on some old myths/beliefs :D It will obviously have issues when you have more than one planet (unless _extremely_ large radius and centered on the sun - or player - instead of planet, which feels like a recipe to invite floating-point errors), or allow the player to fly around and through it. As for further reading, I am sure you have already looked at this, but I know there are some mods for KSP specifically to improve the scattering. Dunno how much papers/guides there are to read, but fairly sure there is source-code (for unity no-less!) if you are interested. That said, I only know of the mods existence, can't vouch for their quality :p
I tend to keep all my calculations as r^2 unless I'm drawing the object. Most force calculations and distance calculations use r^2 so its handy to avoid pow and sqrt
I looked up what hlsl uses for length2/lengthSqr, seems there is no such alias, and you are expected to use dot instead (`dot(v,v) = |v|^2`). @@oblivion_2852 Exactly, and the few pow/multiplications you need to do (like on planets radii so you can compare it to the r^2 values) only has to be done once and can be stored as a field alongside the regular values. @JoonBoon thanks? :)
sqrt is actually really fast on gpus. On nvidia hardware it is implemented as rcp(rsqrt()) wich are both native instructions on the SFU. While SFU instructions are only quarter throughput they do not block the regular fpu instructions and as such cost you effectively only 1 cycle on average. AMD has an equivalent to the SFU since RDNA too.
"my favorite programming trick: calling a function that doesn't exist and worrying about it later"
You're my hero dude lmfao
I was gonna say, that's actually a pretty useful way to make sure your functions are all nicely decomposed rather than trying to cram everything in, train-of-thought style.
SS2Dante oh for sure, I do the same thing
I tend to do the opposite. Write a function, forget to call it and wonder why it's not working.
@@Trezker lol me too
@@Trezker There are two kinds of people
When he accidentally makes the best lesson on why the sky is blue.
yeah, and I'd never have thought about why the sky turns red when the sun is low
Ha - was thinking the same thing.
iirc there is a part about how oxygen actually "looks more blue than violet" too, but I think he summarized things in a quick and good way that clearly passed the message that "there are several reasons that contribute to the same effect" (not to mention that iirc it was also debated whether what I mentioned was to such a small extent it could be considered *entirely negligible* in terms of the sky's color)
Sebastian’s videos are more tutorialish than one with “tutorial” term in titles!
I think I will show this to my scienze teacher 😂
"i have long since lost any faith in the code i write ..."
"my favorite programming trick: calling a function that doesn't exist and worrying about it later"
"that sped things up immensely, with the minor tradeoff of completely ruining everything."
these feel like personal attacks
I know right. I didn't need to be called out like this but here we are.
@@DigitalJedi This is calling out every programmer since the dawn of time
They are broad personal attacks against programmers
i do the second thing alot
I use Godot and whenever I try to do the second the program freaks out and highlights the entire line bright red for me to see.
"that sped things up immensely, with the minor trade-off of completely ruining everything"
The story of my programming career right there.
I lost it at that line.
I can absolutely relate to this line's accuracy as a college Robotics major and hobbyist game developer. Nothing, not even a seemingly basic optimization, ever works exactly right the first time. In my experience, only one third of programming is actually devising the logic and writing the program. The remaining two thirds are roughly equally split between debugging and tweaking the numbers.
I've had this concept apply to every single project I've worked on from basic Pong clones to turn-based RPG's to autonomous navigation.
@@ovrsurge4689 So did I
When a joke ironically describes programming in general
The most mind-blowing part about these shaders is that they look good both above- and below their "surface". This one looks great from space and from the planet surface, and the water one looks great both inside- and outside the water. Absolutely boggles my mind.
That's because Sebastian bases his solutions on actual physics instead of going for easy surface level solutions. The man deserves all the credit he gets and then some!
@@masamainio4052 Looks great, but is not based entirely on real physics. He did use some tricks to make it easier. The red colors should not appear when looking from outside the planet.
Still awesome work :) he really inspires all of us
When you program good, code will work even in situations you didn't plan.
@@AkiRa22084 i do not think that is how it works, filthy weeb
Bruh So what you're saying is that you don't program good.
everybody gangsta until he makes no man's sky 2
He already destroyed Spore's planet generation in the previous episode, so No Man's Sky is for sure next on the list.
More like Outer Wilds 2
@@_Killkor Ha. No one is going to touch NMS planet generation for a long time. Everyone's height map performance barely runs better than NMS having not only more points of data in the same FOV. But also voxelates the entire surface. All while running almost as well as even the best competitors. That is seriously impressive optimization. NMS is easily the best optimized game of this decade. It should not run anywhere near as well as it does with that kind of real time terrain generation. All while having graphical affects on par with anything else out that isn't ray traced. And it runs on consoles AND VR quite flawlessly? My very modest 1060 keeps it solidly within max reprojection fps better than any other game I can't run at the full 80 on my rift. Hahaha, no ones going to get close for a long while.
orginal no mans sky was bad
@@burrdid at release it was but with updates it really improved and became fun again.
Next video: "I don't really like how the stars are not realistically generated so I'm writing this quick program to simulate the formation of the Universe using these papers I read about the fundamental composition of space and time."
"Ok, now let us run the simulation towards the big bang, and see what's happen"
"Well seems like it doesn't run at usable framerates so I'm going to 'borrow' a supercomputer"
"ho, a bug"
@Commep "So I'm not really happy with how the computers made in the realm of man aren't up to everything we need to do so I wrote a quick program to self optimize its own hardware- aaaaaaaaand it's taking over..."
@@EzeKry "but soon I realized it was just a misplaced + sign and after I fixed that the machines were replaced by a sentient and mostly atheist life form. It's better when they don't know"
This was so interesting, and the result is absolutely stunning! Looking forward to the next one man.
Thank you :)
I bet you can't make atmosphere with Unity's particle system!
Can you make a space game (or you can’t do that)
Go back to making Karlson you beautiful bastar
@Kwame Opoku I like how you spelled out "question mark" and then used a question mark
"That sped things up immensely, with the minor trade off of completely ruining everything." Coding4lyf my dude.
Son: *"Mom, why's the sky blue?"*
Mom: *"It was a free skybox on the asset store. Don't judge me like that"*
*Child:* Mom? I want an atmosphere like this, to be procedurally generated!
*Mom:* We have an atmosphere at home.
*Atmosphere at home:* 🔵
literally every other atmosphere: ⚪️🟠🟡🟢🟣🔴
actual mom: "blue is the shortest wavelength of light so it scatters when it hits the atmosphere coloring the sky blue and as the sun goes bellow the horizon (blah blah blah) the range of light the reaches the atmosphere and scatters changes and turns the sky different colors (blah blah blah)."
wooo science
When your dad randomly mary random girl from party
Dude your a fuckin genius
Next up:
Coding adventure: Mining
Coding adventure: Aliens
Coding adventure: Turning this into a steam game and selling it.
I would buy it.
No mans sky 2.0
@@apersononlineyes6554 Me too
This guy is making no Mans sky all by himself
Procedural animal life
Plot twist: this guy is god and he is just uploading dev logs for the universe.
He's creating a new universe
_He's bored with our Universe. Oh no..._
@Mega why is that so true
@killkor he's aking this one for the "galactic society" expansion cause the one we have right now is boring
@@_Killkor That would explain the events that happened in 2020
Have you downloaded the new update? The atmosphere is now green!
Moral of the story: If you can't model great and beautiful stuff, just procedurally generate them.
As easy, as that...
And God said, "calculateLight(N, N, N)", and there was light.
best comment ever.
Bro xD... Yes!
And it was good
Love this
@@ArcheoLumiere But not at first try !
"Its actually quite simple" *proceeds to begin speaking mandorin*
mandolin?
@@jerry_mandarin mango
Maggie
i think its mandarin
Let me put it in a language you can understand 11:12
This channel is so freaking inspirational. Now I want to make a game...
Same here though I don't know how to do it
Do it
@@boomboompower Does a roblox game count?
@@SDGAMER-sg9js
Baby steps
Dont overscope
Watch youtube videos like Brackeys
Dont do a udemy course
@@GenusDev yes, since they are games
So "Coding Adventure: The Universe" is slowly but surely becoming reality...
Wow 105 likes and no replies
Served13 why wow?
I really hope it does become reality
soon: coding adventures, coding a God creating a universe
Nah mate we already have spore for that...
Me, who never coded a single code, the entire video: "Yea, I guess that makes sense".
try it! it's not that hard if you had a guide
Did you start? :P
@@electronx5594 he should
@@teobellverwhite3562 what do you recommend?
@@mealsome7793 i recomend python for begginers
“That sped things up immensely, with the minor trade off of ruining everything”
The story of my life.
Lol. I love this line
I felt that
@@verified_tinker1818 You beat me to it XD
I'm a physicist and this serie is one of the most beautiful things I've ever seen.
How good are the formulas used in this video?
You don't have to be physicist to admire beauty, do you? )
@@f23anone82 but if you can admire a physic simulation as a physicist is has to be great
Your ability to visualize and present concepts of all kinds is actually one of your strongest points. The editing and visual elements combined with music infused with your personal touch (hand drawing explanations) is a real highlight to everything. Regardless of topic, I'm sure you could make it interesting. I just happen to love your coding adventures.
This stuff just makes me realize how crazy complicated real life is
Every other person you see is as real and complicated as you. Sometimes i refuse to believe this because of how insane it is
well we are a bunch of atoms that are attracted to each other and not a single object , that's what messes with my brain XDDD
And in theory if you could know enough about everything, break it all down mathematically, and calculate it all from the big bang, you'd be able to know the future through every cause and effect chain
@@EKIANandWolvesGaming nah I get why that seems to make sense but there are truly random events happening all the time. The spin of a quark for example, when it is formed
@@EKIANandWolvesGaming I think one of the main problems with that theory is that you cannot know / have complete precision of natural values (acceleration, etc.), and those precision errors will cause prediction errors over long periods of time due to the butterfly effect. Though perhaps it could be precise enough to at least be accurate for a few billion years...though of course it would still require an impossibly large amount of processing power.
After simulating solar system..... Sebastian begins the journey to make his own UniVerse
DAMN
That apple pie isn't going to make itself.
he's already taking the procedural route. we know where that leads.
Coding Adventure: Conscious Life
Uncle Randy that would be quite the project XD
What I love about this channel is the fact that we get a whole background course in real world physics before he makes anything.
This seems like a tutorial for the first 7 days in the job of an omnipotent entity.
Yes
So... a game developer?
No kidding. Our reality functions like one of those tutorials where the dev reads through it halfway, misunderstands/misapplies half of that, and wings the rest.
Didn't he rest on the 7th day?
Underrated
You are insanely talented sir. Physics, math, shaders, coding, and it all comes in a very smooth and entertaining package. Big fan.
Hey everyone, hope you enjoy this little video about atmospheres! UA-cam's compression was not so kind on the results (they came out a bit blocky and bandy) so I've put together a little demo build where you can play with some of the settings yourself and see the results. It's available here if you're interested: sebastian.itch.io/atmosphere-experiment
Some notes:
A number of knowledgeable people have pointed out in the comments that reality is not as simple as my little diagram around 4:35, and that light does not literally wiggle up and down like a wave, so please note that my diagram is incorrect!
The project files from this episode are currently in early access for patrons of the channel, so if you'd like to experiment with those (and support my work in the process) you can download them here: www.patreon.com/posts/project-files-40730130 There is a public repository for this on-going Solar System project over here: github.com/SebLague/Solar-System, which currently includes the gravity simulation and procedural planets from the previous two episodes, and the atmospheres will be added to it on September 15
Yes
youtube: video was uploaded 4 minutes ago
also youtube: comment was posted f i f t y m i n u t e s a g o
Have been looking forward to another video!
Yes this is awesome! Love it!
I would love to see how collisions with other planetary and asteroid bodies act.
Coding Adventures in 5 years: So today we will be watching our generated Alien civilizations fight against the multi-galaxy humans.
Not as hard as it sounds
Stellaris...
@@kurtisgibson2929 ...
@@asyncxeno i know because it's been done
@@kurtisgibson2929 Aah yes, the AI simulating an advanced civilization going to war against an advanced form of humanity. Of course it has. Where again?
This is the fourth time I've remembered this video and looked it up again just to watch it again
13th for me
Love this series! It's just incredible to see his process and everything come together so perfectly in the end
Sam Hogan Thanks! :)
I don't wanna be that guy but... "WhAt aRe yoU DoiNg hERe"
@@chimitrash2966 enjoying quality content? UA-camrs are humans too.
@@chimitrash2966 what he can't learn if he is a UA-camr?
@@SebastianLague um but what i want to know is how i Can play this beatiful work of art for my self because ive always enjoyed open adventure games
Sebastian: I'm going to do something a little gross.
me who knows nothing about coding: How dare he.
I mean in projects where you're working with other people yeah just put the function in and worry about someone else writing that code. However in single person projects it's up to personal preference, do want to finish your train of thought before moving onto the smaller but still important things, or do everything as it's coming up
@@mme.veronica735 ok
@@dazza2350 lol
Mme. Veronica *pretends to understand* Oh yeah totally I saw a video on that it was by that one guy who’s good at this right yes I know more than you okay not really can you elaborate
that's math though not coding
This makes me feel like I'll never be an even decent hobby programmer.
The best I can do is make a barely functional pointless Python program every few years
Just start with a simple map, something achievable with your skills. You can start with the course "procedural map generation" with Brackeys. Then increment your project, still with something doable, etc. Each time you'll add something, you'll get better, and so will be your project. And one day... your virtual world may become something wonderful :)
@@LordxGx07 this makes me remember how nice the internet can be sometimes
thank u internet stranger, im inspired now:)
I don't think most programmers could do this without some research
I can normally grasp a basic concept of how some code works, what this code is doing is beyond me.
He's so calm explaining all of this, I can't imagine he doesn't get immensely frustrated like me trying to figure out these problems and having to do ridiculous amounts of research to solve them
Right? He says it like he knows exactly what he has to do, exactly how to do it, and why he has to do it that way all the time. It would be so interesting to actually just watch him do it
I'm sure he gets frustrated while actually coding it. We're just seeing the result
@@quinnhart7678 ye
@@quinnhart7678 r/wooosh
@@personwatchingthings1354 r/wooosh
Next up, Coding Adventure: Self Aware Lifeforms
Ha, I was just about to comment that
No joke tho, he had a mini series on writing a neural network that was left unfinished. I bet we'll finally get the long-awaited conclusion as he puts in life forms!!!
unappreciated comment
I can't wait until he eventually adds every single coding adventure into this one project. Simulating ecosystems, boids in the form of procedurally generated fish, procedurally generated animals, caves, ray tracing reflections, hydrolic erosion. The whole works. He's just gonna simulate the world at this point
With that setup he could also be able to simulate death of his PC
how he gonna fit chess in there
@@solarisNT-v4j a feature of the game just add a chess board
@@solarisNT-v4j the game is free, provided that you beat his chess AI
@@solarisNT-v4j a minigame within the spacecraft perhaps
Kid
"Mom why is the sky blue?"
Coolest Mom ever
"I don't know, let's make one and find out shall we"
i wnat that
That toddler is about to get their mind absolutely exploded because nobody at that age can actually understand any of this lol, sorry coolest mom ever
@@AN-ou6qu it's not that hard actually
EnDeRBeaT yeah. They can understand MUCH MORE than people realise. You just need to approach it gradually
Not:
Heres quantum mechanics
But:
Theres this thing called a photon. It is the light you see and ...
[LOTS OF DETAILED TALKING]
so thats quantum mechanics.
IMO they can but you just need to take so much time explaining it gradually that they already are a year older or something. Like how you dont learn everything in school in 1 year but 12
Wow I didnt know Star Citizen made so much progress! Jokes aside awesome work my man you always always shock me. Thank you for sharing your knowledge Cheers!
Hey, thanks! Happy you like it :)
Woah, you are first, great job!
Sebastian Lague MAKE AN OCEAN
Branko Fink With Sharks Whales Dolphins Turtles And Boid Fish
Specifically Clownfish
Now I know how my dog felt when I tried to explain spreadsheets to him.
Hey, he was really eager to find out why we couldn't play together that instance
That’s fantastic.
why were you trying to teach your dog spreadsheets lmao
@@KC-bu8qq He had to know what was so much more fun than playing with him.
This coding adventure is scratching an Outer Wilds shaped hole in my heart and I'm loving it.
That’s what inspired him to make this series!
Mine too
*sees Sebastian has uploaded a new video*
Me: "It's a good day."
Yes
Others showing us how we can use Unity.
Sebastian is showing us WHAT WE CAN DO with Unity.
Every priceless journey starts with imagination.
Absolutely wonderful! :)
Me: uses a inverted sphere with a unlit transparent material for the sky
Sebastian: makes a 20 minute long video explaining the shaders and scripts he wrote
Would a skybox work?
@@helltubejackie1086 if you want low quality shit then yes
@@helltubejackie1086 skybox is basically the inverted sphere but marginally better performance
@@theaveragepro1749 o
Sebastian Lague is a 10th-dimensional being who designed our entire universe for a school project and is now role-playing as a human to give us a tease of the entire process. Erosions, ecosystems, oceans, and now the Universe. Thank you for this video!
That would explain everything!
Especially why its free!
I rewatch the videos from this series every month, because of how satisfying they are. I'm looking so much forward for you to continue this series.
Your videos always amaze me! I love that you take a very physics based approach to most of these coding adventures, and the end result is beautiful!
Happy you liked it, thanks!
@@SebastianLague Please keep up the quality, man. I'd ask for that request, and also thanking you for your efforts.
*Note:* I'd like to resend similar messages again in the future videos.
"That sped things up immensely, with the minor tradeoff of completely ruining everything" is pretty much the slogan of every first optimization attempt ever xD Your dry sense of humour is such a joy to behold, please don't ever lose it!
If I was half as smart as you... I would currently feel half as dumb. That was not only an amazing tutorial, fun experiment but also shows just how good you are at math and programming and research apparently! Great video... Makes me really appreciate all these great games we have today.
He is not smarter than you. How can you say that if you haven't even tried to make a game?
Go Download Unity
Google "how to make earth in Unity"
Google "how to add lightning in Unity"
And after making a game make a tutorial like this and post on YT
@@jyothish5194 you think its that simple ? ok web developer
@@flex9663 chil chil! All game devs know de pain. Some people has pain tolerance higher, and some people don't soo yeah!
I'm only half-interested in coding, and this is still absolutely captivating. The way you explain things is captivating. I can't stop watching these.
"Perhaps one day I'll write code that works perfectly first time."
Liar. Such arts are arcane and beyond mortal comprehension!
Everyone knows only the Chosen One is capable of such thing!
@@NeverEverTM *writes " print( ' hi ' ) " * - " it worked perfectly first time!"
luckily he's basically a god at this point
@@nyxies-too rap god
When the sun started to go away and we saw the stars, it made me say "WOOOW" really really! Congrats!!!
I really love this journey (which I joined an bit late by the looks of it), not only from a programming perspective, which I absolutely love, but also because of how you explain the physics behind it in the clearest way possible
At this point it's fair to say these are devlogs, not Coding Adventures.
A bit of both, I'd say. Definitely far more experimental than most devlogs.
Yea. Kind of. Feels like an adventure to watch. But oh man the depth he goes to
Both
Up next on coding adventures: Sebastian simulates the entire universe in real time.
Jokes aside I love your videos!
episode 100, how to code self avare life forms
This actually isn't completely unattainable. For a game, you wouldn't actually need to simulate the entire universe at the same time, just the region close enough that the player that they can meaningfully observe it. The rest can just be loaded/generated "on the fly" as needed, or unloaded to save space (pun intentional) if it is no longer inside this region. Methods like this are often used to enable games to have extremely large, and sometimes practically infinite, worlds (or universes in this case) that couldn't possibly fit in memory in their full forms; Minecraft is probably the most famous example. I've even seen Sebastian implement systems like this on other projects, so he could easily simulate an entire fictional universe.
@@andrewsprojectsinnovations6352 he dun been woooshed
@@andrewsprojectsinnovations6352 Yes you're right. The program SpaceEngine has already done something like this. (I'd suggest checking it out. The old versions are free I think or you can find some footage on yt.)
Nah, he never optimizes it - he'll just simulate the entire universe at 12fps :P
The fact that he can make these things make sense is astounding
“Hey everyone, I’ve just been having fun being a literal deity making planets”
7:41 Reminds me of my favorite programming trick, which is writing a function and forgetting to call it later
Mine is creating a function, changing the name, then forgetting I changed the name and wasting 3 hours.
I declare a function, make the function and then the program decides to not let me call the function
Like 2/3 functions can't be called because the program doesn't like them, while the others have no problems
And then re-writing it only to end up with a worse function
I call it before actually creating it or when it‘s just a construct which returns nothing.
The more I watch your series on making this solar system, the more I appreciate what Maxxis went through creating SPORE. That might be mostly because Spore doesn't look too far off from what you've made thus far, though with today's tech and such you'd likely be able to make something that looks a bit better.
In any case, loved the video.
I love that you include the parts where you mess up. The mistakes are often my favorite part
These video's are about what he want's to explore, things he wants to try. I have tried doing similar things on a smaller scale and honestly the biggest joy in some ways is when it doesn't go right.
It's easy for someone with more experience to produce a "perfect" video that doesn't show the mistakes or his frustration. By showing you all that he is first saying that you probably will never write perfect code first time, but, also that mistakes happen even when you have more experience
At the end of this series he would say: "And this is how i created the earth, the universe and you. You are just thouthands lines of code and living in my simulation, watching those videos right now".
Dammit I can't believe u just read my mind haha
@@AppyTheApe The simulation probably doesn't have enough memory to give everyone unique thoughts or something
@@oliverer3 Or maybe I'm just glitching because of a bug in that simulation, I'm telling you that's very much possible.
I’ve never sat on my couch before and cheered out loud about code like it was a sporting event. This is brilliant. I was moved. Also had to google what a float3 was, haven’t seen that yet. The results were beautiful both visually and scientifically. An intersection of art and science. Also, you just taught me why sunsets are fiery orange. This might be the greatest coding video I’ve ever watched. Wow. Just... wow...
there are three skill to be an expert programming :
1 : experience programming
2 : understanding physics
_But most importantly..._
3 : *talking fast like a rapper* (11:12)
My man is literally making Outer Wilds as a solo dev
Ikr after watching the video I want to play Outer Wilds again
While also making a video series on it, and making it flawless while at it, because the rest wasn't enough.
procedural planets wouldn't work for Outer Wilds. this is like No Man's Wilds
@@SoulSukkur I would guess that the Outer wilds planets are at least partially procedurally generated at some point and then they went in and modified them.
@@perfredelius8060 I watched the making of documentary from noclip and they didn't suggest anything like that. they discussed how they had to design Timber Hearth as layers of spheres, and then they had to overhaul that for the Ember Twin, which has more complex geometry. everything in that game was made deliberate. they talked about how annoying it was to make brittle hollow, which has the highest level of surface detail. they had to model each of the flat bits individually.
Honestly, i don't see how there would be any design benefit to procedural generation. if you want to have a way to generate as many unique-but-similar moons as you want, then go ahead and make a random crater generator. but Outer Wilds only has 3 moons, and only one of those has craters. designing systems to procedurally generate things you'll only need once is so inefficient. just make a sphere and sculpt some dents into it. no math, no parameters, full artistic control.
He just made a planet with atmosphere and sunsets that look so amazing and real. It's awesome to have this sort of your own world, and I hope you'll add more stuff to it.
This has to be one of the highest quality channels on youtube. All the videos are educational, inspiring, really engaging and shows a thought process of tackling nearly any problem. Absolutely love this content.
was thinking about the series just yesterday , happy to see another video
keep it going man we love it
15:35 ... awww... that loooooooks so gooorgeous xD ..... i love it with these nice sunset colours on the side. Who says coding cant be art. this is ART! :D
The way he acts like he's just a normal programmer makes me regret my pay cheques...
People have already done these things.. he learns from those people..
Pretty sure programmers do very complicated things like this.
I am not saying it isn't amazing but he isn't the one to come up with everything, he learns it from other sources too.
@@elythas128 I am a professional developer. Very few devs have the ability to not only abstract the maths problems this well, but to also explain it so concisely... And I work with an ex-maths teacher now programmer...
@@elythas128 That has nothing to do with my comment though?
@@elythas128 See you've already demonstrated my point... You couldn't even decipher a 15 word UA-cam comment, let alone a university paper
@@YouReyKarr Yeah sorry I responded to the wrong comment, well no, it was more confusing, I responded twice, you responded to my response, but I thought the original comment was another one, sorry for the misunderstanding. Also I am not sure why would you degrade me when I did not attack you in any way, sorry if it seemed so. (And no, I don't think I could decipher a university paper, not without prior knowledge.
Next time: adding erosion and clouds back in!
Please!!!!
That would be insane!
It would be really hard though... erosion is a static effect and requires you to store all the procedural data somewhere, and raymarched clouds are extremely computationally expensive.
I hope your coding makes its way into vr gaming, simulation of real life physics is super potent there! Keep being an awesome creative!
Electromagnetic waves don't "undulate" through space like that. We say they're transverse waves because they are formed by electric and magnetic fields that point perpendicular to the direction of travel. The wave itself may have a volume, or it may be very narrow, depending on the light source, dispersion, that sort of thing.
What's actually happening is that the air molecules are being polarized by the oscillating electric field of the light traveling through it, which makes them behave like tiny little antennae and reradiate. These molecules are like mass-spring systems; they have a natural frequency they "like" to oscillate at. This resonance frequency would be the frequency that would result in the most efficient scattering. Well, it turns out that for air this frequency is actually in the ultraviolet, which means the "higher frequency = more scattering" rule works, but only for visible light. If the sun output more energy in higher wavelengths, and your eyes were sensitive to those wavelengths, you might expect the sky would be purple.
Well said. You can actually see that uv light is scattered more in practice if you use a uv camera. If you were able to see uv light, the world would be extremely misty and thick as the atmosphere is scattering the light a ton.
earth is flat
its hard to tell if @Sr-71 Blackbird is a troll. I hope so
also, great explanation! Thank you!
@@syfou725 dont worry i am a troll
"I've long since lost any faith in the code I write" same, man. same.
I reaaaally like the transition from the black space sky to the atmosphere. So natural.
In five years he's gonna make a video like "I was messing around with variables to make self-aware AI creatures."
This is so cool. I don't remember how I found your channel, but I'm so glad I did. I've been trying to learn to do this stuff in UE4, and your videos and source, although in a different language, have been incredibly informative.
When the video ends and I'm still like "WOAH HOW DID HE DO THAT?!"
There I was clicking around browsing C# tutorials thinking..."I wonder when's Sebastian dropping the next coding adventure?" . Then lo and behold...
that feel when you accidentally discover God's secret UA-cam channel detailing how he made everything
Yo Sebastián you're the BEST game dev programmer and youtuber, I dont know what would I do without your videos
Went into this thinking it would be about setting a mood or a tone. Got a whole lecture about the scientific atmosphere of celestial bodies instead. That was amazing!
and just like that you disproved flat earthers totally by accident
"To calculate the optical depth, I use my favourite programming trick: calling a function that does not exist and worrying about it later." 7:42
These videos are entertaining, educational, inspiring and a pleasure to watch, all at the same time. This channel is a gem (extra points for the super cute dog on the profile picture)
Great job again, Sebastian!
Thank you :)
I watch this video once a day because I can't wait for the next episode.
Same bro
I absolutely love the way you have done this series, not only is it fascinating to watch and see what you managed to achieve, but as a coder also interested in these topics, it is very valuable at pointing out various techniques used, and even explaining and visualizing them to a degree to make delving into the topics easier(plus I know what to look up in order to get full details on a topic).
So, thank you for these, I look forward to seeing your future progress and see what you manage to do with it moving forwards.
Bugs that i've found so far(in the demo):
1. Stars are visible through the ocean
2. Scattering doesn't apply on the ocean reflections/glares
3. The ocean reflections/glares are visible even when the sun is under the horizon
Put this in the itch page.
The oceans are almost definitely temporary.
Oceans aren't really there. It's all just a shader based on planet's centre position. Sebastian would need to make them more of a "physical" in-game object over just a screen space shader
this legit makes me want to jump back into game development
This legit made me install unity again. Thanks i guess...
Wow, this is not only phenomenally cool code but has also helped me understand more about how light scatters through our own atmosphere as well!! Love the content, keep up the great work!
Mans is really in a lague of his own
I hope this channel won't die, it's the best and motivational coding channel I've found, but I fear that it may lead to financial problems
What a great guide and the best part about it was how thoroughly you explained everything. So thoroughly in fact, that I noticed some parts that I thought I could maybe improve even. I'm itching to try it out myself now. Really inspirational!
Wow the way you explained the colours of the atmospheres was amazing. If I was taught that in school I probably wouldn't have got it at all.
Me: tries to run anything that actually looks this good
My Computer: Do you want to explode?
for some reason I can't stop watching your videos... it really puts into perspect how much I have to learn as a new game developer with only a couple tutorials under my belt. can't wait for the next video. :)
Whenever someone makes some asinine comment like "you don't need math to be a successful programmer". I just refer them to your videos.
10:10 The usage of length there feels like something that could actually get a rather sizeable performance gain from using length2 instead to avoid the sqrt (with the following division obviously using the pow2 (or rather x*x) as well to compensate), as I have a feeling this method might be called _quite_ often every frame.. (once, per every scatter point, per pixel, per frame, for just that direct call. Then opticalDepth further nests yet another loop :p Though this latter part is thankfully avoided with the optimization introduced later on).
*_Edit:_*_ So apparently the gain of avoiding sqrt is not that significant on modern gpu's, costing effectively only 1 cycle on average. kudos to a reply for informing me :)_
13:25 I am always amazed at how much effort you seem to go through in making tools to help explain stuff, liek that interactive slider. Granted, I don't know if it is an actual tool you screen-captured, or just vfx animated and added in post, still, it seems quite high-effort to me either way. A few I am sure are actual tools (like the sliders for clouds or in this video, for sun position and shader values). The animated graphs (ie. 14:40) are likewise appreciated things that seem quite high-effort for no other reason than to help explain in the video.
15:40 looks nice! Though I am unsure if the red parts near surface makes sense here :p The sun is as far as I can tell somewhat perpendicular to the direction you look at the planet, so it is not like how a sunset is red, exactly. The light at those positions _does_ travel further, so it is not entirely odd and might just be that the intense scatteringStrength is what creates a result different from what I would expect. But I would expect blue anyway... Or maybe my estimation of the angle is just off (nevermind that, later we see the red bands even with the sun behind us. This _definitely_ feels somewhat wrong, if a bit like cooler-than-life "its a feature not a bug" territory).
18:00 the celestial ball with the stars painted on it (that takes the place of a skybox) is honestly quite good looking, which is amazing me when I consider its simplicity. I particularly like how it essentially is a literal take on some old myths/beliefs :D It will obviously have issues when you have more than one planet (unless _extremely_ large radius and centered on the sun - or player - instead of planet, which feels like a recipe to invite floating-point errors), or allow the player to fly around and through it.
As for further reading, I am sure you have already looked at this, but I know there are some mods for KSP specifically to improve the scattering. Dunno how much papers/guides there are to read, but fairly sure there is source-code (for unity no-less!) if you are interested. That said, I only know of the mods existence, can't vouch for their quality :p
unity's HDRP has a built in realistic atmosphere system which i think has pretty good performance, though i have no idea how it works
What an amazing comment.
I tend to keep all my calculations as r^2 unless I'm drawing the object. Most force calculations and distance calculations use r^2 so its handy to avoid pow and sqrt
I looked up what hlsl uses for length2/lengthSqr, seems there is no such alias, and you are expected to use dot instead (`dot(v,v) = |v|^2`).
@@oblivion_2852 Exactly, and the few pow/multiplications you need to do (like on planets radii so you can compare it to the r^2 values) only has to be done once and can be stored as a field alongside the regular values.
@JoonBoon thanks? :)
sqrt is actually really fast on gpus. On nvidia hardware it is implemented as rcp(rsqrt()) wich are both native instructions on the SFU. While SFU instructions are only quarter throughput they do not block the regular fpu instructions and as such cost you effectively only 1 cycle on average. AMD has an equivalent to the SFU since RDNA too.
I don't think I currently know any other channel that shows principles and coding areas that visually pleasing and well written.
the transition at 0:26 to 0:28 was phenomenal
Fun fact: those planets were once a untextured coloured sphere.
before that they were cubes!
Alex A wait seriously??! No way!
So much Potential in the Blender default cube
Your videos are so interesting, also the content you includes...it makes you a genius...more than any other developer I've ever seen
Nice 22 minute video, can watch this video every loop