Jump to content

#1
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
A small demo of swarming 3D qboids in LE2.

This is a slow motion video capture of how the rules effect the behaviour:




Controls
Cohesion - Q increase - A decrease
Alignment - W increase - S decrease
Separation - E increase - D decrease

Reset qBoids - R
qBoids - T increase - G decrease

you will need to Reset the qBoids for a change in number to take effect. All other settings are realtime.
The B key will toggle on and off the outline of the confinement volume, and the Z key toggles an application speed attenuation function which attempts to keep the qboids moving at roughly the same speed no matter how many (min 10 - max 250).

This is basically a proof of concept WIP.

For more information about this file:
http://www.leadwerks...t-the-flockers/


[attachment=3181:LE2_qBoids Demo.zip]

Rev 00
[attachment=3214:Flockers.zip]

Rev 01
[attachment=3232:Flockers Rev 01.zip]

#2
macklebee

macklebee
  • Members
  • 3,413 posts
cool stuff MG... Posted Image
Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590
LE / 3DWS / BMX / Hexagon

macklebee's channel

#3
Roland

Roland
  • Members
  • 1,359 posts
Impressive. You really got the boids flowing. Are you using Craig Reynolds papers from 1987? I started with that one, but like with many other things I didn't finnish it. Congratulations, really great for birds.
English is not my native language

#4
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
@Mack: Thanks m8, working on your fish now lol

@Roland:  Thanks and no, I did not read his papers but I did read one of his webpages, and another by Conrad Parker just to get a written definition of the rules down, I explain why I did it that way on my blog, as technical reading was the last thing on my "must do list" yesterday morning after a "busy" Saturday night lol ...

#5
Paul Thomas

Paul Thomas
  • Members
  • 302 posts
That is awesome MG, great job.

#6
Pixel Perfect

Pixel Perfect
  • Members
  • 2,028 posts
Very nice, would emulate shoals of fish well

#7
diedir

diedir
  • Members
  • 187 posts
very impressive great job MG, as often...
I7 - 16Go - W8.1 - GTX770

#8
Road Kill Kenny

Road Kill Kenny
  • Members
  • 642 posts
Hehe that is pretty cool...

It reminds me of an old 2D game called Liquid Wars

#9
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts

View PostPaul Thomas, on 06 February 2012 - 07:39 PM, said:

That is awesome MG, great job.


Thanks Paul, it's a lot more stable now than my first "early Sunday morning" draft version when all the flocking flockers flocked off ... Posted Image

#10
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts

View PostPixel Perfect, on 07 February 2012 - 11:43 AM, said:

Very nice, would emulate shoals of fish well

Thanks Pix, yeah fish shoals are working .. had a small glitch in the mesh alignment function .. but had a little time today so rectified that.


@Diedir & Ken: Thanks, it's still very much a WIP.

#11
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts

View PostPixel Perfect, on 07 February 2012 - 11:43 AM, said:

Very nice, would emulate shoals of fish well




#12
Pixel Perfect

Pixel Perfect
  • Members
  • 2,028 posts
haha ... love it :D

#13
knowledgegranted

knowledgegranted
  • Members
  • 56 posts
Very impressive!

#14
AggrorJorn

AggrorJorn
  • Members
  • 3,513 posts
That looks awesome! Really inspiring stuff. I hope to do that as well soon. Thanks for the post

#15
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
@Pix, Aggror & knowledgegranted: Thanks, I had a request for the exe that I used in the "Fish" video, it became a little more complex since that was recorded, as its now a small app I use to check for bottlenecks in the code and avenues for operational speed improvements. If I find time today I will update the demo.

#16
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
Ok, heres a demo of the app I am currently using in my testing for those that have shown interest, its not that user freindly interface wise, but it was not written with "public" release in mind.

Rules:

Cohesion - Boids try to fly towards the average position of local flockmates in a given radial volume of 3D space

Separation - Boids try to keep a small distance away from other local flockmates in a given radial volume of 3D space

Alignment - Boids try to match velocity with other local flockmates in a given radial volume of 3D space, velocity is speed in a given direction.

Keys 1 -7 Change Boid Mesh

1 - qBoid
2 - Poly Arrow
3 - Fish
4 - Butterfly
5 - Seagull
6 - Parrot
7 - Shark

Controls:

Cohesion Radius - Q increase - A decrease
Alignment Radius - W increase - S decrease
Separation Radius   - E increase - D decrease

Reset Boids  - R

Number of Boids - T increase - G decrease  (min 10 - max 500)

You will need to Reset - R - the Boids for a change in the number of Boids to take effect.

Boid Max Velocity    - Y increase - H decrease - N Apply
Boid Max Turnig Force   - U increase - J decrease - M Apply

Max Velocity and Max Turning Force are not realtime adjustments and need to be applied to take effect, as they are tied in directly to the individual Boid Type structure which I will be using later for some additional individual behavioural functionality.

Update Cycle - I increase - K decrease

The update cycle changes how many cycles have to pass before calls to the update Boids functions are made. When set to 1 this means every update cycle, 2 means every other update cycle and so on.

Animation Speed - O increase - L decrease

For those Boid meshs that have animations, this will increase and decrease the playback speed in realtime.

The B key will toggle on and off the outline of the confinement volume, and the Z key toggles an application speed attenuation function which attempts to keep the Boids moving at roughly the same speed no matter how many, this will have very little or no effect when Vsync is on.

Toggles:

Z - Attenuation
X - Wireframe Mode
C - AntiAlias
V - VSync
B - Outline of the confinement volume
P - Mesh Freedom

Mesh Freedom changes the rotational constraints of the Boid mesh "Pitch - Roll - Yaw" means it can rotate about all axes (X,Y,Z), "Yaw Only" means it will only rotate left and right (Y axis)


[attachment=3214:Flockers.zip]

#17
macklebee

macklebee
  • Members
  • 3,413 posts
very nice MG...
Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590
LE / 3DWS / BMX / Hexagon

macklebee's channel

#18
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
Thanks Mack, once I get the basic flocking streamlined I can then think about adding other behaviours, next on the list though is to tie in the individual Boids velocity magnitude and acceleration to the animated Boids animation speed.

#19
Marleys Ghost

Marleys Ghost
  • Members
  • 2,077 posts
ok, a small revision for those that have shown interest. I had an hour to kill so have added dynamic animation speed to the shark mesh. Each individual Boids swimming animation speed is now controlled as a function of that Boids velocity vector magnitude with respect to the Boids maximum allowed movement speed, basically the faster the Boid goes the faster the mesh "swims". The only difference to the controls in the app is that when the shark mesh is selected (number key 7) the "Animation Speed" adjustment will be for the maximum animation speed possible. All other Boid meshes remain the same for the moment.

Controls


[attachment=3232:Flockers Rev 01.zip]