go to the download section to download Attraction! for beos AAPR
It enables the user to define different types of particles and put them in the system to see how they behave and interact. To know this, rather than see it, take a look at the Physics section. fratricide has numerous ideas on how to evolve Attraction. In case feedback is positive, we will continue to work on Attraction and make it what you want it to be. Take a look at the feedback section to learn how to steer us.
ftp.be.com/pub/contrib/demo/Attraction_200_AA.zip
or
from here.
![]() |
The particle template manager contains a list of particle templates. To use a template, select it. The values will be copied into the below particle generation template form and sent to the model thread to be used when the mouse is clicked in the display window. Try changing the values to figure out what each one means. Dont forget to invoke the control you just changed to apply the changes. In case you want to revert to the old version of the template you have to select another one temporarily and then reselect it. The values will only be stored to the list by clicking the store button. Having fiddled around with the values for long enough, you might want to store the template under a different name: Just enter the name in the name field and click the store button. The new template will be added to the bottom of the list. Updating a template will also move it to the bottom of the list, so most recently changed template are always at the bottom. All the new button does is set the name to untitled. You can also just enter the new name directly. The template will be created when you click the store button.
|
A particles speed will be multiplied by its friction value each step. This means a value of 0 makes the particle unmovable (not entirely, as I encoutered. if it should move, it's a certain sign that floating point precision is exceeded)
A value of 1 means a friction-free particle: it wont stop by itself.
Typical values are: 0, 0.5, 0.95, 0.999, 1.
Determines the displayed size of a particle. You shouldn't use more than 25. Smaller sizes greatly reduce the time it takes to draw them. A size 2 particle should draw about 25 times faster than a size 10 particle (overhead not considered).
You can use sizes like 2.3 or 3.8. A 3.1-particle will look (probaly inconcievably) bigger than a 3.0-particle.
Use the special value of 0.0 to draw the particle as a pixel (it looks much worse than 1.0, but its much faster, too). Use 0.0 if you intend to create many particles of that type.
You can guess that. Special value is color 0,0,0 (black, upper left in the color selector). It will use the colorcycle mode from version 1.0.
You can at max create one particle a frame. The particles will only be created if the one created last has a certain minimum distance from the mouse position. So clicking in one point of a fresh system and holding the button will only create one particle. Move the mouse to create more or wait for the particle to move somewhere else.
This mechanism avoids particles to be real close to one another or even at the same point. This would result in massive velocity applied and the particle moving way too far a distance per frame.
Each particle relates to all others the following way. It tries to keep the desired distance plus the partners desired distance. If the distance of the two is not the desired distance, a force will be applied to change that state. The forces that result out of all the relations are added up and later applied to the speed vector. Use the Attraction strength field as a general force multiplier to limit or enhance the effect.
Typical values for the strength are: 0.005, 0.00001, 0.01.
Typical values for the desired distance are: 0, 0.01, 0.1
You can also use negative values for the distance to attract particles that usually try to keep a distance even below that distance.
![]() |
model control(out of order) the respect bounds checkbox determines wether or not the particles bounce off the windows frame.you might want to pause the calculation thread for two reasons: you have a caclulated sequence you want to keep viewing in loop mode or you want to create e.g. four particles in the edges at the same time. Note: In paused mode particles will still be created, just not displayed. the delete particles to stay realtime checkbox is disabled in loop mode (see tape control). I know the mechanism deletes more particles than really necessary and also does this in a very unsmooth way. On the other hand, if you keep holding the mouse button it will even drop frames. I tried to find something in between and failed to make it work dynamically as untill now. You can protect the first n particles you created by entering n into the protect first n particles text control. dont forget to invoke it by pressing tab or enter. if you cant enter values, make sure the loop checker is unchecked and the controller has focus (click its border or title bar). (i know this is not nice) tape controlThe tape is a buffer to record the calculated frames (as position/size/color data) in. You can see the tape's length in the line above the blue status bar. As frames are calculated, they are added to the tape at the end and the size will be increased. To save your system from crashing when the swap space is full, you should limit the tape size to some reasonable value (maximum tape size control). These values are given in seconds. |
So what do we add to the velocity? Let's be a particle for a second and look around: other particle. ok, then we take each one after the other and take a look at the distance. We add the distance vector time a factor to our velocity accumulator: The other particle forces us to move some way. Now whats the factor do? It calculates by multiplying the 'attraction' attribute with our current partners mass and the (scalar) distance between the distance and the desired distance and dividing by the distance, the desired distance being mine plus the other particles one. Let's be a processor and do this 10,000 times (for 100 particles) a frame. At 25 fps we get about 4 microseconds to do it. So, guess let's not be a processor for a second. We've got a system of moving particles that try to keep a certain distance to each other all at the same time. If the particles also had the will to go as fast as they could, we'd look at a phenomenon called traffic.
32 bit would be nice, but up to this point I saw no need, because my aged 66mhz bebox would fail to push all that data through the double buffer.
Size zero means only one pixel (for fast display)
For advanced thinkers: check out negative values.
I removed a division by zero-check in the heart of the algorithm shortly before release - probably not a good idea...
I put it back in cause it seemed slower.
Please write a gimmick!
Please take the time, you will make a difference! Thanks for helping us.
If this is not your networking computer, you can also find this form at: www.w-4.de/~dfischer/fratricide. In that case: special thanks for reminding yourself :)
Of course we will not give your email-adresses to anybody else.
We're thinking about giving future shareware releases to people that took part in this survey for free and are aware of thus influencing the survey results :-)
this html was done with
[h.Scribe Version 0.1.2 - ©1997 C. Papazissis](free)
Thanks to the author!
<©> fratricide, 1997
created by Nicolas Fischer