How Computers Draw Weird Shapes (Marching Squares)
In this video, we start with an interesting animation of blobby objects which we introduce as metaballs. There's a lot of surprisingly intricate ideas behind making these objects render on a screen. We'll see how folks in computer graphics attempted to solve this problem through a really elegant algorithm called marching squares. Marching squares is a really powerful algorithm that allows you to render any implicit function. But what's even more impressive in my opinion is the many clever shifts in perspective that allowed a vague problems such as this one to be transformed into a clear, well-defined, and solvable problem. 0:00 Introduction 3:29 Circles and Ellipses 4:57 Defining the Problem 6:00 A Guessing Game 8:29 Contours around Two Points 10:35 Sampling The Space 12:32 Breaking Down Cases 15:00 A Clever Optimization 17:20 How Marching Squares Works 18:59 Parallel Marching Squares 20:21 How Do Metaballs Work? 24:59 Marching Cubes 25:58 Some Parting Thoughts References/Additional Resources: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/ - the initial inspiration for the framework of this video, great introduction to metaballs and how they can be rendered using marching squares. http://www.geisswerks.com/ryan/BLOBS/blobs.html - great resource on implementing metaballs and some of the physics inspirations behind implicit functions Original Marching cubes paper: https://www.researchgate.net/publication/202232897_Marching_Cubes_A_High_Resolution_3D_Surface_Construction_Algorithm Sebastian Lague Video on Marching Cubes: https://www.youtube.com/watch?v=M3iI2l0ltbE Further reading on polynomial approximations of metaball implicit functions: https://www.researchgate.net/publication/242914163_Data_Structure_for_Soft_Objects Implementation Help for Marching Cubes http://paulbourke.net/geometry/implicitsurf/ Excellent lecture by Casey Muratori about Marching Cubes: https://www.youtube.com/watch?v=SDS5gLSiLg0&t=978s https://courses.lumenlearning.com/physics/chapter/19-4-equipotential-lines/ - some of the physics behind equipotential lines in electric fields Support: https://www.patreon.com/reducible Twitter: https://twitter.com/Reducible20 This video wouldn't be possible without the open source library manim created by 3blue1brown and maintained by Manim Community. The Manim Community Developers. (2021). Manim – Mathematical Animation Framework (Version v0.11.0) [Computer software]. https://www.manim.community/ Here is link to the repository that contains the code used to generate the animations in this video: https://github.com/nipunramk/Reducible All music in the video is from Aakash Gandhi