Particle Emitter freeze my Android

Hi all,

Please can you guys help.

When I have any particle emitter added to my scene, my android phone freezes or crash and I have to reboot.

I have tested this on other devices and it works but one can see a lag when it is attached for that second.

I have a Huawei Ideos X5 phone and it has android 2.3.5 on it. It has an Adreno 205 GPU and 800Mhz CPU.

Please, is there something different with particles for android and is it suppose to work?

Have anyone experienced this behavior before?

I can’t seem to figure out what is wrong.

Please, anybody?


I never had any issue with particle emitters…except they can be quite slow on old devices.

I tested them on multiple device and noticed no issue.

Is there a specific way you create the particles?

I have created a .j3o file with the editor and loaded that into my scene.

I looks as if the particle runs one cycle and then it freezes.

It is a simple particle the cycle only once through the sprite image.

Really simple, but it freezes when the cycle is done.

There is no specific way to do it for android.

could you upload the apk? I can test it on my phone and tell you how it works. I’m not at home so I can’t compile, code or anything.

Will try that soon, thanks.

Okay, I have create a simple android app that shows a particle explosion when you click on the screen.

Please check it out and tell me if you can see any problems. Like I said, this works on other phone except mine.

all other jMe features also work on my phone, it is just the particles that gives problems.

Here is a link to the APK:

ok, this works fine on my N1.

android 2.3.6 though.

ParticleEmitters use vertex buffer updating a lot, which suck big time on android but usually it’s just slow.

I’m afraid you have some kind of “driver” issue.

Your best bet is to wait for a constructor update (maybe android 2.3.6 will fix this).

Or maybe try to root your phone and put a cyanogen 2.3.6 ROM but that has other implications…

Aaaa, thanks for the tips.

So I just want to confirm, the problem is possibly the android version that is installed on my phone.

Is this correct? Or do you mean the android version it is build for?


I mean this android version for this phone. Things are pretty complicated. Constructors build their own android for their device, and that’s what is deployed to your phone. There are no “drivers” for android all is embed in the system.

I could be nice to corner what is really messing the phone. Buffer writing, reading…

What if you use a BatchNode, or the geometryBatchFactory?

Yeah, I understand.

When I can make use of BatchNode, but will that work for particles?

Is it possible to user BatchNode or geometryBatchFactory on ParticleEmitters?

This might be related to this issue:

Once a particle dies, the vertex buffers get filled with invalid data but the GPU is still asked to render it due to that point due to the above issue.

You will notice a similar problem with BitmapText, where triangles are rendered from beyond the buffer’s limit.

So do you know if this will be fixed in the near future?

I don’t know, but its a very easy issue to fix because you just have to follow the rules outlined in the tracker to do it.

@ndebruyn: Can you try the latest engine from SVN and see if it fixes the issue?

Will have a look as soon as I get time again.


I updated to the latest updates of the jME Platform and tried this again.

Unfortunately it still freezes the phone.

This does not seem to work.

Hi you all.
I have been trying the particle emitter again on my phone with the latest nightly build.
And it still doesn’t work.
I have really tried everything “I think” to get it to work and it still freezes my phone.
I really don’t have any idea why this is happening and I would really like some help from someone on the forum.
Thanks in advance.

Do you get problems playing other (non jme) games on that phone?

Are there any errors reported?

Are there any limitations on the phones graphics support?

Are you using point sprite particles or triangle-based particles? At the very least it will help isolate where the problem is.