Particles in BGE: Improved Code, Collisions and Hose

Hello world! I’m back with another video to show you guys what we are cooking up here at DSC. I’ve made a lot of internal improvements to the code, but I have a little something to show as far as features too. Check out the video!

[RTPS] Improved Code, Collisions and Hose from Ian Johnson on Vimeo.

So what have I been up to? Mostly I’ve been cleaning up the code, fixing some nasty bugs in OpenCL that were causing crashes. They seem to all be squashed for now so I can start focusing on some key things (besides writing my thesis!) such as fixing up the collisions even more. I also want to take the hose object I’ve got now and make it more interactive so gamers can start spraying things! I’ve been upgrading the UI and exposing more simulation parameters, but there is plenty more work to be done in that area. I look forward to getting it set up in the Particle Panel when the rendering mode is set to Blender Game.

We’ve also been working on getting the project built on windows, which Andrew Young has gotten well underway. He’s got the standalone library compiling and running on windows (even with stereo 3D rendering!) but we still need to link it up to Blender.

I’m in the process of writing this up for my Master’s thesis, which will lead to some extensive documentation. I hope that with a proper writeup it will be easier to collaborate with other Blender developers and get my code better integrated. I do want to thank the Blender community and especially the devs in the IRC channel for all the help so far, it really is amazing to learn so much from people all over the world!

The DSC model used to contain the fluid particles in this picture was created by Martin Lindelöf. Also thanks to Chris Webber and Slikdigit for Blender Python UI inspiration and tutelage. Shout out to Moguri for all his help!

16 thoughts on “Particles in BGE: Improved Code, Collisions and Hose

  1. Martin Lindelöf

    Nice work! you’re making progress all the time, I’ll have to read on your pyOpenCl findings … atm im at work it’s morning in Sweden and I have a deadline and need to fix the animation today.

    RTPS i assume stands for real-time particle system. I’ve recently started to explore physics but for flash and mostly 2d and simple systems. using runge-kutta solver.

    I’ve read the wikipedia article about krylov solver.

    what kind of integrator are you using for your particle system? it seems really stable only now and then I see some particles bouncing away.

  2. enj Post author

    Thanks @blenderificus, me too :)

    @Martin Thanks, let me know what you think of PyOpenCL. RTPS is indeed real-time particle system, and I have a “Simple” system as well as my colleague’s boid system which all use the same base libraries. I’m using leapfrog integration, which is just 2nd order in time. SPH does not require a higher order method like RK4 because it won’t help the accuracy nearly as much as adding more particles. I did do an RK4 solver in my Simple system at one point. There are other techniques part of SPH which help with stability, such as a smoothing technique called XSPH.

    The few particles bouncing away is most likely because of a weakness in the collision. I have noticed that lone or pairs of particles can get separated in other tests, which happens more depending on the various parameters chosen.

  3. Seth

    Great! Thanks for emailing me about the update. Any approximate estimates at when test builds will be publicly available? Thanks. :)

  4. Pingback: Ian Johnson : Fluid Simulation Blender game engine using OpenCL at BlenderNation

  5. benjamin

    you guy rock it dude ! It’s sooooo unbelievable awesome what you have created. Hope I will get a computer with a quadFX card to run openCL – theres no different way right ?
    gretings – benNO!

  6. Pingback: Ian Johnson : 在Blender的游戏引擎里面使用OpenCL进行流体模拟 at BlenderNation

  7. Pingback: Ian Johnson : Fluid Simulation Blender Game Engine verwendet OpenCL at BlenderNation

  8. Pingback: Ian Johnson : Symulacja płynów w game engine z użyciem OpenCL at BlenderNation

  9. Pingback: Ian Johnson:OpenCLを使った、Blender Game Engineによる流体シミュレーション at BlenderNation

  10. Pingback: Can you see the force? | enj

  11. Pingback: Ian Johnson : simulation de fluides utilisant l’OpenCL dans le moteur de jeu de Blender at BlenderNation

  12. Pingback: Ян Джонсон: Симулятор жидкости для Blender Game Еngine использующий OpenCL at BlenderNation

  13. Pingback: LBL Summer Research: Final Report | enj

Comments are closed.