Superpositions, Sudoku, the Wave Function Collapse algorithm.

2020 ж. 30 Шіл.
673 696 Рет қаралды

In this video I explore the wave function collapse algorithm, and explain how I went about implementing it using Blender and Godot.
WFC demos on itch:
bolddunkley.itch.io/wfc-mixed
bolddunkley.itch.io/wave-func...
References:
marian42.de/article/wfc/
oskarstalberg.com/game/wave/wa...
github.com/mxgmn/WaveFunction...
robertheaton.com/2018/12/17/w...
Me:
Patreon / bolddunkley
Twitter / bolddunkley
itch.io bolddunkley.itch.io/
Software used for this video:
(Content)
Blender 2.8 www.blender.org/
Godot 3.2 godotengine.org/
OBS obsproject.com/
Kdenlive kdenlive.org/en/

Пікірлер
  • With a name like Wave Function Collapse, I was expecting some really advanced mathematics, but this is actually beautifully simple and intuitive.

    @tonogram@tonogram2 жыл бұрын
    • A lot of things in mathematics are beautifully simple and intuitive. It's just that mathematicians are really bad at explaining things. Or to be more exact, they are really good at explaining things to other mathematicians.

      @aarondewindt@aarondewindt2 жыл бұрын
    • i dont know about beautiful, but simple for sure.

      @jessiejanson1528@jessiejanson15282 жыл бұрын
    • Just like the Universe.

      @Piotrek7654321@Piotrek7654321 Жыл бұрын
    • @@Piotrek7654321 i dont know about Universe, but you for sure.

      @rawallon@rawallon Жыл бұрын
    • @@rawallon A stranger on the Internet just called me beautiful? Aww, thank you

      @Piotrek7654321@Piotrek7654321 Жыл бұрын
  • Never thought about comparing it to sudoku, that's such a smart way of describing it!

    @morganlak4337@morganlak43372 жыл бұрын
    • I thought of the game carcasone.

      @m4rt_@m4rt_2 жыл бұрын
    • @@m4rt_ 2D representation for something that looks complicated in 3D. Nice!

      @ocaly@ocaly2 жыл бұрын
    • @@ocaly Yes but interestingly, you can also see the sudoku as a 3d problem. You have an X and Y axis, but given that any number from 0 to 9 can be on the same space at the same time you can also represent this as a Z axis.

      @lucadeacha@lucadeacha2 жыл бұрын
    • @@lucadeacha you could look at it from that way and there are many sudoku variants even using that (f.e. "skyscraper sudokus").

      @ocaly@ocaly2 жыл бұрын
    • @@lucadeacha or cubedoku's which is precisely what you're describing. but skyscraper sudokus is more well-known example among the online sudoku peers.

      @ocaly@ocaly2 жыл бұрын
  • This is literally the best explanation for how this algorithm works.

    @martinbecker2164@martinbecker21642 жыл бұрын
    • Well, the explanation is super simple because it completely glosses over/ignores what happens when the constraint propagation fails and you need to backtrack or start over. There is a split second at 12:04 where two big pink exclamation points show a failed propagation -- what to do with that is not explained at all, and in fact is the most difficult part of designing a WFC algorithm that doesn't run for hours or fail 99% of the time.

      @OMGclueless@OMGclueless2 жыл бұрын
    • @@OMGclueless Well, Ok that's a fair point & I did notice that but didn't quite understand what they meant, but for an explanation on how it generally works, I've found a lot of other explanations to be super complex or not very intuitive, especially when compaired to this explanation.

      @martinbecker2164@martinbecker21642 жыл бұрын
    • @@OMGclueless Agreed. I was just about to reply with this same question.

      @kenhaley4@kenhaley42 жыл бұрын
    • I see Martin, i like

      @mrmartinwatson1@mrmartinwatson1 Жыл бұрын
    • @@OMGclueless Backtracking is not part of WFC itself and is thus probably just outside this video's scope - the original WFC implementation quits when it encounters a contradiction. Backtracking just happens to be a very helpful addition to WFC :] That said, the fundamentals of backtracking are fairly simple to explain and probably could've been mentioned - you push every collapse and the pre-collapse state onto a stack, and if the collapse causes a contradiction, you pop that collapse and remove that candidate from that cell's candidate list and propagate that. If that removal also causes a contradiction, you pop yet another collapse off the stack, and so on. The difficulty comes from storing the pre-collapse state in such a way that it won't eat all your memory or require recalculating most of the state at each Undo, and that's definitely beyond this video's scope.

      @kyousouka@kyousouka Жыл бұрын
  • This is one of the most well-presented videos, on a technical subject, that I have ever watched on youtube. Great work, looking forward to more content.

    @iankaranja7765@iankaranja77653 жыл бұрын
  • Watched more than 3 hours of implementations and explanations about wave function collapse, Can confirm that this one was the best from every aspect, Thank you!.

    @noamrtdthesorcerer733@noamrtdthesorcerer73312 күн бұрын
  • This is super useful for generating levels with a set number of points of interest. You add whatever things you want to have in a level at random points and maybe add roads between them and after that you can make this algorithm do its magic to fill in the details. Very nice!

    @Sergeeeek@Sergeeeek2 жыл бұрын
    • though it would be different for every user unless you have some way to define what goes where specifically by the coordinate.

      @jessiejanson1528@jessiejanson15282 жыл бұрын
    • @@jessiejanson1528 as long as your pseudorandom selection process is consistent then it shouldn't be an issue

      @Lord_Drakostar@Lord_Drakostar Жыл бұрын
  • Terrific explanation! I recently finished reading "Doors of Eden" (by Adrian Tchaikovsky), a novel in which wave function collapse influences the plot outcome significantly. I'm going to share the link for this video with my wife and a friend who've also recently read the book but who are both humanities scholars rather than techies, because if they simply stop at the beginning of the programming section, they will get an extremely lucid and approachable explanation of the theory. Well done, and thanks for sharing.

    @scottcourtney8878@scottcourtney8878 Жыл бұрын
  • If you add recursive backtracking to this algorithm, you'll end up with a classic algorithm for SAT solving, called DPLL. Also, DPLL is very old and outdated, so if your constraints are too complex to find a solution with it, consider taking inspiration from CDCL algorithm, or just use the off the shelf SAT/SMT solver, like Z3.

    @luck3949@luck39492 жыл бұрын
    • I'm working on creating a complex sudoku solver for variant sudoku rules, and my current algorithm that I came up with seems to reduce to DPLL. Do you know of some elementary resources where I could learn some more about CDCL to make my algorithm faster? I got a minor in comp sci, but most of the resources that I've seen are borderline graduate CS level.

      @sweetcornwhiskey@sweetcornwhiskey2 жыл бұрын
    • @@sweetcornwhiskey I learned about that algorithms from presentations of Emina Torlak from her Washington University course, you can google that course. Once you get through the notation, that should be understandable.

      @luck3949@luck39492 жыл бұрын
    • @@sweetcornwhiskey CSE 507

      @luck3949@luck39492 жыл бұрын
    • @@luck3949 Thanks!

      @sweetcornwhiskey@sweetcornwhiskey2 жыл бұрын
    • @@sweetcornwhiskey there's been a SAT competition for the past 20 years: see SAT RACE / SAT COMP. You will find an assortment of different solvers source codes to look at/reference. A lot of the content is dense/state of the art, but the assorted info over the years is probably the best resource for speeding up SAT solving. You might find a PhD dissertation/Survey or two where the "preliminaries" or "background” section explain completely the ideas, reasoning behind it, etc. before jumping into what is likely more difficult.

      @notjnsz@notjnsz2 жыл бұрын
  • Best WFC explanation I've watch. Thanks !

    @Ziboo30@Ziboo303 жыл бұрын
    • It really is! And even provides links to all the further reading you want. Great video.

      @fearian@fearian3 жыл бұрын
    • Agreed. Definitely brings this ‘WFC’ that we have been seeing from the likes of Oskar Stalberg since some years now to humanly possible understandable levels. The Sudoku explanation is quite straightforward to grasp the concept, at least for me. Deserves the patron support hands down.

      @alejmc@alejmc3 жыл бұрын
  • Excellent! I'll be eagerly watching your future videos. Are you also using Doom Emacs with the gdscript layer? If you have any suggestions for improvements they're welcome on the repository.

    @Gdquest@Gdquest3 жыл бұрын
    • I'm actually using pycharm but I can see why you'd think that, the colour schemes are almost identical. I'll definitely look into it though.

      @MartinDonald@MartinDonald3 жыл бұрын
    • I guess im asking the wrong place but does anyone know a tool to get back into an Instagram account..? I was stupid lost the password. I would love any tips you can offer me

      @kingsleylangston1959@kingsleylangston19592 жыл бұрын
    • @Sylas Casey i really appreciate your reply. I got to the site on google and I'm trying it out atm. Looks like it's gonna take a while so I will get back to you later when my account password hopefully is recovered.

      @kingsleylangston1959@kingsleylangston19592 жыл бұрын
    • @Sylas Casey it did the trick and I actually got access to my account again. I am so happy! Thank you so much you saved my account !

      @kingsleylangston1959@kingsleylangston19592 жыл бұрын
    • @Kingsley Langston no problem :)

      @sylascasey3828@sylascasey38282 жыл бұрын
  • This is by far the clearest and most detailed explanation i saw on the subject, thanx a lot ! I was wondering, just like for sudoku, is it possible that the algirithm runs into a dead end by selecting a combination of tiles that doesn't allow a suitable neighbour in some cases? Is there a strategy for the algorithm to backtrack and correct that, or is it better to start over again or carefully craft a tileset that allows every possible combinations?

    @RemyDrijkoningen@RemyDrijkoningen3 жыл бұрын
    • This can absolutely happen. Backtracking is a good option definitely, but I never got around to implementing anything like that. My implementation just starts the whole process again if any cell ends up completely empty of options. Making sure your tileset covers all bases definitely helps avoid contradictions.

      @MartinDonald@MartinDonald3 жыл бұрын
    • I was thinking that for each axis we might store a growing list of changes, so more recent changes are at the end. Then we could do a targeted backtrack looking only at the values which directly constrain a given location. I haven’t worked out how that would fit with the required propagation steps yet… it wouldn’t be as clean as a simple backtrack everything (breadth first search) but it feels like it should be hugely faster.

      @j.j.maverick9252@j.j.maverick92522 жыл бұрын
    • @@j.j.maverick9252 If you only remove selected changes, there could be issues where the algorithm would prefer certain patterns of cells to be faaar more used than other patterns. Especially if a constraint is quite old, it would have influenced the choices for a lot of other cells. You could absolutely consider this intended behavior, but a small change in your tiles could cause quite large repercussions on the average outcome.

      @abraxas2658@abraxas26582 жыл бұрын
    • seems like the best solution is just to solve it in a circular pattern going around the starting point. i cant imagine it would ever get stuck.

      @jessiejanson1528@jessiejanson15282 жыл бұрын
    • @@jessiejanson1528 It absolutely can get stuck. You're talking about a FIFO Stack (First In First Out) for cell determination which is what this video shows, so long as you are leveraging squares (as in this example) you can run into impossible scenarios. In example, look at your number pad, take 2, 4, 6, and 8 to be South, West, East, and North respectively. You pick a determinate cell for North. You're now acting on East (clockwise), and just like North you have all the same options. Fast forward a bit and now deal with "North East" Your cell now has 2 restrictions applying to it to which you may have contradictory rules (See the example at 5:35). This is just hypothesis at the point of writing this but I suspect that one of three things can help mitigate this: 1) Hexagonal Cylinders (making all surrounding cells directly relate to an immediately previously set cell's face) 2) Writing an algo to parse your "tile set" and make sure you have Tile Sets that fulfil all iterable conditions (so assuming outwards propagation, 2 faces for a 2d square tileset, 3 faces for a 2d hexagon tileset and, atleast 3 faces for a 3d tileset) 3) Making sure no Tile Face Socket exists only twice. (for the same reason as #2, if a face only has one possible match you're significantly more likely to enter a dead end.

      @sabata2@sabata2 Жыл бұрын
  • The idea to just analyze an example level to determine valid sockets is great. I did not even think about that. Makes it much easier to create complex rules and have the computer imitate the style of a human Level Designer.

    @vast634@vast634 Жыл бұрын
  • Normally my brain hurts when I try to grasp new concepts, but that just didn't happen now. You have a way of explaining things making the concepts very easy to understand

    @cohan000@cohan000 Жыл бұрын
  • Wow, this was amazing. So well organized, articulated, and indeed respectful of my time. You sir have earned a sub + bell. Thank you for this I'm sure I'll end up referring back to this one day.

    @cintron3d@cintron3d3 жыл бұрын
  • This is honestly not only extremely well explained, but also beautiful too

    @abraxas2658@abraxas26582 жыл бұрын
  • Nicely presented! I thought you were going to talk about physics but I watched the whole video because this algo idea is so fun, and all the info was a good mix of visual demo and technical details, perfect for morning coffee :D

    @oncedidactic@oncedidactic2 жыл бұрын
  • That was mind-bending! Really some food for thought! And you've convinced me to take up Sudoku! I really love that you relate Sudoku to wave function collapse in this way! Really helped something *click* in my brain; thank you!

    @3nertia@3nertia2 жыл бұрын
  • I really appreciate the effort you put in to explain what I once thought was a really difficult algorithm to understand. Great Job!

    @jashanbhullar3384@jashanbhullar33842 жыл бұрын
  • The way you break down the software is perfect for learning key concepts on a functional level. In my eyes, you are the gold standard. You can bet that I will be watching everything you'd ever made over the upcoming days

    @Gogglesofkrome@Gogglesofkrome2 жыл бұрын
  • Man you're so good! cant believe this channel is so small :O really helped me out with my next project :)

    @MujjMujj@MujjMujj3 жыл бұрын
  • WOW, this is an incredibly well-made video. You've done such a good job teaching and choosing your metaphors.

    @DariusKazemi@DariusKazemi3 жыл бұрын
  • Absolutely loved this video, especially love how in the beginning you compared it to something that everyone can understand before going more in-depth.

    @itToxic@itToxic2 жыл бұрын
  • AWESOME video! Thank you so much for the extremely detailed overview of this algorithm! I definitely feel like I have a grasp on how to implement and modify it. Thanks again!

    @willlacey7621@willlacey76212 жыл бұрын
  • By far the best introduction to and explanation of WFC I've come across...! Thank you for taking the time to make this.

    @PhilipBlyth@PhilipBlyth6 ай бұрын
  • Thank you for the fantastically clear, intuitive, and well-articulated explanation 🙂 Much appreciated ❤️

    @bilalakil@bilalakil3 жыл бұрын
  • This is the best explanation video on WFC I have found! Alone with the example at the beginning I could conceptualize the algorithm. great work!

    @minleyfox5231@minleyfox5231 Жыл бұрын
  • This may be one of the best videos on this topic I've ever seen. Its explanatory power is breathtaking. This just shows the principle so well with so little wasted effort.

    @slackstation@slackstation3 жыл бұрын
  • dude, this video is so good, I've looked at explanations on WFC for ages and this one really made me understand it

    @Darfk@Darfk2 жыл бұрын
  • You did a fantastic job of explaining this concept. Thank you so much!

    @liam2317@liam23172 жыл бұрын
  • Without a doubt one of the best explanations I've heard/seen. Thank you so much for that.

    @DavidSmerkous@DavidSmerkous2 жыл бұрын
  • Sudoku example was brilliant, Thank you so much .🙏.

    @shanmathew152@shanmathew152 Жыл бұрын
  • Very nice and compact video, makes me want to program my own implementation from scratch. Also, the comparison of the wave function collapse to sudoku was what made it click for me, very well done :)

    @custom_name854@custom_name8542 жыл бұрын
  • good video! haven't found many good channels like this explaining algorithms or CS concepts, have subbed!

    @AntEr3Bu5@AntEr3Bu5 Жыл бұрын
  • heck, you explained wave function collapse so beautifully in just two minutes. i am sticking around for the rest of the video of course but even so i had to compliment you on being so succinct

    @technopoptart@technopoptart Жыл бұрын
  • this is awesome, you explained the concept so well that it just intuitively clicked for me. i feel like the number of tools in my mental toolbox as a programmer has increased after watching this video

    @albingrahn5576@albingrahn55762 жыл бұрын
  • Best WFC Explanation never thought of comparing it to Sudoku. Nice Vid!!

    @CodingCircle@CodingCircle2 жыл бұрын
  • Thanks for this high density video! Beautiful masterpiece, you earned my subscription!

    @NathanielWyatt@NathanielWyatt Жыл бұрын
  • Of all the videos that I watched on wave function collapse, yours is by far the best at explaining it.

    @rosva4331@rosva43312 жыл бұрын
  • Wow! Thank you for a great explanation and for mentioning all these references! I realized that when developing something like a tile engine I can avoid making an editor to create test levels (at least at the beginning) and use WFC to generate levels automatically.

    @qwertyuuytrewq825@qwertyuuytrewq8253 жыл бұрын
  • Excellent video! Thanks for sharing! Also, you are the reason I created a Patreon and you're the first person I'm sponsoring! :) Great job!

    @alexandrupostolache6704@alexandrupostolache67043 жыл бұрын
    • Thank you so much!

      @MartinDonald@MartinDonald3 жыл бұрын
  • I've been reading about wave function collapse for a few days, and four minutes into your video I already understand it better than everything else I've seen combined. Fantastic job

    @evilplantosavetheworld@evilplantosavetheworld3 жыл бұрын
  • Hands down the best explanation for WFC I've ever seen. Kudos!

    @gharren@gharren Жыл бұрын
  • wow.. this is the most amazing explanation ever.. Please Please keep making high quality videos like this.

    @PinikRahman@PinikRahman3 жыл бұрын
  • Looked at some of your other videos as well. Brilliant content! Subbed.

    @JanezKrnc-San@JanezKrnc-San Жыл бұрын
  • Brilliant, concise, informative and fun! A truly exquisite piece of education.

    @clockworkkirlia7475@clockworkkirlia7475 Жыл бұрын
  • Incredible content. Amazingly explained. I'm excited to see more

    @debemdeboas@debemdeboas2 жыл бұрын
  • Very informative, thank you. I’ve been considering implementing wfc in music composition, and this explanation helps me grasp it. Have a pleasant day.

    @anothercastle17@anothercastle17 Жыл бұрын
  • Holy crap, I just stumbled upon this channel randomly and I'm stunned. Amazing content, thank you for this.

    @dotvhs@dotvhs Жыл бұрын
  • This is the best explanation I've seen for WFC - it's got me thinking about where I can apply it, and I don't write games. I also accidentally watched all your back-catalogue. Pity there aren't more - they're all really well explained!

    @howardjones543@howardjones5432 жыл бұрын
  • Thank you so much for your video! Great material and superb delivery, I enjoyed it a lot!

    @VladgavligGapchich@VladgavligGapchich3 жыл бұрын
  • This is basically a computer playing Carcassonne

    @marcusmelander8055@marcusmelander80552 жыл бұрын
  • That was just enough information to be able to write it and not be lost. Thank you for not over or under explaining it like most videos do.

    @drummerman883@drummerman8834 ай бұрын
  • holy shit this makes it make so much sense, i wouldnt have known this comparison would work so well! Good discovery!

    @abdullahx8118@abdullahx81182 жыл бұрын
  • This is so well made and perfectly explained. You need way more subs!

    @eftorq@eftorq2 жыл бұрын
  • Really nice explanation and visuals!

    @VictorGordan@VictorGordan2 жыл бұрын
  • Amazing tutorial and explanation. Thank you!

    @realMenta@realMenta2 жыл бұрын
  • What a great way to explain this! Wonderful video

    @yonatanchapal7800@yonatanchapal7800 Жыл бұрын
  • Well explained! Thanks for your effort!

    @chloesun1873@chloesun18732 жыл бұрын
  • This is so great! The presentation is excellent! Will share on LinkedIn soon.

    @drtristanbehrens@drtristanbehrens3 жыл бұрын
  • This is fantastic! Thank you!

    @DrBossKey@DrBossKey3 ай бұрын
  • Looking forward to your content, Wave Function Collapse algorithm is awesome, can't wait to try out in game.

    @SaiponathGames@SaiponathGames2 жыл бұрын
  • This was an excellent video! A really great explanation of this kind of generative art.

    @NedTheUndead@NedTheUndead2 жыл бұрын
  • I'm so glad I found your channel. You really remind me of Sebastian Lague! Your content is phenomenal, I really hope your channel picks up more traction soon. Cheers!

    @azeews1368@azeews13683 жыл бұрын
  • Wow, this video was amazing

    @maurovictor7391@maurovictor73919 ай бұрын
  • Woah, I'll have to do a tier in your patreon, this is so well explained

    @jefflhama@jefflhama3 жыл бұрын
  • Amazing loved this!

    @ninekay9@ninekay9 Жыл бұрын
  • Well explained. Thank You!

    @cwhy@cwhy3 жыл бұрын
  • Thank you so much. This is the cleanest explanation I came across so far. ❤

    @PuraTvOyun@PuraTvOyun2 жыл бұрын
  • the amount of math and editing required for this video is insanely impressive

    @TeamUnpro@TeamUnpro2 жыл бұрын
  • Omg you are a genius! I never learned AND understood so much information at once. Great work!!

    @devtx649@devtx6492 жыл бұрын
  • This is amazing! This'll help me so much! Thank you!

    @rmt3589@rmt3589 Жыл бұрын
  • This is pretty cool. Now I have to thinknif this is going to work for our game. Thanks

    @JasonCummer@JasonCummer2 жыл бұрын
  • Such a great video, thank you!!

    @drevoksi@drevoksi Жыл бұрын
  • Thank You! This video helped it all make sense! I love your "wax on, wax off" trick about teaching us Wave Function Collapse through sudoku! Right when I'm like wait, I want to learn about Wave Function Collapse, you have already tricked me into learning it! I knew karate the whole time.

    @jessef3462@jessef34622 жыл бұрын
  • Thank you for creating quality content that appreciates our time.

    @Forummaker@Forummaker3 жыл бұрын
  • First explanation of WFC that I actually understood, thanks!

    @jasperkennis8499@jasperkennis84992 жыл бұрын
  • This is the best wave function collapse video out there. By far. 10/10

    @noxabellus@noxabellus Жыл бұрын
  • this was brilliant! come back, make more, please!!

    @jeanahollings@jeanahollings2 жыл бұрын
  • DUDE SUCH A NICE EXPLANATION! THANK YOU SO MUCH

    @MiguelAngelJD@MiguelAngelJD2 жыл бұрын
  • just got my own implementation working in unity, this video was a massive help!

    @vyzirT09@vyzirT092 жыл бұрын
  • This video is fantastic, thank you Martin.

    @Jacob_graber@Jacob_graber2 жыл бұрын
  • This video deserves more views! Amazing explanation and great video :D

    @RabidTunes@RabidTunes3 жыл бұрын
  • As someone looking to do a wave function collapse implementation the really helped me understand

    @asadplatypus3940@asadplatypus3940 Жыл бұрын
  • thanks for the video it help me get inspiration for an unrelated code problem I was having :)

    @dumbdum4116@dumbdum41162 жыл бұрын
  • Clearly explained - thank you!, a good taster to get into this. Subbed!

    @GloriousAssam@GloriousAssam3 жыл бұрын
  • Besides the name, what is it that makes "wave function collapse" different from general constraint propagation? Or is it just a name for a particular way to propagate constraints?

    @frechjo@frechjo3 жыл бұрын
    • I was thinking the same thing. I'm quite accustomed to quantum mechanics, so the terminology is perfectly intuitive for me, but I don't see how making this analogy would be all that helpful for the average game developer. Seem like an unnecessary abstraction. I'm guessing the main purpose is to make you sound like you're doing something more clever and complicated than you really are.

      @egodreas@egodreas2 жыл бұрын
    • @@egodreas It's very possible that it is a reinvention of the wheel with a different name. Game development can be somewhat disconnected from a lot of "traditional" computer science, especially for the more sciency parts of CS.

      @tylisirn@tylisirn2 жыл бұрын
    • The analogy becomes a bit clearer once you add more additional constraints. Entropy (number of allowable states) and coupling constants (weights). E.g. Entropy can be a somewhat non local constraint. Yes, this is all JUST constraint propagation (as all of physical is JUST mathematics) but the analogy is more natural. We don't choose arbitrary constraints, but such constraints that mimic behavior of physical system and by which, by experience, create more "natural looking" results.

      @michaelrenper796@michaelrenper7962 жыл бұрын
    • @@michaelrenper796 After making that comment, I went ahead and looked a bit more what this was about. It's as much about constraints, as it is about random generation (if my memory serves me right). I think it makes sense for it to have its own name. Maybe not so much for the way it's done. More for the fact that it's applied with a specific purpose, and thought of as a specific technique for that.

      @frechjo@frechjo2 жыл бұрын
    • @@frechjo "constrained level generation" sounds more apt to be

      @emilybjoerk@emilybjoerk2 жыл бұрын
  • Lovely video. Thank you so much for this!

    @ZioBlu@ZioBlu2 жыл бұрын
  • (honestly I don't think I've pressed subscribe this quickly before) amazing video ♥️

    @folkusonme@folkusonme2 жыл бұрын
  • I have learned so much from this video, and I thank you so much!

    @0_-@0_-3 жыл бұрын
  • Just found this channel and it is absurdly good -- wow!

    @jeandeux2711@jeandeux27112 жыл бұрын
  • Awesome video, thank you very much!

    @tuazulyrojoeljean@tuazulyrojoeljean Жыл бұрын
  • This video is illuminating!

    @emicandea9819@emicandea9819 Жыл бұрын
  • Wow, comparing it to sudoku was smart. That made it so much easier to wrap my head around!

    @Nightstick24@Nightstick24 Жыл бұрын
  • Best explanation i have ever seen Hope u can cover more topics like these

    @iamnotapro869@iamnotapro8692 жыл бұрын
  • Thank you for creating this excellent video!

    @ConsumerOfReality@ConsumerOfReality2 жыл бұрын
  • so simple but so powerful I love it

    @vornamenachname8001@vornamenachname80013 жыл бұрын
  • Great video! Sudoku interpretation opened my eyes)

    @ianbabich1238@ianbabich12382 жыл бұрын
  • best explanation of the wave function.

    @lukasostar3008@lukasostar30082 жыл бұрын
  • Very clear explanation!!! Thank you!!!

    @user-iq3ys6rl3e@user-iq3ys6rl3e3 жыл бұрын
  • EXCELLENT PRESENTATION!!

    @andressolar517@andressolar517 Жыл бұрын
KZhead