Building Collision Simulations: An Introduction to Computer Graphics
Collision detection systems show up in all sorts of video games and simulations. But how do you actually build these systems? Turns out that the key ideas behind these systems show up all over a field of computer science called computer graphics. We start off with the basics of animation and then branch off into ideas in discrete and continuous collision detection. We break them down in the context of some simple simulations of a small number of particles, but scaling up these simulations is another challenge entirely. We present big ideas in broad phase optimization schemes for speeding up collision detection including the sweep and prune algorithm, uniform grids, K-D trees, and bounding volume hierarchies. 0:00 Introduction 1:25 Intro to Animation 2:46 Discrete Collision Detection and Response 5:50 Implementation 6:50 Discrete Collision Detection Limitations 8:10 Continuous Collision Detection 11:42 Two Particle Simulations 13:13 Scaling Up Simulations 15:42 Sweep and Prune Algorithm 19:05 Uniform Grid Space Partitioning 20:43 KD Trees 23:51 Bounding Volume Hierarchies 27:12 Recap Correction: At 9:02, the linear interpolation equations should be x(t) = t * x(1) + (1 - t) * x(0) and y(t) = t * y(1) + (1 - t) * y(0). All subsequent derivations have the x(0) switched with x(1). All y(0) should also be switched with y(1) for the same reason. Post-correction 2: I ran the experiment with the naive solution of checking every pair of particles with an added inefficiency in rendering the animations so the comparison wasn't fair and that's why the number was so high. The actual speed up is still fairly significant, but not THAT significant. Minor correction: p.vel is updated and used in the next line at 6:28, p.vel and p.pos should be updated simultaneously This video is supported by a community of Patreons Special Thanks to the following Patreons: Burt Humburg Justin Hiester Michael Nawenstein Richard Wells Zac Landis Support: / reducible Twitter: / reducible20 This video wouldn't be possible without the open source library manim created by 3blue1brown: https://github.com/3b1b/manim Here is link to the repository that contains the code used to generate the animations in this video: https://github.com/nipunramk/Reducible 2D Collision Response Vector Equation Derivation Walkthrough: https://www.vobarian.com/collisions/2... Bounding Volume Hierarchy Traversal Algorithm for Broad Phase: https://thegeneralsolution.wordpress.... The ideas and presentation in this video were inspired by a culmination of resources -- here are some that I found particularly nice for further exploration: https://www.toptal.com/game/video-gam... Game Physics Engine Development by Ian Millington Ch. 12 https://github.com/mattleibow/jitterp... http://www.mcihanozer.com/tips/comput...

A Strange But Elegant Approach to a Surprisingly Hard Problem (GJK Algorithm)

How Computers Draw Weird Shapes (Marching Squares)

The most beautiful formula not enough people understand

The Unreasonable Effectiveness of JPEG: A Signal Processing Approach

How AI Cracked the Protein Folding Code and Won a Nobel Prize

How (and why) to take a logarithm of an image

VCF East: Personal Computer Graphics of the 60's and 70's — Stephen A. Edwards

I Hacked This Temu Router. What I Found Should Be Illegal.

How Rockstar fit an entire city into PlayStation 2 memory

Building the PERFECT Linux PC with Linus Torvalds

Coding Adventure: Ant and Slime Simulations

But what is quantum computing? (Grover's Algorithm)

How 2D Game Collision Works (Separating Axis Theorem)

Listen and Feel the Peace | Tibetan Healing Sounds for Deep Meditation, Inner Peace & Soul Healing

Lighting in Godot for Beginners

Transformers, the tech behind LLMs | Deep Learning Chapter 5

FPGAs Aren’t Processors (Unless You Want Them to Be) || FPGA Deep Dive and Use

AlphaFold - The Most Useful Thing AI Has Ever Done

A* Search: How Your Map Applications Find Shortest Routes
![SQL Course for Beginners [Full Course]](https://i.ytimg.com/vi/7S_tz1z_5bA/hq720.jpg?sqp=-oaymwEbCNAFEJQDSFryq4qpAw0IARUAAIhCGAG4AvcY&rs=AOn4CLCV4Cima1nx19tBObVX3l1NeRMD5g&usqp=CCc)
