CircleCollision
Implementing Different Methods of Circle to Circle Collision Detection using variety of new Technologies: Vulkan Graphics/Compute API, AVX2/AVX-512
Install / Use
/learn @Erfan-Ahmadi/CircleCollisionREADME
Circle Collision
Implementing Different Methods of Circle to Circle Collision Detection using Vulkan Graphics and Compute API
Circles were chosen to focus more on Broad-Phase algorithms of the Collision Detection Pipeline.
<p align="center"> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/circle_collision/master/docs/Collision-detection-pipeline.png" width="372" height="85"/> </p>Images and Preview
<p align="center"> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/circle_collision/master/docs/heart_collision.jpg" alt="" width="320" height="180" /> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/circle_collision/master/docs/draw-fun.gif" alt="" width="320" height="180" /> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/circle_collision/master/docs/explode_fun.gif" alt="" width="320" height="180" /> </p>Charts and Plots
<p align="center"> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/CircleCollision/master/docs/Brute%20Force.png"/> <img src="https://raw.githubusercontent.com/Erfan-Ahmadi/CircleCollision/master/docs/Grid%20Spatial%20Partitioning.png"/> </p>Motivation
This Project Is For Learning Purposes of Following Topics
- SIMD/Vectorization using AVX/AVX2
- Vulkan Compute Shaders and GPGPU Programming
- Data Oriented Programming
Features
-
Broad-Phase
- Brute Force ( O(n^2) )
- Spatial Partitioning
- Grid
- K-D Tree
- Quadtrees
- BSP
- Sort and sweep
- Simplex-Based : GJK
-
Narrow-Phase
- We Have Circles Here and Math/Physics Calculations are easy.
-
Technologies/API's
- CPU
- Simple Sequential
- Multi-Threaded
- SIMD
- AVX2
- AVX-512
- GPU
- Vulkan Compute Shaders
- OpenCL
- CPU
Implemented
- Brute Force
- [x] CPU
- [x] Compute Shader
- [x] SIMD: AVX2
- [x] Multi-Threaded
- [x] Multi-Threaded + SIMD
- Spatial Partitioning
- Grid
- [x] CPU
- [x] Multi-Threaded
- Grid
Build
- Visual Studio 2019
- :soon: Linux Builds Will be Added Soon
Blog
You can here about implementation details soon in my blog, GraphicsCoder
Slides
Resources
- SIMD
- Spatial Partitioning
- Vulkan and GPU Programming
- Circle Collision Handling
:heavy_exclamation_mark: This project is not for benchmarking purposes!, Although It would give me some ideas to be suspicious about.
:heart_decoration: I would appreciate optimization ideas and results on your system on issues.
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
