OpenCL/SYCL development task

I am learning OpenCL/SYCL languages and would like to extend this knowledge to the development of Blender. Where I can better start my contribution?


Welcome Andrey,

maybe this is a first start?

The only actively maintained OpenCL code in Blender is the Cycles kernel. However any OpenCL specifics are abstracted away, to make the same code compile to CUDA and C++.

So there is no area of Blender where you can immediately apply OpenCL knowledge. To contribute to Blender it’s probably better to think of a specific feature or area you want to improve and figure out what is needed for that, rather than starting from a specific technology.

May I suggest you to try to work in some particle physics solvers? like an OpenCL implementation of newtonian physics or and OpenCL implementation of the SPH solver.
It’s what Tyson did for Tyflow, more or less.

If you maintain it as something that can be implemented separately maybe later it can be adapted to the new Particle Nodes system solver.


What’s this about? (The answer I mean)

Newtonian physics and SPH solver looks interesting. Could you please share some more information about these tasks and your expectations?


They already exists inside the current particle system code, so it may serve you as a base idea.

For newtonian it’s a matter of efficiency, speed an ability to handle a lot of particles for the simulation, and it lacks 1 feature, interparticle collision (based on a simplified sphere model), a secondary feature could be linking between particles based on force and distance. (this could enable newtonian particles to be able to do som granular simulations).

For SPH, the Blender particles SPH solver is pretty good and capable, so it’s mainly a matter of performance, additional features could be the ability to gave birth to white water particles, or the ability to simulate foam behaviour.

Those two could be good features, and maybe they can be implemented later as solver nodes in the Particle Nodes system, but that’s a later thing.

1 Like

Let me start from an investigation of how these features are implemented. As I understand, after I will collect enough knowledge, I can start by improving the performance of these features and later begin work on an interparticle collision.

By the way, is there any person/persons who I can contact for questions regarding this work? What is the better way to communicate - mailing list, forum, or chat?


You should contact @jacqueslucke he is working on the new node based particle system.


Yes, and you may find also interesting to speak with @sebbas, responsible of Mantaflow integration and @scorpion81, responsibles Fracture Modifier :slight_smile: