View Full Version : simulating molecular attractions..?

05 May 2010, 04:42 PM
i need to create a particle simulation demonstrating molecular attraction, and im getting a bit stuck.

here's what needs to happen. theres a molecule represented as a sphere, and particleShape1 is being attracted(goaled) to it. as the particles attract, they build up a layer on the original sphere, this will be non uniform. im using magnitude to define when the attraction to the sphere beings.

now, here's the part im stuck on. as particleShape1 builds on the sphere, i need to adjust the sphere's attraction area to account for the particle buildup. the attraction distance threshold will stay uniform relative to the shape, 5 units for example. the buildup will be nonuniform and constantly growing, and im really not sure how to approach this.


Derek Wolfe
05 May 2010, 05:04 PM
Not sure I understand your needs, but perhaps rather than using a goal, try a newton field set as a spherical volume. It can be set to draw particles towards it's center within a volume defined by a sphere. particles outside the sphere will not be drawn towards the center.

05 May 2010, 07:48 PM
You might investigate nParticles. They have self attraction as well as attraction to a surface. (force field generation attributes on nRigids and particles) You can also make the attraction repulsive at close distances so that things tend to orbit at some specified distance. (by editing the field dropoff ramp and distance)


05 May 2010, 09:43 PM
thanks for the replies. nParticles are definitely the way to go for this scenario. Duncan, is there way to control all attributes on a per particle basis? like stickiness and self attract?

05 May 2010, 11:12 PM
You can't change selfAttract per particle. However the relative mass affects how the particles move together, so a heavier particle will move more slowly than a smaller one as the self attraction pulls them together. As well the pointFieldDropoff determines how fast the attraction falls off with distance(combined with the pointFieldDistance).

The pointFieldMagnitude is between different particle systems, and for that you can control how much a particle pulls on the other particle system (or nCloth). The pointFieldScale ramp can be used for this or one can turn its input off and create a pointFieldScalePP attribute and set it however desired.

On an object you can paint the field magnitude per vertex or control it with a map. You could also potentially set the per vertex values in an expression.

Another option is constraints(better with initial state particles than emiting ones). Select the particles to constrain and create the desired constraint type( typically component to component, but you can also do things like slide on surface ).

Or you might find springs are good for specific control of particle to particle attraction. The springs can be individually edited and have controls for stiffness, damping and rest length( with rest length zero it is like self attraction ).

For stickiness you can create the attribute stickinessScalePP (added in 2011) and set that( with expressions or ramps ).


CGTalk Moderation
05 May 2010, 11:12 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.