Thinking Particles


Hi guys,

i have a destruction setup with 2 levels of vb’s, triggered by a Point Helper. The mesh is quite highpoly and intersects itself at some areas. If i run the sim with 1 level of vb everything works fine but if i run it with 2 levels the whole tp mesh is appearing and disappearing during caching. Since i did this kind of setup a few times before my workaround was to amend the seeds, sizes etc. a little to alter the sim and after a few tries i got a solution that worked. But now i simmed it 10 times and it won t behave.
Is there a general solution to prevent this when using vb and sc and does someone know the reason why the mesh is disappearing at all?




Hi everyone, I´m wondering if theres any way to tear cloth with TP? Something similar to the particle skinner with pflow. Thanks :slight_smile:


Sorry Moneitor, there’s nothing similar to particleSkinner to tear in TP. Maybe I’m wrong, I hope some one can throw some light to that topic… ( BTW there will be cloth in TP6 :wink: )

I have a questions for the TP Comunity.

Now i’m trying to figure out the new joints with bullet, somewhere here I read that I need to play with the D6 Joint mode to get something similar to the SC fixed one… But I cant find how to… everything is soo unstable

I’ll atach the file where i’m testing the bullet D6 Joint.
Hope someone know how the work. Thanks

Oops, another question, how can I break the joint between to objects?
When I break the joint everithink is ok but when I set the Break-Bool off the object return to the joint position.
I want to break the joint with a timer, let the object fall and when it collides another time make a new joint and so on.

Thanks for your time, sorry for my bad grammar and expresions.

Another time… thanks :slight_smile:


You need to use the joint data node and set up the D6 properties.
D6 lets you control what axis you want the joint to move/rotate. So you have to set this up, break impulse and the breakable bool control how/ when the joint breaks.

rather than jointing to a particles position, try using the average between the two, for nicer results. You can also birth particles on the surface of other particle to search for each other and create joints, for more accurate position.

P-Search can slam your simulation times… always make sure it’s being called as few times as possible. in this case you only need it when the particle is born.

Convexhull is a good place to start with a bullet mesh, half or 3 samples a frame gives a much better results. In the bullet node, under Physics, play with with the Iteration number. some times a light sim, you can crank this number up very high and get nicer results with the D6 joint.

It’s a bit of a balancing act between what mesh type you are using, the sub samples, the iteration number and your joint settings. Please read the help files aswell :wink:
added a file, good luck :slight_smile:


Thanks Alexander!
All tips have been very useful :thumbsup:

thanks for your quick response and your time :slight_smile:


Hello! :stuck_out_tongue:
I’m wondering if there is any way/Script to take out to the Td tool the substeps/Subsamples of Thinking Particles so anyone could tweak the sim quality without entering the TP UI…


Hi all,

I set up a scene to move Particles Shape to goal.
but they cant stop flipping a position point.

Please let me know if any solusions.


Just don’t use the Z axis, the others are fine :slight_smile:


thank you Glacierise !!

This problem was resolved thanks to your support(by use x axis , y axis).
But I don’t know why…What is necessary to understand it well ?? EulerXYZ?

It would be extremely helpful if you could tell me that.:slight_smile:


It must be Gimbal Rock !!
Is that really okay?

I’m going to study Gimbal Rock now:thumbsup:


How do I emit particles from an area where two geometries are intersecting? So far, I didn’t have any luck with that.

I’ve got a boat hull and an animated plane. I create particles at the hull (PositionBorn) and in the next Dynamic set those are set to the hull’s position (Surface Position, reading the Born particles and using an OPosition to attach them to the hull), which works decently.

The hull moves through the surface with particles attached to it.

In another Dynamic Set, there is a UDeflector (input mode is my animated plane) and it is set up that each time it collides with one of the particles in the hull, new particles are to be generated at the collision point.

For some reason, there are never any new particles created upon collision. So I was wondering if there was maybe a simpler or more efficient setup for the task.

Thanks for any help!!


Hi Phlok,
I’m going to take a shot in the dark because I don’t have a scene. but i believe you are using the position node to attach the particles to the hull. Which works, but if you debug the velocity of those particles you will notice that they are all at zero. As TP is overriding the particles position every sample.

UDeflector needs particles to have velocity, else it can’t figure out if it’s collided. Try using PAttached instead. Also to note, since there is no velocity, that means NO motion blur :wink: That’s why I try to use pattach when ever possible.
Hope that helps


IIRC (it’s been a while), I used to get around the no moblur by using a memory node to calculate the velocity manually by comparing to the last frame’s position. It was pretty simple to do, and then if you pipe in the velocity, it would simply allow motionblur to work. Then again, pattach works too. :slight_smile:


I`m very new to tp so i think the answer to my question is quite simple:
How can i get the second closest particle found by psearch?
Also i would like to know how to compare a particle found by psearch and another particle stored in the memory operator, whether they are the same.


Hay Dude,
Yeah, I remember trying something like this a while ago, but I could never figure how how to calculate spin. Because if your particle isn’t moving and just spinning, you still can’t calculate correct motion blur :confused:

Comparing particle is really easy, TP assigns an integer to every particle. You can just use a expression node and test with a equal expression to know if you have the same:
if(a=b,1,0) If a equals b then true else false

So this isn’t the greatest approach to find the second particle, would like to see what other people come up with :slight_smile: I don’t have time to set up a system to find Nth particle atm.

what I’m doing in the scene I provided is setting a closest distance value. Each particle,other than the closest one, tests if it’s smaller. once the found count has been reached the particle in memory that has the smallest distance get chosen as the second one.
Hope that helps you out :slight_smile:


It’s complicated, and I don’t really understand 3D rotations completely, but let’s try. When you define a rotation by one vector, say, the direction of travel, that’s not actually enough information to align the particle. So it just assumes one more direction (up), and then gets the third by vector cross product of the two. And it might flip because at some point in rotating it the ‘up’ gets wrong because of the assumed second vector :slight_smile:


Yeah spinning particles is an issue… there’s prob some hacky way to get it working though… by allowing it to move a little bit in the direction of spin, and snapping it back or something…

I remember why I needed surface position, and it was for deforming geometry. Pattach is good for transforms, but with surface pos on deforming geo, I was able to get motion blur from it by using memory and manual calc of vel vector.


Hi everybody:) I´m trying to get a Helicopter dust wave, I´m using a Point, and an a Helper intersect, and everything is taking a good shape until something happen, the Z axis my node become negative at some points, maybe someone can give me a clue, or just sayme if the technique I´m using is not the right way. Thanks :slight_smile:


I checked out the scene, but I couldn’t figure out what your question is :slight_smile:


Hi hristo, thanks, what happens is when I debbug the direction vector of my helicopter, the z vector becomes negative at some points, and then the raycasting loss the position just for that moment. I think I need to learn more english before in order to explan myself better jjajaj.