Coding Marching Squares

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

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

  • @SebastianLague
    @SebastianLague 4 года назад +667

    Really enjoyable video (as always)!
    And thanks for the mention :)

    • @TheCodingTrain
      @TheCodingTrain  4 года назад +82

      Thank you Sebastian!!

    • @MohkKh
      @MohkKh 4 года назад +10

      you are rock

    • @charleswiseman5727
      @charleswiseman5727 4 года назад +10

      All the celebs in the comments section wow

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

      I dont mean to be offtopic but does any of you know of a tool to get back into an Instagram account??
      I was stupid forgot the login password. I would appreciate any tricks you can give me!

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

      @Raylan Decker i really appreciate your reply. I got to the site thru google and I'm waiting for the hacking stuff atm.
      I see it takes quite some time so I will get back to you later when my account password hopefully is recovered.

  • @Jabrils
    @Jabrils 4 года назад +147

    Amazing. AMAZING!!!

  • @nqkhanhskewb
    @nqkhanhskewb 4 года назад +282

    Hey you mentioned Sebastian Lague's video in description!! I love his coding adventures

    • @MAP233224
      @MAP233224 4 года назад +12

      his latest video is sooo good

    • @vgarzareyna
      @vgarzareyna 4 года назад +2

      Yessss

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

      Who doesn't!

    • @CrashingThunder
      @CrashingThunder 4 года назад +7

      Same! It's like a experiencing a condensed version of all the fun parts of programming without having to tear your hair out when you encounter a bug.

  • @Jabrils
    @Jabrils 4 года назад +68

    Man. I am back for more because this format is so refreshing. 😌

  • @Lep_19
    @Lep_19 4 года назад +105

    I really hope there are people here that haven't yet heard about Sebastian just so that they may now have the pleasure of finding his content for the first time. This channel and his are what keep me invested in programming as a form of expression.

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

      What I would give to watch him figure out clouds for the first time again.

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

      You should watch ThinMatrix too!

    • @Lep_19
      @Lep_19 4 года назад +2

      @@rubenadema1094 I do! I love watching how his lifestyle influences his work ethic, its really inspiring.

    • @JamesThompson-zu3bq
      @JamesThompson-zu3bq Год назад

      @@rubenadema1094ooo thanks for the suggestion!

    • @JamesThompson-zu3bq
      @JamesThompson-zu3bq Год назад

      @@georhodiumgeo9827omg i still haven't watched the cloud one yet. You've just given put it at the top of the list

  • @tomd1969
    @tomd1969 4 года назад +42

    I followed along with this. I've been "coding" as a hobby since 1983 (when you had to do a little coding to even get a PC to work). I gave up trying to keep up with the latest programming languages around the late 90s - early 2000s, although I am a C# fan (don't hate me--it's cheap). I'm a salty old man, now, but I appreciate your content. You make programming fun again.
    This one was especially fun--Marching Squares/Cubes is a concept I'd never heard of. Still, the potential applications (such as the mentioned Sebastian Lague's excellent series on cave generation) interested me.
    I tried doing some of the further challenges here and figured out for myself an algorithm for linear interpolation. It took me two days, but it was great fun. I had so much fun that I joined. Thanks, Dan.

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

    The happiness with which you code is a life goal

  • @RobLang
    @RobLang 4 года назад +23

    After a long week at the keyboard hammering out web code for hospitals, I love these videos to relax my brain. Thank you, sir.

  • @sinom
    @sinom 4 года назад +55

    "I must align all of the spacing here"
    My teacher in highschool HATED when I always did that. I still do it to this day

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

      My aversion is spacing, to me spacing elongates code lines and makes them harder to read. Anytime I am trying to understand some bit of someone else's code I first delete all unnecessary spaces. Spaces bad.

    • @sinom
      @sinom 4 года назад +9

      @@zebratangozebra for me personally it makes it a lot more readable, as i then can often look at a block of similar code as a whole and see what's going on in it, instead of having to go through every line separately. For small stuff like this it usually isn't a problem, and i don't always do it, but when the lines get really long, i do it a lot.

    • @sschmachtel8963
      @sschmachtel8963 4 года назад +2

      @@zebratangozebra in many coding languages I think you can have a code internal line break. And with those you can make pretty consistant looking code with some automatic formatting tools. E.g. they make you use shorter lines, or format it like that.
      Yet in principle you could still discuss about if you want to have spaces or not at all. I think I'd opt for spaces. Easier to read

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

      You guys are going to love Python then!

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

      @@PixelThorn Python is too slow.

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

    I watch your videos for over 5 years, I love your videos, your didactics, you concern for explain, etc. please don't stop it.

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

    I love how everyone else in the comment section liked the video as much as i did. really brilliant how well made it is.

  • @ast_rsk
    @ast_rsk 4 года назад +33

    This was crazy cool! I love that you managed to fill in all the examples as you mentioned them-- this is a really high quality video!

  • @anasadeelallawala4156
    @anasadeelallawala4156 4 года назад +1

    I wish RUclips had a option to like a video multiple times because this video truly deserves it.

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

    So glad I'm not the only one constantly looking up switch statement syntax in different languages.

  • @wixic111
    @wixic111 4 года назад +1

    Gotta be the most wholesome coding RUclipsr

  • @tzisorey
    @tzisorey 4 года назад +41

    "Is there a more efficient way than writing a line of code for each possibility? Possibly"
    vs
    "We're writing it this way, not for efficiency, but for understanding"

    • @bradfin12
      @bradfin12 4 года назад +1

      Writing it this way is the most efficient because it allows you to use a switch statement. You can find a way to write it with fewer lines of code but that won't make the code faster since you will undoubtedly require several nested "if" statements which are much slower than one big switch statement.

    • @jensBendig
      @jensBendig 4 года назад +7

      Instead of a switch, I prefer an Array of 16 Objects that hold 16 solutions...that is easy, quick and easy to understand. Great Video, b.t.w.

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

      @@jensBendig If you were going to go down that route a hash-map would likely be better since you could map each value to a solution. either way you are going to have to declare all those solutions at some point, it's just a matter of whether or not the switch is making the code less readable. (In a better editor such as vscode you could just hide the logic in the switch statement too which could be a nice solution)

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

      @@bradfin12 I like you. At least I like this attitude. Terry Davis made an interesting remark about Switch statements, too. Not sure if it applies in something as high-level as Processing or the JS-Processing, but whatever.

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

      @@rabbitcreative Im not 100% sure but i think Davis would prefer fewer lines of code. Davis had two goals in mind when writing code: beautiful simplicity, and small file size. When doing large switch statements that process every case in the most efficient way is a somewhat ugly way to code and can increase file sizes which doesn't matter to most programmers but it would certainly matter to davis who wanted a divinely lightweight operating system.

  • @Ellehsdee
    @Ellehsdee 4 года назад +1

    Literally my favorite RUclips personality. Thank you for being awesome!

  • @jcasp0947
    @jcasp0947 4 года назад +8

    this has gotta be possibly my fav vid of yours, this is so insanely cool, especially all the different variations of visualizing it

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

    I kind of liked when the mic was in the table and I could hear more of the background noise. It made me feel like I was there in the Cabana too. Great video, as always!

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

    This is the coding video we need, where every problem is explained from basics. I love it. Thank you for sharing knowledge and making it wholesome :)

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

    Daniel, I follow you since 2016, I found out about you at the start of my most productive phase of my life, first year of the university, you tought me so much, without you I would not be the same person whom I love. Great work as always, thank you so much.

  • @FiveArc
    @FiveArc 4 года назад +143

    I loved the part where you made all the spacing even

    • @TheCodingTrain
      @TheCodingTrain  4 года назад +70

      Thank you for accepting me.

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

      I loved the part where, shortly after, it was all destroyed by the state line. I'm not a good person :)

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

      @@TheCodingTrain I'll go farther than that. I'll say you're right and the people who don't do this are WRONG

    • @sschmachtel8963
      @sschmachtel8963 4 года назад +1

      Not only that. I guess estetics can also have an impact on readability. Especially when having long fragments or even those that break lines within expressions. Those are kind of making a mess readible. Just wonder how they would look like if you mix in random spacing. Sometimes yes sometimes not. errr pretty sure I wouldnt like it

    • @MaxMustermann-ey5sc
      @MaxMustermann-ey5sc 4 года назад +1

      One time I had another dev almost screaming at me for doing that 🤣🤣🤣 (I am still doing it :) and blabla you folks 'its harder to maintain', sure, but it's so much easier to read!! )

  • @jsd64
    @jsd64 4 года назад +1

    This is the best thing I have seen all year. We were taught this in our Geometry class but never really got to work with it

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

    I have also recently started aligning my code by argument. It makes the intent so much clearer and much easier to figure out why my code is broken. It looks beautiful, thanks for another awesome video!

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

    Thank you so much for existing, your videos, your voice, your way of explaining and everything in between is so calming and wonderful. Thank you for the things you do for this community.

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

    WOW WHAT A VALUABLE VIDEO AND I LEARNT MANY THINGS FROM THIS VIDEO AS WELLAS FROM THIS CHANNEL.
    I WOULD LIKE TO RECOMMEND THIS CHANNEL TO MY CODING FRIEND

  • @rlenclub
    @rlenclub 4 года назад +8

    this is probably the most optimal setting for any job involving sitting in-front of a computer

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

    First, I started with GML.
    I saw your name on a youtube channel, I looked one of your vid. Two. Three, four, five, and so on. the addiction begun.
    I was planning to make some short video game (and a little bit of teaching). I'm actually trying to do art, "paint", fractal, and music with processing, and most of all,
    you made it fun to me.
    You're god teacher, thanks you. And great kisses from Belgium !

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

    I love these coding in the cabana videos because you really get in depth into the algorithm.

  • @faisaltaher851
    @faisaltaher851 4 года назад +1

    I love this series please continue it

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

    so glad I found this channel, thanks for making code feel more accessible!

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

    Thank you for making videos like these. They're always about something new and interesting to learn while not being too large in scope. They also make me really want a cabana to code in.

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

    You're like the Bob Ross of programming. Great video on a fascinating subject, stay gold!

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

    Geometric algorithms are always great to watch and to understand. Not only to be used for a single purpose. They pop up pretty much everywhere. And many have been invented years and years ago.Almost forgotten maybe even. Nice intro :-))

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

    boy that audio switch at 8:07 spooked the hell out of me. Great vid!

  • @Pedro-dn3sg
    @Pedro-dn3sg 4 года назад

    This is so awesome! I love your videos, somehow they make me relax after spending hours coding for work. The way you make math, geometry and coding so approachable and fun is unique, congrats!

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

    you are so great!!! it’s perfect to learn about algorythms with you!! fun, inspiring, brain-opening! i love you!! ❤️🙌🏾

  • @sohamkarandikar6726
    @sohamkarandikar6726 4 года назад +19

    Sometimes I feel Dan gets progressively wiser as his beard grows

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

    NGL, i used to always come up to your videos while doing some coding searches and brushed off cos, well, i code(at least try to LOL) in c# and tbh never ever even have taken a look at java/JS(yeah, pigheaded , i know)
    oh boy was i wrong, now i am hooked, never found someone that explains hard concepts, and make it so easy to understand like this
    thank you sir =)
    cheers from Brazil

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

    loving the vibes from the Cabana

  • @vorpal22
    @vorpal22 Год назад +3

    Another great video, and I'd never heard of Processing before now. It adds a lot of nice stuff to Java to make it easier.

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

    What a sweet little programming spot. I'm super jealous!

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

    I miss coding in the cabana
    (22 February 2023- I still miss the cabana)

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

    LOVED THE VIDEO (of course). I stopped formatting my code when those auto formatters appeared. I personally would rather turn them OFF, but the team would use it and then auto format any CUSTOM formatting out of existence. I blocks of code it's SO much more readable to line up equal signs, commas, parenthesis, etc. Your eye is able to pull out differences in the blocks quicker and the similarities will blend together creating less noise. I swear I need to write my OWN auto formatter... One of these days...

  • @samueleb.6739
    @samueleb.6739 4 года назад

    Dan, we really need you to start a series of video about shaders and shading languages. I keep looking around on the internet but nobody seems to even come closer to your ability to teach.

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

    Very cool and clever algorithm! I love Coding in the Cabana, thanks for the video!

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

    Wonderful blocking in this video, I love how the OpenSimplex noise created a lot more spacious and separate areas. It would be amazing to see how this could be utilized the the creation of video game levels.

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

    the algorithm for connecting the middle points for only one and zero can be reduced to 4 case:
    the 2 special cases where you have to draw 2 lines: when there are 2 1s that are on the same diagonals (cases 5 and 10).
    the case where you have to draw none(case 16)
    In every other case, find the 2 middlepoints between a 0 and a 1 and connect them.
    so the pseudo code would be:
    find the number of "alternating" midpoints:
    if 0: done
    if 2: connect the 2
    if 4: check whether it's case 5 or 10 and draw accordingly

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

    The glorious return of Gloria! ❤️

  •  4 года назад

    the production quality is insane, very nice video! :D

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

    Your videos are awesome! You're awesome! I learned to program with you like 2 years ago, loved it!
    Keep doing your thing!

  • @jedmoutahir
    @jedmoutahir 4 года назад +1

    That's beautiful, I'll try playing with this code ! Thanks a lot for your work !

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

    You are the best teacher i have ever learned from :)

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

    Great teacher! Always with something fun for us!

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

    Holy 5&!# I was literally looking up your videos yesterday trying to build this! You are brilliantly and cleverly convenient!

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

    I'm not sure of the efficiency of this, but for determining where to draw lines, if we treat the square as the bits (in the order we would read them), so topleft, topright,bottomleft, bottomright. then the lines inbetwee also as binary numbers, in the order top,left,right,down, then you can treat
    1000 (topleft corner only) as connecting the edges top and left (1100)
    0100 (topright only) connects top and right (1010)
    0010 (bottomleft only) connects bottom and left (0101), and
    0001 (bottomright only) connect bottom and right (0011)
    SO to get to the point, if we treat every sequence of corners as their individual parts, then convert those parts into the edges they connect and xor them together, you get which edges to connect
    for example 1100 would be the top two edges, and they should connect left to right (ie 0110), so we can decompose them into
    1000 as 1100 and
    0100 as 1010, then bitwise xor 1100 with 1010 to get
    0110 which is what we expect.
    Hopefull this made sense.

  • @DMike92.
    @DMike92. 2 года назад

    Great great video among all marching square videos I watched!

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

    I have only one word to say for this video:
    *Mesmerizing*
    Awesome video as always Dan! Liked and Subscribed!

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

    Thanks for this! You're the best. You're explanation of marching squares was a great help to me :)

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

    these are my favorite videos of yours

  • @bincyninan8719
    @bincyninan8719 4 года назад +1

    Made my day better

  • @alexsandergutierrezgoncalves
    @alexsandergutierrezgoncalves 4 года назад +1

    the power of numbers binary, is very good

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

    Love the paintings in the background! :)

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

    Never be afraid to google the syntax for anything. Programming isn't syntax its understanding the problem given and being able to break it down into small parts and keep track of those connections. I haven't been programming for 20 years but i have been for 10 and I switch between languages constantly throughout the day (c#, java, js, sql, html). I google how to make a switch or a foreach everyday because theres documentation for that but there isnt documentation for your app. What i mean is as long as you figure out the logic you can always google the syntax or as long as you figured out you need a switch on a enum you can always look up how to write a switch and an enum for your language.

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

    I realised the moment you explore the idea of colour you could easily create a light + shadow system,
    Also the idea of a lava lamp might work from what you showed at the end. Iv been wanting to imagine how to make a lava lamp work for a long time
    some very cool stuff :D always a treat!

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

    I haven't watched any of your Coding in the Cabana videos yet, but I'm getting some serious Bob Ross vibes from this video in particular :P

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

    This will make a lovely background for my led matrix clock. thank you.

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

    Amazing tutorial. I recreated this in python. For perlin noise I basically made the array and just add 0, -1 or 1 to the points, to either keep em at 1 or go to zero or go from zero to 1. Gonna figure out how to make a nicer version.

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

    Just wanted to say thank you for being amazing.

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

    Very helpful! I really love your style of teaching :)

  • @marcelomafra
    @marcelomafra 4 года назад +38

    24:41 An ant is locked inside the algorithm.

    • @electricengine8407
      @electricengine8407 4 года назад +1

      i just checked the comments to see who else saw the ant and i saw this comment lel

    • @juror12
      @juror12 4 года назад +6

      It's just a bug...

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

      Aren't we all?

    • @gatedrat6382
      @gatedrat6382 4 года назад +1

      langton's ant

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

      yes, it's a test if you pay attention

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

    Nice to see OpenSimplex going to good use as always!

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

    to get rid of switch statement you need to make an array of a, b, c, d (points) and array of of their connections and each connection is four digits where first two digits are describing first line ans last two describing second line if it exists (we need max two lines), so state = getState(...)and p1, p2, p3, p4 = points[connections[state][0]], points[connections[state][1]] ..., then you need to validate p3 and p4 and then lines are ready(still much code but more elegant)

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

    Daniel Shiffman. Please never change.

  • @JDogA-uh6mn
    @JDogA-uh6mn 4 года назад

    So happy to see another one of your videos :)

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

    The 16 configurations I think could've been sized down to four configurations based on symmetry.
    1. No line: fig. 0 & 15
    2. One corner line: fig. 1, 2, 4, 7, 8, 11, 13 & 14
    3. One straight line: fig. 3, 6, 9 & 12
    4. Two corner lines: fig: 5 & 10

  • @daboffey
    @daboffey 5 месяцев назад

    One alternative to using a switch statement would be to use a 16-element array of 6-bit integers. e.g. (using C/C++ as that is what I understand)
    const unsigned lines_to_draw[] = {000, 001, 002, 020, 004, 005, 040, 010, 010, 040, 012, 004, 020, 002, 001, 000};
    unsigned l2d = lines_to_draw[cuts]; // where cuts is a number representing the edges to cut
    if (l2d & 001)
    // draw line cutting off corner D
    if (l2d & 002)
    // draw line cutting off corner C
    if (l2d & 004)
    // draw line cutting off corner B
    if (l2d & 010)
    // draw line cutting off corner A
    if (l2d & 020)
    // draw horizontal line
    if (l2d & 040)
    // draw vertical line

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

    *Cries in indexed map*
    Amazing video as always, thanks for all the content you make for us :)

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

    Dude I just discovered your channel and you are amazing. Really great job and a video to enjoy. Thanks a lot!

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

    Looks like I'll be watching this one with great interest

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

    I love your energy

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

    Excellent as always

  • @123TeeMee
    @123TeeMee 4 года назад

    I think the best option for shortening and performance enhancing the switch statement is to just use an array of line parameter values to look up, with index n being the 1st parameter of case n/2 and index n+1 being the 2nd parameter of that case (alternatively have all the 1st parameters in order, then all the 2nd). The fact that the cases are mirrored along the middle doesn't matter as the array can be hardcoded into one or two lines so its not shorter, and computing the reverse would be worse than having a bit more space allocated to the array. The array would act a bit like a dictionary/map of key:value pairs, except the index is the key -1. Edit: just realised that there are sometimes two lines, doesn't really matter, you can make the array twice as big and fit all the 4 parameters in there. If there's 1 line then the two other values in that section of the array hold value 0 and when drawing lines iterating through the array, just don't draw a second line if it would be inputting two zeros.

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

    Love this! I may use this techinique in some indie game experiment one of these days

  • @devdaily2129
    @devdaily2129 4 года назад +1

    A, B, D, C, etc are typically bad variable names because they are ambiguous. If you look at your code weeks later it may be a little confusing. Just food for thought!

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

    Thumbed for aligning the spacing at 11:26. Aligned spacing 4 LYFE.

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

    the interpolated one looks great

  • @akosbalint3485
    @akosbalint3485 7 месяцев назад

    Thank you! Very nice explanation.

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

    Love the ProPublica shirt!

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

    This is so awesome!!
    Thanks for the great video :)

  • @romain-up3ce
    @romain-up3ce 4 года назад +10

    the coding train 23:35 : makes the canvas full screen
    the youtube compression algorithm : *AAAAAH*

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

    Nice explanation! As a suggestion: you can also make a video on dual contouring and explain the pros and cons with marching squared.

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

    I love this format ❤️ keep it up

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

    i like the new video editing style and quality! :)

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

    Wow your new video very pack with information and still have a same average of video length duration. Cool. Thumbs up

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

    So fun, great work

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

    That getState function would have been a great opportunity for some bitshifts and bitwise OR (i.e. return a

  • @scottbigbrain3944
    @scottbigbrain3944 4 года назад +2

    What would be really cool is finding a way to completely fill in all of the shapes created by marching squares, then treat the filled in areas as surfaces and use them in a video game. With something like that you could use something like OpenSimplexNoise and have it progress at a very slow rate to make a shifting changing maze.

    • @callowaysutton
      @callowaysutton 4 года назад +1

      The values are already there? Make it so the player can only pass through points that have a certain magnitude :)

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

      @@callowaysutton Do you mean the grid intersections that you are using to create the marching squares, or do you mean that they can only pass through pixels that have certain values?

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

      @@scottbigbrain3944 Pixels of a certain value, the grid formed from the marching squares is formed from this as well too

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

      @@callowaysutton So if I understand correctly, you would only use the marching squares as visualizations, and use the pixel values from the noise to determine the surfaces? That would be pretty cool, though I do feel that you would need fairly high resolution of the grid in order for it to feel natural and align with the visualization of marching squares. There was this one guy who made a game with this (The Coding Train liked his comment), so I think that I might look at his code and see how he did it. The youtuber was leonlenclos.

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

    I love the ProPublica shirt!!

  • @nicnakpattywhack5784
    @nicnakpattywhack5784 4 года назад +1

    you could try to have the lines on the right and have it make a 3d model on the left using the animation of the 2d layers. basically, the left shows the 3rd dimension as time, and the right will show it as space using the 2d slices.