How can I get particles to randomly move on the surface of a sphere?

I am emitting small sphere-particles on a larger sphere but cannot get them to randomly move on the surface and not disappear through the larger spheres.


  • $\begingroup$ Is this about the specific case of spheres? I have edited the title and post to reflect that. Please check if your intent is still clear. $\endgroup$ – Leander Apr 3 '19 at 7:33

I think the solution is fairly simple and I will try to explain how I would do it. If needed I can add Images explaining everything as soon as I have access to a PC.
You need basically only one thing, you need the particles to be constraint to the surface of the sphere. There are two good ways of doing that.
At first you need to duplicate the emitter sphere and make the duplicate a collision object (physics tab) and set damping to 1.0, then you have two options for making the particles stay. The first option is to add a solidify modifier to the collision sphere and scale it so the particles spawn inside. I personally think the better more flexible way to do it is adding a forcefield to the duplicate collision sphere with negative strength to attract the particles.
For the random movement just add a turbulence force field or turn up the random initial velocity of the particles.

If you want your particles to stay fully on the sphere and not only half, turn on size deflect for the particles

Very important to know is that the object which is the particle emitter has no effect on the particles, no matter if you use collision, force field or something else.

If you want multiple spheres in your simulation, I would recommend using the solution with two collision spheres, because its easier to setup. It is still possible to setup the force fields in a way that the particles will stay on the surface, but It is a little bit more complicated. The advantage though is that one particle from one sphere can travel to touching other spheres, I personally think, that makes a good effect.

| improve this answer | |
  • $\begingroup$ Thanks HenrikD, I tried that but they're still floating away, here's my file... pasteall.org/blend/index.php?id=51494 $\endgroup$ – pancreasboy Apr 3 '19 at 23:41
  • $\begingroup$ Sorry for my mistake, I forgot about this querk in blender. I updated my answer $\endgroup$ – HenrikD Apr 4 '19 at 6:35
  • $\begingroup$ I think this solutioin is very close - using a duplicate of the mesh with a surface force set to a negative value works really well and is simple to set up. The force effectively constrains all particles to that surface. $\endgroup$ – Rich Sedman Apr 4 '19 at 8:09
  • $\begingroup$ hmm still not working for me, see here pasteall.org/blend/index.php?id=51498 any chance of editing my file to show me where i'm going wrong, thanks in advance. $\endgroup$ – pancreasboy Apr 4 '19 at 23:21

In the end I was shown this process in 2.8 with particles and animation nodes by Omar Ahmad in the CG Evolution Facebook group...


Just remember to click the little button beside the Node Seed value in the Sidebar panel to show the count option in the animation nodes. And adjust the Scale or Amplitude values to get the result your after.

| improve this answer | |
  • $\begingroup$ It would be great if you could embed a higher resolution version of that screenshot in your answer $\endgroup$ – Robin Betts Apr 11 '19 at 4:57
  • $\begingroup$ This isn't much more than a link-only answer (discouraged) and the linked material is mostly unreadable to boot. Would be nice if you wrote a proper answer for everyone's benefit. $\endgroup$ – B Layer May 13 '19 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.