High-performance Grasshopper 3D plugin for simulating large number of particles using GPU acceleration.
baku-demo-v0.1.0.mp4
⭐ If you like this project, please consider giving it a star!
💡 This project is early in development. If you encounter any issues, please report them in the issues section.
This project started as a personal experiment to learn about GPU programming and high-performance computing. The goal is to create a high-performance particle simulation plugin for Grasshopper 3D using GPU acceleration. The project is named after the Japanese mythical creature Baku which is said to consume nightmares.
- Real-time simulation of large number of particles with Boids algorithm
- 10k particles in real-time on a RTX 4090
- Currently unoptimized (looping all the boids positions), expect better performance in future releases.
- GPU accelerated using ILGPU
- Up to 100x faster than CPU
- Supports CUDA and OpenCL
- Supports CPU fallback
- Customizable boid and particle behaviors
- Particle trails
- Spatial Hashing algorithm for performance improvement.
- Attractor and repeller points
- Obstacle avoidance
-
Boundary repulsion (currently particles are confined to a box)- Boundary repulsion is implemented since v0.1.0.
- Download the latest release from the releases page.
- Unzip the file under the Grasshopper Libraries folder.
- Unblock the DLLs by right-clicking on the files, selecting properties, and clicking the
Unblock
button. - Restart Rhino and Grasshopper.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please follow standard contribution guidelines.