Max Sinister
|
|
« on: June 08, 2016, 11:01:06 PM » |
|
This is an experiment I made. You all know about DLA, probably already used a program to create graphics.
Now I wanted to make a variation: What if the particles had different sizes?
So I wrote a small script today which does this. At the moment, it only creates ASCII files, but that's enough to see what this is about.
In the first pic, I allowed the particles to connect if only their corners touch.
All these pictures consist of about 100 particles.
|
|
|
Logged
|
|
|
|
Max Sinister
|
|
« Reply #1 on: June 08, 2016, 11:01:52 PM » |
|
Here is a somewhat bigger result, with 300 particles:
|
|
|
Logged
|
|
|
|
Chris Thomasson
|
|
« Reply #2 on: June 09, 2016, 12:05:40 AM » |
|
Wow! Nice work. WRT particles having different sizes, well I can model this with my field based DLA by making them have different starting masses. I have experimented with this, but it should give really different results! I am working on a website that can model this. An initial experiment: http://funwithfractals.atspace.cc/ct_fdla_anime_test_0I am almost done hooking up the animated particle collision detector that actually is responsible for creating the aggregation wrt DLA clusters. So far, all of my experiments are of particles with the same mass. Well, I will take your advise and see what happens when they all have different masses. Thank you!
|
|
|
Logged
|
|
|
|
Max Sinister
|
|
« Reply #3 on: June 09, 2016, 10:41:59 PM » |
|
Thank you too! Show us your results as soon as you have them!
Meanwhile, I continued to work on the script, and can create 3D DLA now. (Results are stored in STL files, which you can view in any viewer.)
Here are the first two results. Tell me if you want to see a different angle of them.
|
|
|
Logged
|
|
|
|
Softology
|
|
« Reply #4 on: June 09, 2016, 11:15:30 PM » |
|
I have done some 3D DLA in the past. https://www.youtube.com/embed/vkA4f4UHZJwYouTube really compressed the heck out of that video. I need to re-render some nice 4K examples. To get a more clumped effect you can also increase the hit count ie rather than just sticking a floating particle to the existing structure when it first touches, make it have to touch a number of times before sticking. For the ultimate inspiration in 3D DLA see the works of Andy Lomas. http://www.andylomas.com/aggregationImages.htmlfor images like this one Jason.
|
|
|
Logged
|
|
|
|
|
Chris Thomasson
|
|
« Reply #6 on: June 10, 2016, 12:55:56 AM » |
|
I have done some 3D DLA in the past. https://www.youtube.com/embed/vkA4f4UHZJwYouTube really compressed the heck out of that video. I need to re-render some nice 4K examples. To get a more clumped effect you can also increase the hit count ie rather than just sticking a floating particle to the existing structure when it first touches, make it have to touch a number of times before sticking. For the ultimate inspiration in 3D DLA see the works of Andy Lomas. [...] Very nice, excellent work! wow.
|
|
|
Logged
|
|
|
|
Max Sinister
|
|
« Reply #7 on: June 10, 2016, 10:00:49 PM » |
|
@Softology: Calling Andy's work beautiful would be an understatement, and yours is pretty good too. - How long did it take to run the programs initially? In my script, the new particles start at the edge and go on a random walk then. This tends to take quite some time. Your 3D DLA seems to consist of millions of particles. So, how is this possible?
|
|
|
Logged
|
|
|
|
Softology
|
|
« Reply #8 on: June 13, 2016, 11:04:52 PM » |
|
@Softology: Calling Andy's work beautiful would be an understatement, and yours is pretty good too. - How long did it take to run the programs initially? In my script, the new particles start at the edge and go on a random walk then. This tends to take quite some time. Your 3D DLA seems to consist of millions of particles. So, how is this possible?
The random walk stage is very fast. Even if ony 1 in thousands "sticks". Maybe your code/language is the bottleneck there? One speedup is to shrink the sphere you launch the particles from to be just slightly larger than the current stuck particles. For example, if your furthest stuck particle is distance x from the origin then make the sphere you launch random particles from size x*1.1. For the rendering, those sample movies use standard OpenGL spheres. Once the particle numbers get larger there is a slow down in render time, but nothing unbearale. The main limitation I hit is memory for storing the 3D array that holds the boolean particle/no particle state.
|
|
|
Logged
|
|
|
|
Chris Thomasson
|
|
« Reply #9 on: June 14, 2016, 11:19:18 PM » |
|
The random walk stage is very fast. Even if ony 1 in thousands "sticks". Maybe your code/language is the bottleneck there? One speedup is to shrink the sphere you launch the particles from to be just slightly larger than the current stuck particles. For example, if your furthest stuck particle is distance x from the origin then make the sphere you launch random particles from size x*1.1.
For the rendering, those sample movies use standard OpenGL spheres. Once the particle numbers get larger there is a slow down in render time, but nothing unbearale. The main limitation I hit is memory for storing the 3D array that holds the boolean particle/no particle state.
Yup. Staring with smaller radius wrt the launch pad for DLA does work rather nicely. I have not coded this yet in my online test app where the particles walk field lines to the attractors. Another thing I am experimenting with is removing points from the vector field if they are not hit after so many particle releases. FWIW, I can get my stuff to get really fine grain, and tricks like launching the field walking particles at a small radius, and increasing this as the aggregate grows really helps. Also, trimming the vector field after N iterations helps as well.
|
|
|
Logged
|
|
|
|
Max Sinister
|
|
« Reply #10 on: June 15, 2016, 08:24:44 PM » |
|
"One speedup is to shrink the sphere you launch the particles from to be just slightly larger than the current stuck particles."
Yes, this makes absolute sense. I didn't implement that part, <sincerityMode=on> but I had thought about it.
|
|
|
Logged
|
|
|
|
Max Sinister
|
|
« Reply #11 on: June 16, 2016, 11:23:17 PM » |
|
Today I made a little experiment: If there is just the seed at coordinates (0, 0), and one single particle at (-2, 0), which can move one step in the four principal directions, with equal probability - what are the probabilities of it sticking to each of the four sides of the seed?
Depending on how much room you allow for the particle to move in, this changes drastically. The probability of sticking to the opposed side is just 0.2% if you give the sphere a two "pixel" radius, but more than 5% if the radius is about 60 "pixels".
Then again, since the new particle could arrive from any side, this shouldn't make a difference. Not sure about more complicated shapes (in the middle).
|
|
|
Logged
|
|
|
|
Softology
|
|
« Reply #12 on: August 29, 2016, 12:01:40 AM » |
|
|
|
|
Logged
|
|
|
|
|