POV-Ray : Newsgroups : povray.binaries.animations : A particle simulation Server Time
22 Dec 2024 05:37:07 EST (-0500)
  A particle simulation (Message 1 to 5 of 5)  
From: Samuel Benge
Subject: A particle simulation
Date: 27 Mar 2011 19:45:01
Message: <web.4d8fcb5fb5cf045b8a5a9d4b0@news.povray.org>
Hi,

I've been exploring different methods for keeping particles spaced from one
another. There are many ways to go about it, so as a matter of course I thought
I'd try using a square falloff function for each particle. It works fairly well
and is less likely to produce abrupt changes than other methods. Initially the
square falloff was clipped between 0.0 - 1.0.

On a whim I thought I'd try changing 0.0 to a small negative value based on the
current particle's radius. What occurred next confirmed my suspicions: the
particles gravitate toward each other while still keeping their distances.

I might use this for dumping piles of rocks onto/into objects, making jars of
marbles, or whatever. In addition to the particle-particle square falloff
function, other types of collision detection *will* need to be used since it is
very difficult to make functions from, say, a mesh.

For this animation, the following rules were applied:

 1) a particle must always keep a relative distance between itself and another
particle
 2) a particle will become less responsive to change at higher masses (sizes)
 3) a particle will gravitate toward another particle based on the square
falloff determined by any particle's position and mass (size)

Momentum is not a factor here.

The reason they all go toward the center is because the averaged positions of
all particles would be around <0,0,0>.

An interesting thing to note is that the smaller particles will eventually reach
the center of the mass. This is partly caused by the instability of the system,
but it is also largely due to granular convection.
http://en.wikipedia.org/wiki/Granular_convection

I think I explained myself sufficiently ;) Sorry about the low video quality!

~Sam


Post a reply to this message


Attachments:
Download 'particles-2m_46s.mpeg.mpg' (674 KB)

From: Samuel Benge
Subject: Re: A particle simulation
Date: 27 Mar 2011 21:05:01
Message: <web.4d8fde4f385622fa3f135b2b0@news.povray.org>
Hello again,

Here's a 3D version of the same particle simulation. Notice how the particles
slow down as they come near other particles and the global particle mass center.
This is /not/ realistic... The apparent gravitational influence these particles
exhibit is all due to a quick hack I made to the overall behavior. My goal was
not to make an entire physics sim; my intention was merely to keep the particles
from intersecting each other...

If you're used to huge, high-quality animations, I'm sorry :P I'm using
1/2-speed dial up over here :(

~Sam


Post a reply to this message


Attachments:
Download 'particlesc-5m_07s.mpeg.mpg' (512 KB)

From: Samuel Benge
Subject: Re: A particle simulation
Date: 27 Mar 2011 21:55:01
Message: <web.4d8fe97e385622fa28345a750@news.povray.org>
Last post here for a while...

Slightly different scene settings: 4X the number of particles (200 pts), and
twice the number of generations per-frame...

Higher-count point sets really slow things down. This animation (48 frames
total) took around 20 minutes to render. Most of that time was spent parsing
(over 20 seconds per-frame) :( I need some sort of relevance map to determine
when to evaluate other points, and when when /not/ to. Maybe if I devise a 3D
array where each unit cell has n-amount of points, I could just pick from
that...

~Sam


Post a reply to this message


Attachments:
Download 'particlesc-19m_36s.mpeg.mpg' (324 KB)

From: Alain
Subject: Re: A particle simulation
Date: 28 Mar 2011 14:50:13
Message: <4d90d865@news.povray.org>

> Hello again,
>
> Here's a 3D version of the same particle simulation. Notice how the particles
> slow down as they come near other particles and the global particle mass center.
> This is /not/ realistic... The apparent gravitational influence these particles
> exhibit is all due to a quick hack I made to the overall behavior. My goal was
> not to make an entire physics sim; my intention was merely to keep the particles
> from intersecting each other...
>
> If you're used to huge, high-quality animations, I'm sorry :P I'm using
> 1/2-speed dial up over here :(
>
> ~Sam
>

Realistic or not is all relative.

Here, you have atractive AND repulsive forces at work. At larger 
distance, the atractive part is dominent. At small distance, it's the 
repulsive aspect that dominate.
When the surfaces just touch, the two cancels each other.

It's somewhat similar to what appens at a very small scale, like at the 
molecular level.

It also can simulate your spheres been in a viscous medium. The fluid 
only have a small effect when the particles are far apart, but have an 
increasignly strong dampening effect as the particles get closer from 
each another.



Alain


Post a reply to this message

From: stbenge
Subject: Re: A particle simulation
Date: 28 Mar 2011 17:49:31
Message: <4d91026b@news.povray.org>
On 3/28/2011 11:50 AM, Alain wrote:

>>
>> the particles slow down as they come near other particles and the
>> global particle mass center.  This is /not/ realistic...
>>
>
> It also can simulate your spheres been in a viscous medium. The fluid
> only have a small effect when the particles are far apart, but have an
> increasignly strong dampening effect as the particles get closer from
> each another.
>

I kind of thought so too. With gravity and environmental CD applied, all 
sorts of viscous fluids could be modeled (if only partially). Each 
particle's influence would have to be very local, though. Certain 
effects could be added to it, such as coloring each particle 
independently which would look awesome (though potentially 
disgusting)... I wouldn't even have to worry about different particle 
sizes, which would save a few calculations.

But I'm stuck with low-count point sets until I can find a way to 
optimize the interactions. I may look into using an octree, but I'm not 
sure POV is up to the task of expanding arrays on the fly. There's a 
macro for expanding an array in arrays.inc, and if I copy it into the 
main source file it might just perform reasonably.

Another idea is to use some sort of nested pigment_map of spherical 
pigments, but I then would be limited to only 96 particles.

Another idea yet would be to use a blob pattern and test against it, but 
POV doesn't have one of those (MegaPOV might though).

If nothing else, it was a fun experiment :)

Sam


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.