Coding Challenge

Поделиться
HTML-код
  • Опубликовано: 22 янв 2025

Комментарии • 444

  • @DerSpielerMabuse
    @DerSpielerMabuse 6 лет назад +158

    I love the scene at 43:38 when the code finally works. It's obvious how run down Daniel is after trying for so long and the joy / relieve that it all comes together is just tangible. As a coder myself I can fully get that, his mini celebration is hilarious to watch, brilliant as usual

    • @TheCodingTrain
      @TheCodingTrain  6 лет назад +21

      Thank you, I was really wondering if anyone would actually make it this far into the video to see!

    • @scuidthesquid
      @scuidthesquid 3 года назад +11

      @@TheCodingTrain believe me when i tell you lots of people probably did, your videos are awesome to watch, even more so when coding with you or when you are interested in the topic. at least i watched it all. Thank you for the awesome series!

  • @bitterbob30
    @bitterbob30 3 года назад +16

    This guy always cracks me up. His enthusiasm is great.

  • @kim15742
    @kim15742 6 лет назад +126

    No ... way! This is exactly what I was trying for the past 5 years!

    • @sethatkins3731
      @sethatkins3731 5 лет назад +3

      :-( Did you spend most of your time researching fluid dynamics?

    • @kim15742
      @kim15742 5 лет назад +21

      @@sethatkins3731 Well no, I saw that it was too much to understand and I moved on :D

    • @osimmac
      @osimmac 5 лет назад +13

      @@kim15742 if you understand copy paste you understand everything :D

    • @haaly7245
      @haaly7245 5 лет назад

      I spent quite some time trying this for a videogame. I failed miserably.

    • @KeyboardWario
      @KeyboardWario 3 года назад

      Me too

  • @FractalWoman
    @FractalWoman 4 года назад +5

    This is the best channel ever. I never thought it would be so much fun watching someone else write code in real time, but you make it fun.

  • @coolbrotherf127
    @coolbrotherf127 6 лет назад +987

    I have a C++ exam in 30min. I should probably watch this later haha.

    • @l0m-dev
      @l0m-dev 6 лет назад +18

      theacp127 Good luck!

    • @aidanhind4620
      @aidanhind4620 6 лет назад +10

      Good luck

    • @justafighter1346
      @justafighter1346 6 лет назад +4

      How did you think you did?

    • @coolbrotherf127
      @coolbrotherf127 6 лет назад +27

      @@justafighter1346 Pretty good. The professor makes a really fairly comprehensive review sheet so I as prepared for what was on the exam.

    • @justafighter1346
      @justafighter1346 6 лет назад +3

      @@coolbrotherf127 always improve

  • @Gamekid321
    @Gamekid321 2 года назад +8

    I really appreciate your video style! There are a lot of dev content creators out there that I can't really bear to watch. You keep things succinct and interesting, and without fumbling around too much even when you're not entirely sure what's going on as you port this code. Great personality, great editing! Lucky me decided that I wanted to learn fluid sim today and found you in the process. Easy follow. Thank you for what you do. :)
    #TeamLaminar btw

  • @ffggddss
    @ffggddss 5 лет назад +9

    Super! Another wonderful train ride through some intricate mathematical territory!
    BTW, this brings back some memories, as my dad was one of the pioneers of doing fluid dynamics on computers, for the purpose of numerical weather prediction.
    He dealt with the Navier-Stokes equation constantly! As well as mass & energy conservation, and others. And with sculpting code to run at maximum possible efficiency, with a multi-layer, lon-lat grid on limited computing capability. Especially on the computers of the early 1950's!
    Of course, for the atmosphere, you've got a compressible fluid, and you also have to model evaporation & condensation of water, varying sunlight, radiated heat from ground & water, city "heat islands," the effects of ice & snow cover, clouds with their own radiation and heat dynamics, etc.
    Not to mention that your whole spherical grid is rotating, so there's the Coriolis effect to deal with . . .
    But the essential setup is the same as what you have here, just with a spherical surface instead of a square, flat box; and a third dimension, which was typically only a handful of altitudes.
    Fred

  • @laurenz5451
    @laurenz5451 6 лет назад +9

    Love how you explain the coding! Even though I am a beginner and am only able to code in C++, you are doing a fantastic job. Keep it on!:)

  • @TheDetonadoBR
    @TheDetonadoBR 5 лет назад +8

    This was really nice to watch while I tried to copy what you did. My simulation is working perfectly, thanks

  • @prafulsrivastava7684
    @prafulsrivastava7684 2 года назад +1

    I have been going through Navier-Stroke's Equations for an entire day to write a simulation on my own. And I ended up here. I am so glad I ended up here!

  • @juvusart
    @juvusart 2 года назад +2

    This is a gteat example of a man who really love what he is doing.

  • @glitchedjson4042
    @glitchedjson4042 6 лет назад +190

    #TeamTurbulance !
    And it was very useful! I had no idea how to make a fluid simulator, but after this video, I still have no idea how to make it! But I at least know how it's supposed to work!

  • @rozmowastudio
    @rozmowastudio 6 лет назад +3

    HAVE BEEN WAITING FOR THIS LIKE FOREVER!!! THANK YOU DAN

  • @danh9676
    @danh9676 5 лет назад +1

    I found this video while trying to find out how simulate a river. Whether or not this is what i'm looking for, I made it to the end, and learned a lot.

  • @dripcode2600
    @dripcode2600 2 года назад +3

    Mad respect. It's always hard to code infront of other people. Really enjoyed this video!

  • @MarushiaDark316
    @MarushiaDark316 Год назад

    Having access to vectors, objects, and multidimensional arrays makes this all so much more pleasant to work with.

  • @oBCHANo
    @oBCHANo 6 лет назад +75

    It would be cool to see you get into those "tricks" to get better performance, a series of videos on optimizing and using things parallelization or whatever else would be really useful.

    • @thedotisblack
      @thedotisblack 6 лет назад +2

      Agree,. I would love to watch that too.

    • @tx6723
      @tx6723 5 лет назад

      yea it would be, and it would be cool to see it with processing java rather than processing or p5 since ik js doesn't have threading and processing idk if it has threads like the original java

    • @haaly7245
      @haaly7245 5 лет назад

      Nvidia has a very nice demo of this using shaders to compute the different steps using a 3d texture. It even goes the extra mile and accounts for moving obstacles within the fluid.

  • @Rumplestiltzchen
    @Rumplestiltzchen 2 года назад

    This is great because for the past few months I've been taking the code challenge videos and porting them to c++ and now you're porting c++ to java

  • @josenicolasagustingarciama9185
    @josenicolasagustingarciama9185 2 года назад

    Gotta admit. You have improved a lot since your firsts vídeos. You rock

  • @01binaryboy
    @01binaryboy 3 года назад

    Take all my assets . You are rocking man.
    I was searching these kind of videos for long time. Thanks to MikeAsh as well.

  • @salahsoliman5752
    @salahsoliman5752 2 года назад +1

    This was so much fun, I didn't expect it to work this smoothly 😂😂

  • @soliderarmatang5664
    @soliderarmatang5664 3 года назад

    I just discovered this channel and I’m already liking it

  • @InferiorPotassium93
    @InferiorPotassium93 4 года назад +4

    I love this channel, thank you so much for these videos. You make topics that are complex feel accessible.

  • @ThatChristopher
    @ThatChristopher 6 лет назад +4

    Oh neat I am working on my own hydro code. These particle-in-cell methods of simulating fluids are almost mystically powerful, you can go from simulating plasma physics to predicting traffic flow just by changing a few ( complicated ) terms. Thanks for the video, I hope this gets more people excited about questioning the world around them. There is a whole world moving every time you stir your coffee in the morning.

    • @aravindkarthik5120
      @aravindkarthik5120 3 года назад

      Hey Chris, being a beginner, may I know as to where I could start to learn about fluid simulation in depth?

    • @ThatChristopher
      @ThatChristopher 3 года назад

      @@aravindkarthik5120 Hey Aravind, it took me a couple days to remember some of the first resources I used. Ferziger's Computational Methods for Fluid Dynamics does a great job of breaking down some of the numerical methods you can use, and I think some of the older editions had the fortran code (which is what I played with to figure out what was going on). I believe some of the classical papers listed in that book are also good resources for learning. I'm sure there are other modern equivalents of that book, but I found Ferziger referenced in many papers of interest to me and I can see why.
      Writing codes is fun, but if you want to do any actual DNS of fluid simulation it becomes very expensive to do so.. It quickly goes from understanding the discretization of the DE to figuring out how to manage memory when you're implementing higher-order schemes.. which is something that I found isn't talked a lot about... This is something I wish someone told me from the start. You can solve a 100x100 grid pretty simply, and it will make pretty pictures, but trying to resolve turbulence requires a lot of computational power on top of the software development component of figuring out how to implement it. So don't be discouraged if it takes some time to figure out, and trying to build something yourself from nothing will teach you to appreciate a lot of the commercial tools and all the struggles they must have put up with to deliver what they can. Good luck.

  • @v0ldelord
    @v0ldelord 4 года назад +4

    This video helped give me some insight into very opaque code provided by my professor last year. I have a slight correction which in my implementation improved the resulting simulation.
    When changing from 3d to 2d the amount of neighbours each cell has changes from 6 to 4. In lin_solve() a weighted average is taken dependent on the amount of neighbours where c represents the total weight. So calls to lin_solve() should be changed such that c corresponds with the amount of neighbours. I.e. in project() it becomes "4" and in diffuse() "1 + 4 * a". Without the adjustment lin_solve() reduces, whatever you put into it, by 33% after each iteration.

  • @Confuseddave
    @Confuseddave 5 лет назад +2

    I'm not sure how much I'll use the fluid simulation part, but the stuff about diffusion really clarified my thinking about an old hobby project i had, which I may well try to resurrect...

  • @Behiri
    @Behiri 6 лет назад

    i found this great Chanel a few days ago by googling 132 to test my Internet connection... i have worked with processing before so i was lucky

  • @r.d.machinery3749
    @r.d.machinery3749 5 лет назад +14

    53:51 "Noone is going to make it to the end of this video"
    Still here, still fascinated :)

  • @FrozenGale
    @FrozenGale 4 года назад +3

    For anyone wondering you don't need to constrain the IX function, you simply need to go into the advect function and make it so that you use N-2 to get floatN. That fixed it for me at least and is what someone else suggested on Mike Ash's blog.

    • @dheerajshenoy1285
      @dheerajshenoy1285 4 месяца назад

      Ive been pulling my hair out just because of segmentation fault. You helped me. Thanks

  • @theaveragemegaguy
    @theaveragemegaguy Год назад +1

    I love the scene at 27:04 where he says lets take a deep breath. Sometimes when facing something very tedious or large we tend to shy away. It was very helpful to relax and take a big deep breath. Thank you very much :')

  • @Squidcat777
    @Squidcat777 Год назад

    currently in my master's for computer graphics, this video was a surprisingly great starting point to fluid sims! thank you so much!

  • @cware1817
    @cware1817 3 года назад

    As someone who is relativly new to C++ this was very helpful and cool to watch your workflow through these concepts with the whiteboard!

  • @matheussilvacarvalhodeoliv7339
    @matheussilvacarvalhodeoliv7339 2 года назад

    Wow, that was incredible! I loved this video, mostly because fluid mechanics is my area ❤️

  • @erzzam
    @erzzam 5 лет назад +4

    Made it through the final and it was awsome! Looking very much forward for the next episode of the series! #teamturbulence

  • @egebayraktar6620
    @egebayraktar6620 Год назад

    This is crazy, I am two days into this tutorial and searching for a typing error which gave me a different result than in 43:35. Finally I have found the error and watching you after 43:35 means so much more to me. (P.S: me the dumbass missed one i in the 99 th line of the source code in Functions so that it was float i0i = int(0) instead of int(i0).) If it is frustrating to get error, it is so much more to get none but get the wrong result. Anyways, you are one of my heroes.

  • @Ghaz002
    @Ghaz002 5 лет назад

    oh man, the references here are an absolute goldmine. I've been trying to figure out how to do a simple version of this for a few weeks, but I couldn't make sense of multivariable calculus if I had a trillion years. So a paper for dummies is exactly what i need.

  • @dominick253
    @dominick253 10 месяцев назад

    Learned the basics, built a few apps, then got bored of programming. Just going through your videos again and man it sparks that passion again. Thank you.
    Just thinking about adding something a little extra into my portfolio website. I'm thinking about something recursive. Maybe mandelbrot? That would be pretty cool me thinks.

  • @term477
    @term477 6 лет назад +16

    37:16 sounds like poetry

  • @avi12
    @avi12 6 лет назад +139

    32:37 What the heck?

  • @alialsaffar6090
    @alialsaffar6090 6 лет назад +1

    Thank you for doing both the DVD challenge and this! And, made it till the end!!

  • @OzieCargile
    @OzieCargile 4 года назад

    You've always been a great source of accessible and practical information. Thanks for being a great teacher.

  • @mackycheese3582
    @mackycheese3582 6 лет назад

    Finally!!! I have been waiting for this vid for a looong time THANKS

  • @TheAwakeningMission
    @TheAwakeningMission 6 лет назад

    Thank you so much! I was expecting this for so long and it's finally here!!!! :D

  • @ZerofeverOfficial
    @ZerofeverOfficial 6 лет назад +120

    i made it to the end of this video

    • @TheCodingTrain
      @TheCodingTrain  6 лет назад +7

      I am gobsmacked.

    • @ffggddss
      @ffggddss 5 лет назад

      Make that last "a" an "e" and you're there!
      Fred

  • @kacperozieblowski3809
    @kacperozieblowski3809 6 лет назад +2

    32:38 love the edit, and the transition music, so funny

  • @toastom
    @toastom 6 лет назад

    I know I've looked for something like this on your channel before but couldn't find it. Glad you uploaded one haha

  • @jordanscarrott3749
    @jordanscarrott3749 4 года назад

    At 23:11 the function only takes into account the cells above, below, left, and right of the cell we're interested in. Thank you for the great video

  • @jordy15322
    @jordy15322 6 лет назад +1

    Got to give it to you this was a great way of procrastinating from doing coursework, I'm supposed to be writing test plans and stuff for a program i've written. But design documentation is boring this was way more time. Don't think i've ever left a comment or made it live but long time sub as i find your videos a good way to learn some stuff when i'm supposed to be doing other things.

  • @tlace0392
    @tlace0392 6 месяцев назад +5

    old video, but I thought I might comment lol. Its crazy to think about how far AI and GPT-4o has brought us. I am using GPT to follow along with this in python. The ability to say 'create a diffusion method, based on the pre-existing conditions' and it output it, perfectly, is absolutely mind blowing. I am a CS undergrad, who plans on going into Quantum Engineering, things like this make my goals seem a lot more achievable LOL.

    • @sebastiangudino9377
      @sebastiangudino9377 5 месяцев назад +1

      As long as you COULD implement it without the help of AI if you ever needed to, they yeah, it is an amazing tool to make small snippets of reusable modular code

    • @neillunavat
      @neillunavat 4 месяца назад

      he liked!!!

  • @greenpixel556
    @greenpixel556 4 года назад

    Allot of great examples, i like that they all in KISS format, just pure algorithms , no nonsense.

  • @justgame5508
    @justgame5508 6 лет назад +8

    It’s so satisfying for me to actually see and understand the mathematical topics that were forced to study as part of my engineering degree, reminds me that they don’t make us take maths modules because they enjoy watching us suffer🙃

    • @tx6723
      @tx6723 5 лет назад +1

      yea maths/phys can be interesting, esp when paired with visual programming

  • @bigrafati1221
    @bigrafati1221 6 лет назад +5

    When I watched this video I realized how much I still have to learn.

  • @HZLTV
    @HZLTV 5 лет назад +1

    I quite literally started processing like last week (never been very good with Java) to use as part of a design project. Came across this channel, absolutely loving it even though I have almost 0 idea what’s going on!

  • @Hyuts
    @Hyuts 6 лет назад +2

    Busy learning MongoDB atm but a mandatory thumbs up was given.

  • @Grynjolf
    @Grynjolf 10 месяцев назад +5

    Where are parts 2 and 3? I can't find them! 😭

  • @germandavidmurillasmondrag4004
    @germandavidmurillasmondrag4004 3 года назад

    OMG every time I see this video is the same as stunning as the first time I saw it.

  • @uhwlrz
    @uhwlrz 6 лет назад +1

    It is about 7 hours between our times but you are amazing and make everything more easy and beautiful ,thanks Dan for every tutorial, I search for your videos everyday and wait for them and download them ,even my kids loves your tutorials😍😍😍😍😍

  • @Dennis4Videos
    @Dennis4Videos 5 лет назад +1

    flute intro cracked me up, thanks for your awesomeness

  • @artistpw
    @artistpw 3 года назад

    If you really want to see some incredible fluid dynamics, drop some vitamin c powder into brown iodine. The color almost magically seems to disappear. Absolutely love this channel!

  • @animated.stories.reddit
    @animated.stories.reddit 3 года назад

    This is the first programming video I like xD

  • @Maex2k
    @Maex2k 6 лет назад +27

    "Just let me take a quick look at the video..." 55 minutes later: #teamturbulence

  • @jaredarm
    @jaredarm 2 года назад +2

    Is there a part 2? Would love to see you go through the code in detail and refactor it!

  • @rashmiranjannayak3251
    @rashmiranjannayak3251 3 года назад

    Perfect coding spirit

  • @kyle5210
    @kyle5210 6 лет назад +3

    Watched this live and I came specifically for 54:04 :) :) :)

  • @the_kid777
    @the_kid777 Год назад

    I liked the dance of turbulence you did at the end of your video so much; I suddenly found myself dancing it in front of a mirror. I would be very happy if you'd try the Lagrangian particle approach as well, as I believe what you've created was an Eulerian grid-based simulation?

  • @sahiltrivedi69
    @sahiltrivedi69 3 года назад

    You did it! You crazy man! You did it!

  • @nostravis2770
    @nostravis2770 2 года назад +2

    "I'm sure youtube compression is totally ruining this."
    Spot on unfortunately

  • @maserb5
    @maserb5 6 лет назад

    I really liked this video! I studied aero dynamics for a while and it’s cool to see it in play.

  • @michaelsalais7393
    @michaelsalais7393 3 года назад

    Made it to the end. I think I learned something: that i'm not intelligent. But I loved this and will play with the code either way.
    TeamTurbulance!!!!

  • @paull007
    @paull007 6 лет назад +5

    It was very fun on stream

  • @_abdul
    @_abdul 2 года назад

    I was already Overwhelmed by the details of it...and then I got the Turbulent Song.

  • @jacksparrow440
    @jacksparrow440 6 лет назад

    Very nice !!
    I actually had to optimize such a simulator last year. It was mostly about messing around with the linear solver, because it takes the longest to compute

  • @Toknus
    @Toknus 3 года назад +1

    I don’t know if you still look at this thread, but at 25:32 I was SCREAMING when at line 97 the singular k value just went unrecognized! 😂😂

  • @m1nh2uan
    @m1nh2uan 3 года назад

    I saw a video on slime simulation and think of you and your digital art. Not sure if you still do these videos, but it would be cool to see it on your channel some day.

  • @israeltettehakrong9082
    @israeltettehakrong9082 Год назад

    You are very talented in using processing. ❤❤❤❤❤❤U Shiffman.

  • @swayamsingh4650
    @swayamsingh4650 3 года назад

    Love your content brother ❤️

  • @memoochoaprime
    @memoochoaprime Год назад +1

    beautiful, love it

  • @Mortagus
    @Mortagus 6 лет назад +1

    Damn ! That result is awesome 😁

  • @Chilli5m
    @Chilli5m 6 лет назад +1

    This is great. I've been trying to write my own fluid simulators in P3 but they aren't exactly intuitive or easy to get started with. I would love to see a video on the Lily Pad project.

  • @bernatrosello4375
    @bernatrosello4375 5 лет назад +38

    This Video: *exists*
    RUclips compression: *dies*

    • @zh9664
      @zh9664 4 года назад

      no? this isnt the type of thing video compression struggles with, its actually the opposite. you should know this, your literally watching a video on coding.

  • @Retr0sp3ct
    @Retr0sp3ct 3 года назад

    It's a shame programming is so nicce atm, content like this deserves so much more recognition and appreciation.

  • @mworld
    @mworld 8 месяцев назад

    FYI: `struct FluidCube` is C not C++. The typedef gives it away, which is not required in C++. Also the calloc etc used below that for memory initialization is C.

  • @austineadah2843
    @austineadah2843 3 года назад

    i love this tutorials even if my basic programming skills are rusty.well explained.I wish you could do 3d fluid solid interaction in real time.had to subscribe immediately

  • @antoine257
    @antoine257 5 лет назад +4

    #TeamTurbulence Some ideas for a potential part 2 of the video: (1) how to change the bound function to fit a more complex shape (vector) with obstacles (islands?); (2) how two fluid sources can mix and accumulate when they meet; (3) how to add "current" to the whole simulation.

  • @CabConHD
    @CabConHD 3 года назад

    Can we do something with freeform gradients? Like adobe released a year ago.

  • @lobsangwhite
    @lobsangwhite 5 лет назад +6

    28:00 Is this a Dr. Seuss rhyme?

    • @TheCodingTrain
      @TheCodingTrain  5 лет назад +2

      Please could someone remix this?!?

    • @obinator9065
      @obinator9065 3 года назад

      Top 10 Rappers Eminem is afraid to diss

  • @guzman-do
    @guzman-do 6 лет назад +1

    YES!!! Excellent!!! I needed to understand this fluid simulation thing for my game 👍#teamturbulence *all the way* WOOHOO!!! 😄🤣😅

  • @haaly7245
    @haaly7245 5 лет назад

    For rainbow colors you could do something like R = velocityX, G = velocityY, B = density

  • @AJ-et3vf
    @AJ-et3vf 2 года назад

    Awesome video! Thank you!

  • @DuniC0
    @DuniC0 3 года назад

    I like the result! ❤️
    The problem with the noise function is that it doesn't fill all the range [0,1).
    Maybe doing TWO_PI*2 will help covering the majority of the angles...

  • @a_random_voice_in_the_void
    @a_random_voice_in_the_void 5 лет назад +2

    The #TeamTurbulance dance was epic! 😂

  • @tejonBiker
    @tejonBiker 5 лет назад

    Good job, a lot of info can be found in this video :D

  • @prashanthkumar5987
    @prashanthkumar5987 6 лет назад

    you're dope🔥 All hail mr.shiffman🙌🏼

  • @aidanhind4620
    @aidanhind4620 6 лет назад +16

    #teamturbulence

  • @awaisahmed1871
    @awaisahmed1871 3 года назад

    I have data structures exam tomorrow. But this looks fun can't stop myself from watching it

  • @Juksemakeren
    @Juksemakeren 6 лет назад +2

    could you change the bounds function to make the fluid wrap around the edges or would that mess things up?

  • @fc-ns1yf
    @fc-ns1yf 2 года назад

    I get an error at the top with " final int N 256;" Bad identifier. What is wrong with that?

  • @MrRobbyvent
    @MrRobbyvent 4 года назад

    power of editing!

  • @ohmygod6487
    @ohmygod6487 5 лет назад +1

    How can I apply gravity to it?