# Need help for Gsoc 2020 for a new library on particle system

**URL:** <https://discourse.processing.org/t/need-help-for-gsoc-2020-for-a-new-library-on-particle-system/18092>\
**Category:** Summer of Code\
**Created:** [February 25, 2020, 7:56am UTC](https://discourse.processing.org/t/need-help-for-gsoc-2020-for-a-new-library-on-particle-system/18092 "2020-02-25T07:56:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ShreyanshAnchlia](https://avatars.discourse-cdn.com/v4/letter/s/f14d63/32.png) [@ShreyanshAnchlia](https://discourse.processing.org/u/ShreyanshAnchlia)\
**Post date:** [February 25, 2020, 7:56am UTC](https://discourse.processing.org/t/need-help-for-gsoc-2020-for-a-new-library-on-particle-system/18092/1 "2020-02-25T07:56:07Z")

</div>

Hi,  
I am Shreyansh, B.Tech undergraduate student from India. For GSoC 2020 I wanted to make a dedicated library for a particle system. Currently, as it stands right now the particle system is a very complicated topic and is not under development. Only two references are present in the examples section.  
I want to make a dedicated library for the same that would have many features like the prewarm, shape of emission, over lifetime control, noise and a lot more. I would implement it through OpenGL and processing core libraries.  
I would like your thoughts on the same if Processing requires such a library or any suggestions on the same.  
Thank You.

---

<div class="post-metadata">

**Author:** ![solub](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/solub/32/333_2.png) [@solub](https://discourse.processing.org/u/solub)\
**Post date:** [February 26, 2020, 3:34pm UTC](https://discourse.processing.org/t/need-help-for-gsoc-2020-for-a-new-library-on-particle-system/18092/3 "2020-02-26T15:34:00Z")

</div>

Hi @ShreyanshAnchlia

As far as I know Processing already has at least 5 libraries dealing with Particle Systems:

- [Culebra](http://www.complicitmatter.com/culebra-java/) (probably the best one, option-wise)
- [PixelFlow](https://diwi.github.io/PixelFlow/) (probably the best one, performance-wise)
- [Punktiert](https://lab-eds.org/punktiert)
- [IGeo](http://igeo.jp/tutorial/multiagent.html)
- [Boids](https://s373.net/code/boids/)

https://player.vimeo.com/video/172852540  
https://player.vimeo.com/video/236964112  
https://player.vimeo.com/video/60466782  
https://player.vimeo.com/video/65344254

In my opinion a perfect library would combine the speed of the PixelFlow library (GLSL) with the level of customization of the Culebra library

---

<div class="post-metadata">

**Author:** ![ShreyanshAnchlia](https://avatars.discourse-cdn.com/v4/letter/s/f14d63/32.png) [@ShreyanshAnchlia](https://discourse.processing.org/u/ShreyanshAnchlia)\
**Post date:** [February 26, 2020, 9:40pm UTC](https://discourse.processing.org/t/need-help-for-gsoc-2020-for-a-new-library-on-particle-system/18092/4 "2020-02-26T21:40:47Z")

</div>

Hi @solub,  
Thanks for the clarification.  
I was thinking of more [ECS](https://en.wikipedia.org/wiki/Entity_component_system) based approach. This would ensure high performance. Using a shared pooling system can further improvise on the efficiency of the system. Using these along with high customization especially on the rendering system and over particle lifetime control can make it a very powerful tool.
