Dancing fly formations explained

Everything about the various Boulder Dash tools, and other stuff created by the fans.

Moderator: Admin

User avatar
Dustin
Member
Posts: 602
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Re: Dancing fly formations explained

Post by Dustin »

Since this will be the first main episode in this thread since 4 years, I'm going to integrate some of the basics into the following article, hoping to make it easy to get into the whole topic again for those who have read Arno's episodes 1-18 but then didn't concern themselves much with dancing fly formations (DFFs) during the last four years. If you want to be perfectly prepared for this article without reading this whole thread again, I recommend particularly Arno's articles on: BnB (episode 3), BnBnB (episode 15), Fright-3 (episode 5) and Lifted F-vortex (episode 6), which are all more or less strongly related to the following complex DFF. For those who just clicked on this topic for the very first time, I'd rather recommend to start from the beginning with all of Arno's episodes - they're really a lot of fun to read and watch the supporting videos! :)

Episode 19: Three Busy Bees

This is the first DFF which has been found by systematic computer search, and before starting to analyze it, I want to say a few words about this new approach to finding new, big dancing fly formations.

Prologue: Computer search - a new era in the DFF research!

After Arno had written the (temporarily) last article in this thread in 2020, stating that all known DFFs have been covered, I suggested at Krissz's online BD site to try to write an algorithm to systematically search new, bigger DFFs by the help of computers (at the same time checking if we have really found all possible "small" DFFs). I never programmed much myself (more precisely, I never did :D ), but my brother is a computer scientist, so I told him the BD engine rules (concerning fire- and butterflies in empty space, at least) and what we were searching for, and he had fun to write a program for a systematic computer research. At the same time, Nesdori and Darkstoorm, both community members at Krissz's site, liked the idea as well and wrote their own programs. And with great success - all the new DFFs and DFSs which you can see in my previous post were found by their computers! It turned out that for DFF sizes up to 5 flies, a brute force algorithm could rather quickly go through all (sensible) possibilites, so that we can be quite certain that Arno has indeed covered all possible 5-or-less-fly DFFs in this thread. But for 6 flies, computers have found four new DFFs! One of them is the topic of this article while the other three are free-rider formations which we will look at in the next episode. Also here, the brute force method still works very well, and most likely these are the last remaining 6-fly DFFs. With 7+ flies, brute force seems to approach its limits in terms of computing time, but as you can see in the previous post, new DFFs have been found here as well!
The new DFFs are quite fascinating and quite different from those we have seen so far. But judge for yourselves - let's start with the investigation of the first DFF which has been found by computer search: the "Three Busy Bees"!

While analyzing this DFF's pattern, I found that there's some kind of magic involved, especially in the last ten phases! But first things first, here are the main properties of this DFF:

Name: Three Busy Bees
Alt. Name: Soaring-25
Discovered by: Nesdori and my brother (on my request), both independant of each other
First published: Aug 25, 2022 by me
Composition: 2FF, 4BF
Short/Long Loop: 25/75 phases
Direction: 1 Up per short loop
Speed: 25 frames per step
Remarkable: Slowest known DFF by far!

Here is the first published cave where the DFF can be seen in action:

youtu.be/yLvbaBSeHRI

Also, the Three Busy Bees are the main attraction in Dustin's BD 23, cave G (download on the Game Base)! :D

What do we see?
I think that by just watching the DFF in the above cave, it's nicely visible that the two fireflies and the bottom butterfly are just spinning around most of the time (these are the "lazy flies"). The fireflies form a vortex, i.e. they spin together inside the same 2x2 square. (Such a vortex is a recurring theme in many DFFs!) The remaining three butterflies - the busy bees - are working hard to hold the group together:
- First, they lift the firefly vortex up.
- Then, the three busy bees move down, two of them forming a vortex on which the third one can ride (similar to many other DFFs which have been covered by Arno).
- The three busy bees visit the bottom butterfly and lift it up.
- Afterwards, the bees lift themselves upwards in an irregular-looking pattern, until they have reached the firefly vortex again, starting the next loop.
One could identify the FF vortex with the bee's hive and the fourth BF with a flower, so we see the bees doing their daily work, flying to the flower for nectar and pollen, and the flower is lifted up when it's pollinated, and the hive is lifted up when the bees return home to eat and produce the honey before swarming out again :D

How does this formation work?
To understand how a DFF works, it's essential to know the precise rules of the BD engine w.r.t. fireflies, butterflies and empty space. Naturally, Arno has included these rules in episode 1 already, but let's refresh our memories before looking at the DFF:
Engine rules (w.r.t. FFs, BFs and empty space)
- During each frame, the cave scanner moves from square to square, starting at the top-left corner, then moving from left to right to the top-right corner, and then moving to the next row. The rows are scanned from top to bottom. So for a 5x5 size cave, the cave scanning order is as follows:
ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
This order is very important for DFFs!
- When the scanner scans empty space, nothing happens (it just moves to the next square).
- When the scanner scans a firefly, the FF tries to move with the following rules:
1. If the square to the FF's left side is empty, then it moves there and changes its facing direction accordingly.
2. If that square is blocked by another fly, then the FF tries to move forward next.
3. If that square is also blocked, then the FF stays where it is and turns right (by 90 degrees).
- A butterfly moves similar to a FF but mirrored:
1. First priority: move to its right.
2. Second priority: move forward.
3. Third priority: stays where it is and turns left.
- Note that technically speaking, there are not two but eight different flies because each fly faces into a certain direction (left, right, up or down) which determines where it can move next!
- If a fly is scanned which has already been scanned before in the same frame, it's skipped (it can't move twice in one frame).
In the next section, we're going to apply these rules on an example, which will at the same time give us a first insight into the inner mechanics of our DFF.

How far do the three busy bees come on their own?
To understand the mechanics behind this DFF, let's take a look at the three busy bees first. It turns out that, although Arno has made very good arguments in episode 7 that 3 BF cannot form a stable DFF on their own, they can almost do it! Let's see:

Image

Frame 1 shows the initial 3BF formation we want to examine. Two BFs (Yellow and Gray) form a vortex, marked by the black circle, while Green is moving around it, trying to find a way to break in.
Let's apply the engine rules to get from frame 1 to frame 2 step-by-step:
The scanner starts in the top-left square which is empty. Next comes Yellow. It wants to move to its right, and the space is free, so it does so (see the next diagram). The scanner moves on to the third square, again scanning Yellow. But as that BF has moved already, the scanner skips it and moves on to Green. It also wants to move to its right, but there's a problem - the yellow BF has just occupied that square! So the green BF is blocked off (marked by the red dot), and it tries to move forward instead - that square is free, alright (next diagram). The scanner moves on to the second row, and after two empty squares, it's Gray's turn. It's free to move to its right, which leads to the last diagram. The scanner moves on to the last square of the second row, finding Green again which has already moved, so it's skipped. The remaining two rows are empty, so nothing more happens, and frame 2 is reached.
Note that the actual, visible screen jumps directly from frame 1 to frame 2, the two diagrams in the middle cannot be spotted. (I just inserted those for better understanding, but from now on, I won't make any more between-the-frames-diagrams.) Now, in frame 2, the scanner starts again in the top-left corner for the next complete cavescan.
Now that we have refreshed our memories how the BD engine works, let's follow the three BF's movements a few frames further.
If you want to test your understanding of the engine rules, it's a very good exercise to verify these movements for yourself! :)

Image

A star in an empty square means that two BFs are currently trying to move into that square. The star has the colour of the "winner" (the fly which is scanned first), the other fly is blocked.
We can see that until frame 7, Yellow and Gray continue to dance together in a vortex in their 2x2 grid, while Green tries to break in several times but is always blocked off (red dots). But in frame 7, Green is scanned before Yellow, so it finally breaks in and Yellow is kicked out and has to move forward. Such a break-in into a vortex is a recurring theme in many small DFFs which Arno has analyzed; now everything depends on the question if a new vortex is built. If yes, then the formation has good odds to form a stable DFF. But as we see in the next 3 frames, the three BFs do not form a new vortex, but instead they eventually face all into the same direction and will spin on forever. So this is not a DFF.

But what if our butterflies got some assistance from another fly? Well, this idea leads us directly to the "Three Busy Bees" DFF!
(Here's a short explanation for all the following maps in this and future articles; I strongly oriented myself at the way Arno made the maps in the previous episodes:
- squares = FF, cross = BF; this reminds me of the way I drew BD caves as a child: a FF was a square with a dot in the middle, and a BF was a square with a cross inside! :D
- arrows = current facing directions
- colours = just for orientation, to make it easier to keep track of each individual fly.
- red sign = a fly which is blocked off, i.e. an interaction between two flies. Such interactions are very important for a DFF to work because without them, each fly would only spin around without really moving.
- star in an empty square = as explained above.
- circle = marks a vortex.)

Image

We start our examination with the situation given in phase 1. The gray and yellow BFs are dancing in a vortex, the green one is the sneaky single trying to break in. The fourth BF and the two FFs (who form another vortex) are left in white because they won't interact much with the busy bees (although the few interactions are essential for the DFF as a whole!).
In phase 1, Green is blocked by Yellow, so it tries to move forward, but is again blocked by one of the FFs. So it stays where it is and turns to its left.All other flies move into their favourite directions.
In phase 2, Green now moves into its new favourite direction and blocks the other FF off, lifting it upwards.
There're no interactions in phase 3, but in phase 4, the top FF pulls the other one behind it by blocking it off and forcing it upwards too.Green makes another attempt to break into the vortex but is again blocked by Yellow.
Actually, the FFs are done for the whole short loop - they will just keep dancing in their vortex without any further interactions for the following 21 frames! Truly lazy flies, doing no more than absolutely necessary :D

Now, in phase 4, the three busy bees have reached the same positions as in our pre-examinations above. So in the following phases (4-13)...

Image

...the busy bees will behave exactly as in frames 1-10 of the above "unstable 3BF scheme"! The white flies don't influence the busy bees during these phases. However, in phase 12, Yellow influences the white BF, lifting it up. White can actually move up although Green is occupying this square, because Green is scanned before White and moves away in time (that's marked by the small green star, the last symbol I'm going to use regularly for the maps! I just see that I forgot to draw another green star into Yellow's square because Yellow can move into White's square for the same reason - oopsey!)
In phase 13, there are no interactions; each fly moves into its favourite direction. Again, White does not block Yellow off because White is scanned first and moves away so Yellow can move there (this time, the green star is there again!) :D
During the next two phases...

Image

...we can see how the white BF helps the three busy bees to get into action again, instead of spinning around forever. In phase 14, White blocks Yellow off, so Yellow cannot move right as Green and Gray do. However, Yellow also cannot move forward because Green blocks that square. So Yellow cannot move at all in this frame; it stays where it is and turns to its left.The spinning pattern of the busy bees is thereby broken!
Phase 15 is also very interesting. This time, Green is blocked twice by Yellow and by Gray, so Green doesn't move. Yellow, on the other hand, wants to move into Green's position. As Green is scanned before Yellow, Yellow was hoping for Green to move away in time. But as Green can't move, Yellow is blocked and has to move forward. Here, we have a rare case of mutual influence between two flies in the same frame - this is so rare because it requires a third fly (in this case, it's Gray who blocks Green so that Green has nowhere to go to make space for Yellow.)

So that's how the white BF prevents the three busy bees from spinning around forever. With this, the white BF's job is done, and it will just spin around for the rest of the short loop!
And the busy bees? Well, despite the help of the white BF, they still don't form a new vortex (yet), and in 90% of the cases, this would mean that the formation makes some irregular movements for some frames and then still ends up just spinning around. These bees, however, are special: during the remaining ten phases of the short loop, they manage to lift themselves up, eventually create a fresh new vortex and bring themselves into position next to the FF vortex again! Let's see how that works:

Image

If I would try to explain what happens during these phases (other than just saying "well, that's what we get by applying the BD engine rules"), then most striking to me is the behaviour of Gray and Green during phases 16-21, where they perform a full "BnB" short loop (see episode 3) without being disturbed by Yellow. During this time, Yellow is kind of "freeriding" on the BnB and lifted up by no less than three steps in a row (phases 17-20, Yellow is always influenced by Gray!) Afterwards, in phase 21, Yellow turns back to its group mates and stops the BnB pattern by blocking Green off. However, if Yellow had hoped to finally start a new dance with one of the two, it finds itself disappointed: after some re-orientation in phase 22-23, Gray and Green start a vortex dance in phase 24-25. Yellow then rides on that new vortex toward the fireflies to say hello again after a long time!
If you compare phase 1' with 1, the whole formation has moved one step up, and the three busy bees have switched places. It'll take two more short loops until each bee is in its original position again, hence the long loop is 75 frames.
The last ten phases strike me as a miracle. How the three busy bees manage to move back into their original positions, without any help from outside and without really a regular pattern, is something we haven't seen in any previous DFF before!

The map of interactions
I think it's fair to say that the three busy bees are really the main protagonists of this DFF. There are 26 interactions per short loop, 21 of which occur only inside the three busy bees group. This can be seen nicely in the following map, where all the interactions (=red signs) of the short loop are listed:
Image
Here we see all the six DFF members with all their interactions. An arrow from A to B means that A influences (blocks) B; the numbers are the phases when the interactions happen. The three busy bees are surrounded by a circle because they switch places after a short loop, and they do so in counter-clockwise direction (i.e. Green takes Yellow's place, and so on.)
We can see that the three busy bees almost move on their own; only twice do they need assistance: once when Green is blocked by the FF to "correct" its relative position to the Yellow/Gray vortex (phase 1), and once when the white BF prevents the three from spinning forever (phase 14). On the other hand, the three white flies must also be influenced once to move up with the group, which is done with 3 more interactions. The three white flies are really minimalistic - they don't work any more than absolutely necessary to call themselves members of a DFF. Each of them is influenced only once per short loop (which is necessary so they can move with the group) and each of them also influences another fly only once (which is also necessary to be part of a unique DFF, otherwise they'd only be free riders)! Together with the fact that this is by far the slowest known DFF (until now?), we can conclude that these white flies are by far the laziest DFF flies we've ever seen! :D
The above map shows one more important thing, namely that this is really a unique DFF. It's possible to get from each fly to each other fly by just following arrows, which means that each fly influences each other at least indirectly over a short loop. In the next episode, we wll see a map of influences for a free-riding formation, then we can discuss the differences.

The map can visually slightly change if we start our short loop with a different phase. For example, this is the map of influences for a short loop from phases 16 to 15':
Image
For example, here we have mutual interactions between Gray and Yellow while on the previous map, there was only an arrow from Gray to Yellow, not vice versa. Still, the main information is the same - namely the fact that this is a unique DFF, as well as how busy or lazy each fly is. (Note that as the busy bees switch places after a short loop, they will eventually all have the exact same amount of interactions over a long loop!)
By the way, I chose to start this short loop in phase 16 because in this short loop, Yellow is always the sneaky single, which can be nicely seen by the fact that Yellow "loses" most of its interactions on the map (at least until the very end of this short loop, where Yellow finally breaks in and pushes Gray away in phases 10', 11', 14' and 15', just as Green did with Yellow in the original phases 10, 11, 14 and 15.)


A dancing story

Arno used to explain DFFs with dramatic and intriguing love and dance stories, and I know I've neglected this aspect so far in this article, but postponed is not abandoned, so let's see what we have here! :D
Phase 1-2:
Yellow/Gray: "Whooohoooo let's dance in a vortex!"
FF vortex: "Yeeehah that's really fun!"
Green (the sneaky single): "Hey, I want to dance too! That's not fair! OK, if you BFs don't let me in, then at least I'm going to drift you fireflies apart! Ha!"
Phase 3:
FFs: "Heeee Green, what's the big idea? You're just jealous! Go find your own dancing partner!"
Green: "Ah, I can't dance with you anyway. I just wanted to annoy you!"
Yellow/Gray: "Green, that wasn't nice from you! As a punishment, we still won't let you dance with us for 7 more frames!"
Phase 4:
FF1: "Hey darling, come and follow me upwards, away from that stupid BF. I'm gonna help you... ouf!"
FF2: "Thank you! Now let's dance together again!"
Phase 4-10:
Green: "Hey butteys, if you don't let me dance with you, then at least I want you to go and visit our granny Whitey with me. We haven't seen her for the last 4 seconds!"
Yellow/Gray: "Good idea, let's go!"
Phase 10-11:
Green: "Ha! You've become imprudent! Now I'm breaking in! Get away, Yellow! Down with you! And down again!"
Yellow: "Heeeeeey!"
Gray: "Green, that was very rude from you. Now I can't dance with Yellow anymore, but I also don't wanna dance with you now, you bully!"
Yellow: "And don't even dare asking me for a dance, Green! I'm willing to spin around forever rather than dance with someone like you!"
Phase 12-15::
White: "Ah butteys, so you've come to visit Granny once again? That's cute! How're you doing?" Oh, not very well, I see. Why don't you dance together? What? You fell out with each other? Oh, come on! I haven't seen you for 4 seconds now, and you don't have anything better to do than arguing? Listen, I'm gonna help you. But first, you have to help old Granny upwards... ouuuuuf... thanks! And now I can help you. That's it! Now you stop arguing and travel together through the world again!"
Three busy bees: "Thanks Granny! Don't you wanna come with us?"
White: "Ah no, cuties. I'm far too old for such adventures. Go have fun, and don't forget to visit Granny again in 4 seconds!"
Phase 16-20:
Green: "Hey Gray! Let's dance! We haven't danced the BnB for a long time now!"
Gray: "Oh yeah, good idea! Wooo-hooooo!"
Yellow: "Heeey! And what about me? Gray, have you already forgotten how rude Green was to us when we danced? And now you choose her instead of me? Hey, wait!!"
Green: "Was ist Yellie saying? I can't hear it, the dance music is too loud! Yeeeeah!"
White (from afar, sighing): Ah, they're arguing again. Will they ever learn? Well, I was the same when I was young... looks like good old granny will have to calm them down again next time..."
Yellow: "Just you wait, my friends! Now I'll move ahead of you all..."
Phase 21-25:
Yellow: "...and then I move right in front of you and stop your dance! Ha!"
Green: "Heeey what's the point of that? Stop stopping me!"
Gray: "Leave it, Greeney, Yellie is just jealous! Now let's dance in a vortex!"
Green: "You're right! A vortex is even cooler than a BnB! Yesssssss!"
Yellow: "Ah no no no, why aren't you finally dancing with me again? What have I-" *bounces into someone* "Oh, ehm... hi."
FF1: "Oh no... don't tell me it's you again!"
FF2: "No wait, that butterfly looks different than the previous one!"
FF1: "Oh, you're right. Well, that doesn't make it better.
FF2: "Well, at least they help us to move upwards, to see more from the world!"
FF1: "Yeah OK, it's not all bad indeed."

T H E E N D... oh no wait, there is no end. It's just the start again! :D

Are there any relations to other DFFs?
Regarding the "Three Busy Bees" DFF as a whole, it is a very unique one and has little in common with any previous DFF which has been discussed so far! (However, there are definite similarities to a new 7-fly DFF which we will discuss in a future episode!)
Also there's no (p-)mirrored pair (see episode 8 for definition and examples). There are two phases where the condition for a mirrored pair is broken: in phase 15, Gray and Green compete for the same space to move. Gray wins, but with column-wise scanning, Green would win. And in phase 24, we have the same BFs involved, but the other way round; this time Green wins but Gray would have the upper hand with column-wise scanning. Also, no p-mirrored pair exists; to prove this, it is enough to mirror phases 16 and 25 (the phases after the condition-breaking ones). In both cases, the six flies will eventually spin around.

However, we can definitely find similarities to the machanics of smaller DFFs during certain phases and in certain parts of the "Three Busy Bees":

1. Similarity to a Lifted F-Vortex:
This 3-fly DFF has been covered in episode 6, but you can also see its full short loop on the following image:
Image
During phases 2-4, the green BF and the FF vortex behave identical to a "Lifted F-Vortex" DFF. Then in phase 4, Green is influenced by Yellow so the Lifted F-Vortex pattern is broken.

2. Directly after that, the three busy bees form a vortex formation which is a vertically mirrored version of Fright-3 (episode 5):
Image
The symmetry holds until phase 10, when the left-to-right scanning order becomes relevant for the first time (all previous fly interactions could be evaluated by only applying row-by-row scanning!). In phase 10, Yellow and Green compete for the same square to move, and Green wins because it's placed more left than Yellow. However, in phase 6 of Fright-3, Yellow is placed more left and wins, so Green has to wait one more frame before it can break into the Gray/Yellow vortex. This makes all the difference between Fright-3 (a stable DFF on its own) and our 3BFs who end up spinning around (until the "white granny" comes and helps them.)

3. As already mentioned, Green and Gray perform a full "BnB" short loop during phases 16-21. In fact, there's even more to it: from phase 15-17, the three busy bees behave exactly like Bob (Gray), Bobette (Green) and Babette (Yellow) in the free-rider formation "BnBnB" (see also episode 15)!
Image
In phase 2' of the BnBnB formation, Babette is blocked off by another fly which isn't present here in the "Three Busy Bees". So from then on, both formations differ: while in the BnBnB, Yellow breaks into Green's and Gray's "dancing area" already in phase 5', the same BF needs a lot longer to do so in the "Three Busy Bees", first moving far up alongside Gray until phase 20 and then coming back to disturb the dancers from above.

So all in all, the "Three Busy Bees" are like a big puzzle which is set together of several small pieces from formations we have already seen in this thread. This makes me feel that even without the help of computers, we might have found this DFF sometime by just toying around with the known formations!
Also in the following episodes, we will see a lot of such "puzzle pieces". So although the DFFs get more and more complex with more and more flies involved, we don't have to "start from zero" in our understanding of their inner mechanics, and I think that alone will make it fun to analyze them! :D

How to launch this DFF?
If Rockford wants to launch such a big and stretched DFF in a cave with 2FFs and 4BFs inside, it's a good idea to first look for a phase where he can set as many flies as possible into place so that they don't influence each other. For the Three Busy Bees, phase 14 offers itself for that:

Image
(By the way: yes, I think this is a very nice Rockford and yes, I know that a three-year old can draw such a human; in fact, I drew humans the same way when I was three, although I didn't know about Rockford yet...) ;)
If you think the white BF away, then all the other flies are just spinning around without influencing each other. So Rockford can can calmly set one fly after the other into place with the right timings, and then bring the white BF to the group lastly to launch the DFF.
In the following video, we see this in practice:

youtu.be/Rxayrwwi7uI
Rockford first brings the gray BF into place (I marked the looping path of Gray and Green on the image by additional circles for better orientation), then the FF vortex follows, then Green, and finally the yellow and white BFs (which are grouped together in the cave because this turns out to work nicely). The thin strokes on the image mark Rockford's path after releasing the last two BFs (White and Yellow); he must be careful not to get crushed by Green or Gray along the way. The (dirt) square must be snapped free in time so White can move down in the following frame.
Note that in the cave in the video, the flies are already placed, grouped and timed in a way to make the whole launch as easy as possible; if you just have 2FF and 4BF randomly placed somewhere in a cave, the launch would become still a lot harder to do! Also, I think it's hard (if possible?) to create a cave where the launch of the Three Busy Bees DFF is strictly forced; for example, Nesdori solved the above cave by launching 2 independant Lifted B-vortices instead.

Free riders: the "Soaring Kite"
The Three Busy Bees can be extended with a free-riding BF. (Remember: a free rider is an extra fly which can move with a DFF without influencing it.) It is the brown BF in the following image.
Image
This extra fly will just spin around most of the time inside the 2x2 square marked with the circle. It only interacts with the rest of the group once per short loop, namely in phase 20 when it's lifted up by Yellow. (This interaction is of course necessary for the free rider to move with the DFF.)
As you can see at the bottom half of the image, arbitrarily many more free riders can be added to the DFF! This is another analogy to the Lifted F-Vortex DFF, where the same thing is also possible. Below are two videos: the first shows the above formation in action, while the second video shows Arno's older cave on the analogous Lifted F-Vortex formation for comparison (the "Flying Kites").


youtu.be/OV_F6MOaQHY


youtu.be/OyFkcdsNVhE

Stabilizing small "almost-DFFs" - a new class of (big) DFFs!
The "Three Busy Bees" are clearly based on the idea to make a 3BF-formation work with the help of minimalistic/ "lazy" flies (the white flies on the images) who spin around most of the time, but then have one decisive moment when they interact with a "busy" fly. As we will see, similar principles can be found in other big DFFs as well. It will often be the case in the following episodes that we will see some flies of a DFF doing almost all the work while others are there for assistance. This is quite opposite to the smaller DFFs, most of which are based on vortices where every fly has to work almost equally hard to make the DFF work as a whole!

What's up next?
I think it makes sense to examine a bunch of new free-rider formations on old DFFs next. This will include the (probably) last 6-fly DFFs. Then we can conclude the topic "DFFs with up to 6 flies" with a complete overview and move on to really big DFFs with surprising and unfamiliar inner mechanics! Stay curious...! :D
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Arno
Site Admin
Posts: 2878
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Re: Dancing fly formations explained

Post by Arno »

Many thx for the article, Dustin! Very enjoyable to read! :D
User avatar
Dustin
Member
Posts: 602
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Re: Dancing fly formations explained

Post by Dustin »

Glad to hear that, especially from you. Thanks :D
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Dustin
Member
Posts: 602
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Re: Dancing fly formations explained

Post by Dustin »

Episode 20: BnBnBnBnBn...

In the following episode, we're going to see and discuss further extensions of the BnB (episode 3) and the BnBnB (episode 15). As a little appertizer, the following video shows the BnB, the BnBnB and the extensions up to 15 BFs:

youtu.be/RuBVwYCsHRo
The technical explanations are accompanied by a story (italic) which starts from the beginning with the BnB, so it's not strictly necessary to re-read these two previous episodes to understand what's going on. So let's dive into it! :D

Chapter 1: Bob & Bobette
The story starts with Bob the butterfly. He was a lonesome guy who spinned around most of the time inside his small 2x2 sized home. Then one day, he met Bobette. The two liked each other from the beginning, and they soon invented a new dance which they called the BnB. This way, they were able to leave their homes and travel upwards as much as they wanted. More butterfly couples soon followed their example and did the same!


Image

Chapter 2: Jealous Babette
Bob and Bobette were very happy together, but a jealous butterfly with the name of Babette had an eye on Bob as well. She was determined to take Bobette's place at Bob's side and dance with him herself. To make that possible, she had to hire another BnB couple to assist her. Now she could switch places with Bobette every five frames. "You know what you are?", Babette whispered into Bob's ear when it was her turn to dance with him. "You are a lucky bastard, having two dancing partners at the same time!"


Image

(See also: episode 15)
a) shows how the BnBnB works. In phases 1-4, Bob (silver-gray) and Bobette (green) dance together like in the BnB without being influenced by Babaette (yellow). In phase 5, however, Babette moves into the "dancing area" and takes over Bobette's place in phase 1'. So Bobette and Babette switch places every short loop, and they alternately dance a BnB with Bob. This makes the long loop 10 phases, twice as long as the short loop. However, this formation is not a stable DFF on its own; in phase 2, an external influence is necessary to block Babette off. That's why the BnBnB only works as a free-rider formation, i.e. an additional carrying DFF is necessary to support the BnBnB.
In b), you can see the BnBnB carried by an external BnB which is able to give Babette the influence she needs in phase 2. So these 5 BFs now form a stable DFF.

Up to this point, we've seen nothing new; all the previous has already been covered in Arno's episodes 3 and 15. All the following, however, are newly found variants and extensions!

The first thing to note is that the BnB isn't the only DFF which can carry the BnBnB. There are two other DFFs which also move upwards with a speed of 5 frames per step: the Lifted F-Vortex and the Lifted B-Vortex. In fact, both are able to carry a BnBnB as well:

Image

Technically speaking, all these are free-rider formations: the carrying DFF (BnB, Lifted F-vortex, Lifted B-vortex) influences the BnBnB but not vice versa. This can be seen nicely in the map of influences, exemplarily shown below for the BnB as the carrying DFF:

Image

(Quick recap: each arrow is an influence, the numbers correspond to phases according to the previous image. Bobette and Babette are circled because they switch roles after each short loop.) In a unique DFF, it's always possible to get from each fly to each other by following the arrows. Here, however, you can't get from the BnBnB flies to the BnB flies. The BnB is a stable DFF on its own, but the BnBnB isn't, it depends on the carrying BnB to work. So this whole DFF is a free-rider formation; the BnBnB is free-riding on the BnB. As we've seen before, the BnBnB can also free-ride on a Lifted F- or B-vortex instead of the BnB.

Chapter 3: Two more dancers
At first, Bob really felt lucky about having a second dancing partner. However, the more dances he made with Bobette and Babette alternately, the less happy he felt. It just wasn't the same as before, although he wasn't exactly sure where his problem was. Although he danced the same way with both butterfly-esses, it felt completely different with each of them. Bobette felt warm and familiar to Bob, although she, too, didn't look quite happy with the new situation. Babette, on the other hand, was daring, fresh and full of energy, but a lot colder and distant. Time went on, and one day, Babette whispered into Bob's ear that she had prepared a surprise for him next day. Bob didn't know why, but he felt quite uncomfortable about hearing that. And then the next day came, and with it a new dancing partner for him! And if that wasn't enough, a fourth partner came the following week. "Well?", said Babette, grinning. "Do you like my little surprise? These girls can't wait to have a nice dance with you, and they don't mind having to line up in a queue!"


The BnBnBnB
The following image shows the extension of the BnBnB with a fourth (orange) butterfly (I "creatively" called her Bebette, and the whole formation BnBnBnB):

Image

By comparing this picture with the BnBnB above, you can see that from phase 2 onwards, Orange has the same position and direction as Yellow had in the BnBnB; we could say that Orange has thieved Yellow's identity in phase 2! In a similar way, Orange thieves Green's identity in phase 1', now being Silver's new dancing partner for the next loop. Overall, by comparing phases 1 and 1', we see that only Silver (Bob) has kept its position, while Yellow, Green and Orange have switched places among each other. In other words, Bobette, Babette and Bebette are alternately dancing with Bob! Hence the long loop of the BnBnBnB is 3*5=15 phases.
As you can see, the BnBnBnB needs two external interactions to work, but it can still be carried by a BnB in the same way as the BnBnB could. (See b) in the above image; the white BF which blocks Orange in phase 2 then also blocks Yellow in phase 3.) Also, the Lifted F-Vortex still works as a carrying DFF as well:

Image

Here, the two necessary interactions are given by two different white flies: one of the white FFs blocks Orange in phase 2, then the white BF blocks Yellow one phase later.
However, the Lifted B-Vortex as a carrying DFF doesn't work this time, and also there's no second version of a BnB carrying the BnBnBnB. (Both these attempts fail because Yellow will influence the carrying BnB/ Lifted B-Vortex such that the carrying DFF is broken.)

The BnBnBnBnB
By adding a fifth (blue) BF at the right space and with the right direction, a further extension is possible:

Image

This new blue BF (Bibette) ;) brings itself into the dance by thieving Orange's identity in phase 4. Also, in phase 2, Blue does the job of blocking Orange off (blue star), which had previously to be done by the carrying DFF. So the BnBnBnBnB needs only one external influence again, namely in phase 3 (white star). Now we have 4 BFs switching places after each short loop, so that the long loop of the BnBnBnBnB is 4*5=20 phases.
b) shows the BnBnBnBnB carried by a BnB; the BnB is placed one column more left than in the BnBnB and the BnBnBnB.
How about alternative carrying DFFs this time? Well, it turns out that there is exactly one possibility, and this time it's with a Lifted B-vortex. I'm going to leave it as an exercise for the adventurous reader to find out for yourself where exactly this Lifted B-vortex has to be placed! :D


Chapter 4: Bob's dancing club
In the following weeks and months, Babette invited more and more butterfly-esses to the dance, and she also started an ad campaign to make "Bob's dancing club" even more famous and popular. Bob felt reminded of his math lectures on "Hilbert's hotel" during his studying time. His prof liked to use it to explain the rules of infinity: even if the hotel is already full, there's always a way to invite one more guest into it!


Further extensions to arbitrary size!
I've divided this section into a) the step-by-step approach (how I found further extensions) and b) the result, so if you're more interested in the latter, you can skip a) and directly move on to b). I think, however, that the way to the result is even more interesting than the result itself! :D

a) How I found further extensions of the BnBnBnbnB
The BnBnBnB and the BnBnBnBnB have been found by brute force computer search, and of course, it's a natural question to ask if these free-rider DFFs can be extended further. To approach this question, let's compare the previous results:

Image
Image
There's an interesting pattern occuring here. First, let's compare the BnB and the BnBnB. The BnBnB has the BFs in the same positions and with the same directions as the BnB (although in phase 1', the green BF has "changed its colour" and become yellow, which has to do with the "identity theft" we were already observing earlier in this article.). Of course, the BnBnB also has an extra BF in each phase which wasn't there in the BnB. Now if we compare the BnBnB with the BnBnBnB, the same pattern occurs, although there are several BFs which have a different colour in both formations. But disregarding the colours, each BF of the BnBnB is also present in the same phase, spot and direction in the BnBnBnB. This pattern still holds for the BnBnBnBnB.

This observation motivates to number the BFs (except Bob) according to that pattern - see the following image:

Image
Image

Finally, we can go one step further and re-identify the BFs according to their numbers instead of the colours, which can be seen for the BnBnBnBnB in the next image:

Image

(I deleted some of the red signs and added some green rhombusses, which will make sense soon!)
Now if we look at the movements of these re-identified BFs, we see something very funny: sometimes, two BFs seem to move through each other like ghosts, and sometimes a BF is cheating by making two steps in one frame! :D
Concretely:
From phase 3 to 4, BFs 4 and 2 are moving through each other, each of them moves as if the other one wasn't there. That's what the green rhombus is meaning.
From phase 5 to 1', the BFs 2 and 1 do something similar, but at the same time, BF 2 makes two steps in a row! This is marked by the star in the green rhombus. BF 2 also gets a star in phase 1', which means that it's currently one step too far ahead. Such a starred BF has to stop later for a frame to compensate for the "superluminal speed"! For BF 2, this is done in phase 2, where BF 2 is blocked by the silver Bob and by BF 4.
Finally, BF 3 also has a "superluminal" phase, namely phase 1, and later in phase 3 it's blocked by BF 2 and by the white star (i.e. the carrying DFF) as compensation.

Now this may all be very funny and interesting, but haven't we lost track of our original goal to extend the BnBn... formations further? Well, it turns out that our re-identification of the BFs is actually very helpful! If you look at the above image once more, and follow one specific BF during the whole short loop, you will find that each BF is just moving inside a 2x3 square, which looks a lot simpler than with the coloured BFs. Also, no higher-numbered BF can ever influence a lower-numbered BF (this follows directly from the way we defined the numbers!).
So now we can try to add a new BF 5 to the BnBnBnBnB, such that this new BF
1) doesn't influence the other BFs and
2) also moves in a 2x3 rectangle, being lifted up once during the short loop.
Of course, we have to apply our new "rule" that BFs can move through each other without interacting in analogous situations. Concretely, these are the following two situations:

Image

After getting used to the curious "new rules" and with a bit trial-and-erroring, it turns out that BF5 can indeed be placed accordingly, and also BF6, BF7 and... well, just check the following image in subsection b)! ;)

b) The result
Image

If you want to use this diagram to build the BnBn... with n BFs (+Bob/Silver), then you use only the BFs from 1 to n. The brown numbers at the white stars denote for which n this white star must be realized by the carrying DFF. For example, let's check the right white star in phase 1. It must be there (if n=5 or bigger) to block BF 5* off. If n=7 or higher, then this job is done by BF 7. But if n=5 or 6, then BF 7 is of course absent, so the carrying DFF must do the job to block BF 5*.
So here's a detailed instruction to build a BnBn... with n BFs + Bob + a carrying BnB for a given n=1,2,3,4,...:
1. Choose the phase (in the above image) where the brown number n can be found. If there are two consecutive phases, choose the first one.
2. Place all the BFs from 1 to n (+Bob, the silver BF) according to that phase.
3. Finally, for the carrying BnB, place a right-facing BF directly above the white star with your brown number, and an up-facing BF directly to the left of the right-facing one.
Here's an example for n=7:
Image
That's it, now let the BnBn... soar! :D

How about n=17 or bigger? For that, there's a repeating pattern: the BF with the number (n+15) is always 10 steps left and 1 step up from BF n! So BF 17 is 10 steps left and 1 step up from BF 2 in each phase (facing into the same direction), and so on. This rule does not apply for BF 1 (nor for Bob who has no number), but for all other BFs and also for the white stars and the brown numbers inside. This makes it now possible to extend the BnBn... to arbitrary size! The video below shows this for n=144, which was the biggest one possible with the cave size limitations at Krissz's BD site :D

youtu.be/lYLmDJMo-WU

Another super-luminal effect!
Let's have another look at the following image (it's the same one as above, so you don't have to scroll up):
Image
Comparing the phases reveals another curious pattern: you can always get from one phase to the next by moving each BF and star (from 5 onwards) two steps right and by then decreasing each number by 3. (BFs 2-4 vanish, which is compensated by new BFs coming in from the left side; for Bob and BF 1 the whole pattern doesn't work.)
So if you watch a big BnBn... formation, like in the video above, and the screen shows only the middle part of the DFF, then you can see that the whole formation seems to move two steps right per frame! That's double as quick as flies can usually move - they definitely consumed too much coffee today! :D

Following one specific BF in the BnBn...

The more BFs are added to the BnBn..., the longer the long loop becomes. For n=16 (i.e. 16 BFs+Bob+carrying DFF), we already have a long loop of 16*5=80 frames! How does a specific BF move inside the DFF during such a long time? What do the BFs do in the "waiting queue" between two dances with Bob? The following image shows the answer!

Image

A very regular pattern can be seen here. After dancing with Bob in the first short loop, our BF moves "upstairs" from the right edge of the DFF to the left edge. Then it moves to the right edge again, this time in a kind of zigzag route. I think it's fair to say that all these BFs perform a nice dance on their own between two dances with Bob! :D Bob himself always stays on the two rightmost columns of the above image, moving upwards on a spiral-shaped route while alternately dancing with each of the 16 BFs.

Summary of everything so far: main properties of the BnBn... formations
Name: BnBn...
Composition: n+1 BFs (n=1,2,3,4,...) + carrying DFF (exception: for n=1, the BnB, no carrying DFF is needed.)
Short loop: 5 phases
Long loop: 5*n phases
Special remark: free-rider formation, no unique DFF (exception: n=1)

One more related free-rider DFF
There's one more related DFF (also a free-rider formation) which I think belongs into this article, firstly because of its similarity to the BnBn... formations, and secondly because it fits perfectly with the dramatic final of the story! :D

Chapter 5: The counterstrike
The more dancing partners Babette organized, the more flooded Bob felt. He had barely enough space to breathe, and the dances became less and less inspiring and more and more tiring. The rare dances with Bobette were the worst of all. Bob could clearly sense her sadness and desperation when they danced, and it was always over before it had really started. So Bob decided he had to act. "ENOUGH!" he cried during a dance with fangirl-XYZ-Bob-didn't-care-what-her-name-was. "I need a break. Each of you is only dancing once per long loop, but I'm dancing all the time. I'm going for a vacation." And he left the dancing area, avoiding to look into Bobette's direction while going away.
The first day of Bob's vacation was great. He had travelled far away from home, and the timeout already started to ease his mind and sort his thoughts. On the first night in his luxurious hotel - the dancing club had, economically, been a full success - Bob had a very nice dream. He was dancing with only one partner again, and it felt warm and comfortable, much different from the hectic dances in Babette's club. When Bob looked into his dancing partner's face, a big happiness flew through him, and when he woke up from his dream in the middle of the night, he immediately knew what he had to do.

Bobette had a terrible night at home. She dreamt of her dancing with Bob, but then suddenly she was rudely pushed away to make space for someone else, and she found herself at the end of an endless queue. And then the ringing bell somewhere far away in the background, which didn't make any sense at all...
She woke up. The ringing wasn't part of her dream. The telephone was actually ringing in the middle of the night!
"Hello?", Bobette said into the phone in disbelief. Who could phone her at such a time? But suddenly, she sat bolt upright in her bed. It was Bob.
"Hi Bobette. I know it's far too late to phone you, but I didn't know what else to do. I want to dance with you. Only with you. But I don't know if you still want to dance with me. I mean, I had so many dancing partners lastly, but they all felt like soulless puppets to me. None of them was like you. I- What I really want to say is - I love you."
The silence that followed lasted only a few seconds, but it felt to Bob like an eternity. Finally, he heard Bobette's voice.
"I love you too", she whispered, sobbing. "And I also want to dance with you forever."
"But I don't know how to get rid of all the others again."
"Well, I think most of them are just looking for a nice dance. If we organize new dancing partners for them, they won't annoy you any further, I'm certain. But Babette... she won't give up so easily. I feel that she's obsessed with you, Bob. She wants to possess you."
"But, but then why did she organize all these dancing partners, if she wants me all for herself?"
"I think", replied Bobette anxiously, "I think that she senses that you still have feelings for me. That's why she floods you with more and more dancing partners. She wants you to... slowly forget me."
Now it was Bob who was struggling for words. A shiver went down his back, but then he quickly became angry. "What a bastard!", he shouted. "She must not get away with that! Don't worry, Bobette. I'm going to spend the rest of my vacation working on a plan to thwart her, so we can be together again."
"Then I'll organize new dancers for the other girls, and then we phone again and I'll help you with your plan!"
When Bobette rang off and prepared to sleep again, she quickly saw a shadow whooshing along the window. She immediately knew it was Babette observing her.

The day Bob returned from his vacation, Babette was the first on the dancing area. Meanwhile she had organized no less than 143 dancing partners for Bob, but strangely, none of them was there yet. When Bob and Bobette finally arrived, Babette shouted angrily: "I know it was you, Bobette! You convinced them all not to come, didn't you? But just you wait, now more than ever! Here am I, and here is our carrying BnB! Now let's dance!"
"We also have hired an external BnB for support", Bobette replied calmly. "Just in case."
Babette didn't understand the point behind that second BnB, but she also found no reason to object, so the dance started.


Image

Bob and Bobette started their BnB dance, and Babette took the role of the jealous rival as usual. In the first frames, nothing spectacular happened, but then she saw her chance coming.

Image

Babette made an attempt to switch places with Bobette to take over the dance with Bob. But it didn't work! She flew over the dancing couple, then slid down to their right side. Bob and Bobette had switched their roles among each other, but they were still dancing together!

"What do you think about our role switch?", Bobette asked Bob while they danced with more passion than ever. "What do you think about me taking the lead?" "Well, yes, why not?", Bob shouted back enthusistically. "After all, we're living in times of flexible gender roles!" They smiled at each other and laughed, and none of them noticed Babette cursing and grumbling as she surrounded the couple again and again without ever finding a chance to break in.


And that's the end of the story! :D The following video shows the above 7-BF DFF in a speedrun cave:

youtu.be/0G9FZ6iKePE
The DFF shown above is closely related to the BnBnB - the three coloured BFs start in the same positions, and also their movements are similar, at least for phases 1-6. However, there are also significant differences:
- This DFF needs three external interactions to work; these are the three white stars in phases 3, 7 and 9. These three interactions at different sides of the DFF can't be realized by just one carrying DFF, so this is the first time that we see a free-rider DFF with two independant carrying DFFs (the two white BnBs)!
- The short loop of the above DFF is 10 phases, which is twice as long as the short loop of the carrying BnBs. Also, the two halves of the short loop are quite different: in phases 1-6, Bob and Bobette perform a full BnB loop without being disturbed by Babette. However, in phase 7, Babette blocks Bobette off so that the dance breaks. In phases 8-10, Bob and Bobette just spin around facing into the same direction, until they rebuild their original formation in phase 1'.
- Speaking of phase 1': compared with phase 1, Bob and Bobette have switched roles, but they will still perform a BnB loop together in the following short loop. This is a major difference to the BnBnB, where Babette successfully breaks into the "dancing area" and switches roles with Bobette as Bob's dancing partner. This difference motivated me to call the above DFF the "strong couple" version of the BnBnB.


Compilation: all DFFs with 6 or less flies
So that's it for the BnBn... formations! It may not have escaped the attention of the, ehm, attentive reader that we saw three new 6-fly DFFs in this article:
1. BnBnB carried by a Lifted F-vortex
2. BnBnB carried by a Lifted B-vortex
3. BnBnBnB carried by a BnB
Computer research makes it very likely that with this, we have now found and covered all possible DFFs with 6 or less flies! So here they are, as a kind of summary of all the previous 20 episodes in this thread! :D
Explanations for the following diagrams showing all the (unique and free-rider) DFFs:
- the colours aren't really relevant, but they do show some relations between different DFFs.
- white arrow = moving direction; if there's a number inside the arrow, it denotes how many steps per short loop the DFF makes.
- big numbers next to the white arrow: short/ long loop
- if the name of a DFF has a "+" in the middle, then it's a free-rider DFF ("carrying DFF" + "free riders"). The others are unique DFFs.

All DFFs with 2-3 flies
Image
2 FFs: Frank and Franka (FnF) [covered in episode 2]
1 FF + 1 BF: N/A [proven in ep. 4]
2 BFs: Bob and Bobette (BnB) [ep. 3]

3 FFs: Fright-3 [ep. 5]
2 FFs + 1 BF: Lifted F-vortex [ep. 6]
1 FF + 2 BFs: Lifted B-vortex [ep.6]
3 BFs: N/A ["almost proven" in ep. 7, confirmed by computers]

All DFFs with 4 flies:
Image
4 FFs:
- Fright-4 [ep. 5]
- Crawling-F4 [ep. 10]
3 FFs + 1 BF: Fright-3+1BF [extra post between ep. 7 and 8]
2 FFs + 2 BFs:
- Lifted Gear Wheels [ep. 6]
- Lifted F-vortex+1BF [ep. 6]
1 FF + 3 BFs: N/A
4 BFs:
- The 4 Elements [ep. 9]
- Crawling-B4 [ep. 10]

All DFFs with 5 flies:
Image
5 FFs:
- Fright-5 [ep. 6]
- Sinking-F5 [ep. 11]
- Glider-F5 [ep. 13]
4 FFs + 1 BF: Fright-4+1BF [between ep. 7 and 8]
3 FFs + 2 BFs: Fright-3+2BF [between ep. 7 and 8]
2 FFs + 3 BFs:Lifted F-vortex+2BF [ep. 6]
1 FF + 4 BFs: The 4 Elements+1FF [ep. 9]
5 BFs:
- Cassiopeia [ep. 14]
- Glider-B5 [ep. 13]
- BnB+BnBnB, version 1 [ep. 15]
- BnB+BnBnB, version 2 [ep. 15]

All DFFs with 6 flies:
Image
6 FFs: Sinking-F6 [ep. 17]
5 FFs + 1 BF: Fright-5+1BF [between ep. 7 and 8]
4 FFs + 2 BFs: Fright-4+2BF [between ep. 7 and 8]
3 FFs + 3 BFs: Fright-3+3BF [between ep. 18 and 19]
2 FFs + 4 BFs:
- Three Busy Bees [ep. 19]
- Lifted F-vortex+3BF ("flying kite" style) [ep. 6]
- Lifted F-vortex+BnBnB [ep. 20]
1 FF + 5 BFs: Lifted B-vortex+BnBnB [ep. 20]
6 BFs:
- The 6 Elements [ep. 16]
- BnB+BnBnBnB [ep. 20]

What's up next?
Although a systematic search for DFFs with 7+ flies gets more and more difficult, there're still a lot of new discoveries to share and analyze in future episodes! The next two episodes will cover two interesting 7-fly DFFs. One of them is a new unique DFF, the other one is a free-rider formation which is still interesting and standalone enough for an own episode! Stay curious... :D
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Arno
Site Admin
Posts: 2878
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Re: Dancing fly formations explained

Post by Arno »

Great work Dustin! :D
User avatar
Dustin
Member
Posts: 602
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Re: Dancing fly formations explained

Post by Dustin »

Thx Arno! It was a lot of effort, but also a lot of fun to do some research on my own! :D

BTW, I forgot to mention who discovered each of the BnBn... formations and when they were first published:
BnB: ??? (it's a very basic DFF which can occur randomly in many classic caves)
BnBnB:: Nesdori, Nov 21, 2019 (cave "Bob & Bobette & Babette" at Krissz's site)
BnBnBnB: Nesdori, Aug 25, 2022 (cave "New 6-fly DFFs" at Krissz's site)
BnBnBnBnB: Nesdori, Jul 19, 2024 (cave "7-fly DFFs (7B and 5B+2F)" at Krissz's site)
Bigger extensions: Dustin, Aug 11, 2024 (cave "BnBnBnBnBnBn..." at Krissz's site, see the first video of the episode!)
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Dustin
Member
Posts: 602
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Re: Dancing fly formations explained

Post by Dustin »

Episode 21: A Nest of 7 Fireflies

In the previous episode, we've seen a BnB carrying arbitrarily many more butterflies. Now it's a natural question whether a FnF can do similar tricks. And the answer is yes! In this episode, we will see and analyze another free-rider DFF where a FnF carries a free-riding formation of 5 more fireflies.

Let's start with the main properties of this DFF:
Name: A Nest of 7 Fireflies
Discovered (and named) by: Nesdori
First published: Aug 22, 2022 (the first video below)
Composition: 7FF
Short/long loop: 5/20 phases
Direction: 1 Left per short loop
Type: free-rider DFF (riding on a FnF)
Extensions: infinitely extendable with groups of 5 more fireflies (discovered by me, published on Nov 8, 2024, see the second video below)

This DFF can be seen at the beginning of the following video:

youtu.be/B68pvjwcuEo
(Later in the video, a Fright-4 and a Fright-3 can be seen as well - see episode 5 for those smaller DFFs!)

What do we see?
At the start of the video, the seven FFs are slowly crawling to the left. Their moving speed and style may remind of an FnF (see episode 2). At a closer look, a FnF can even be recognized at the front of the whole formation, leading the other FFs (at least that's how it looks to me).
How does this DFF work?
As the Nest of 7 FFlies has a lot in common with the FnF - the very first DFF which has been covered in this thread - let's start with a recap of the 5 phases of a FnF. This will make it easier to understand the mechanics of our bigger 7-fly DFF without having to switch back and forth between this article and episode 2 all the time:
Image

Now let's examine the 5 phases of the short loop of our Nest of 7 Fireflies:
Image

This DFF consists of three FnFs with switching dancing couples plus a sneaky single whose role also changes once per short loop. The FnFs are not that easy to recognize because they're very close together. Let's analyze that in detail phase by phase:

Phase 1: Three and a half FnFs
Six fireflies met on a relatively small dance floor. They built three couples who all wanted to dance the FnF: Red and Orange took the lead and started in FnF-phase 4, Green and Gray went into the middle of the floor and started their dance in FnF-phase 1. Cyan and Blue, the only couple who were already married, modestly moved behind the others and started in FnF-phase 2. (See the FnF-image for comparison!) The six fireflies placed themselves carefully on the narrow dance floor, such that none of the couples would disturb the others during the dance. However, a seventh, yellow firefly suddenly joined them on the floor. He hadn't had a good dance for a long time, and he was determined to take someone's place in the dance!
(Note that actually, without the yellow FF, we would just have three close but independant FnFs. Their dancing areas overlap but they would never actually disturb each other!)

Phase 2: The single prepares
While the others were dancing their dances, the yellow single started to move, planning to slide over the middle dancing duo (Gray/Green) to get to the front. He had cast an eye at Red, whose dominance and leadership he found very attractive!

Phase 3: Ready to take over
While the other six fireflies were still dancing their FnFs, Yellow brought himself into position, ready to kick Orange out of his dance with Red (see the yellow star in the diagram, marking the position where Yellow is going to move naxt and block Orange off).

Phase 4: Chaos and a chain reaction
Yellow did it! He blocked Orange off, taking over his dance with Red. But this caused a big chain reaction which affected the middle dancers as well: because Orange couldn't dance on, he was now in the way of Gray who shared a part of his dancing area with him. This meant in return that Gray couldn't make space for his dancing partner Green, who had no choice but to move out of the dance. Only Cyan and Blue, the married couple, danced on as if nothing had happened!

Phase 5: Re-orientation of the new couples
Yellow was very pleased with himself, now dancing the FnF with the attractive red firefly at the very front. Orange, who had just been thrown out of his dance with Red, apologized to Gray for bumping into him. Gray said sorry too, they both laughed about their mishap and started a new dance with each other! Green had lost touch to his former partner Gray. He now found himself alone and in the role of the new single. Cyan and Blue watched the scenery in amusement and invited poor Green into their dancing area.

Phase 1': A new round
Green gladly accepted the offer and planned to take his revenge on Yellow by sliding over the middle dancers to kick Yellow out of his dance...

T H E E N D
...
...
...well, of the first short loop, before the story restarts... and restarts... and... well, we all know how DFFs work by now :D

So actually, the visually most striking FnF couple at the front of the DFF (at least most striking to me) is really NOT the carrying FnF! Instead, it is the Cyan/Blue couple at the back of the Nest, which is much harder to see in the video because their dancing area is occupied by a third firefly most of the time!
The following table shows the dancing couples in each of the 5 phases, where the switches from phase 3 to 4 can nicely be seen:
Image

Note that in phase 4 of the Nest, the new couples Red/Yellow and Gray/Orange do not yet form a proper FnF because Yellow and Orange are facing into the wrong directions. But this little "technical error" is disregarded in the above table.
The Map of Interactions
Image

This map allows us a deeper insight into the inner mechanics of the Nest of 7 Fireflies. For recap: an arrow from firefly X to Y means that X blocks Y off; the numbers are the phases when the interaction takes place. The four circled fireflies switch their places inside the Nest each short loop. (Compare phases 1 and 1' above!)
Now what does this map tell us?
There are 15 interactions per short loop, 7 of which are necessary to make the DFF move (one per firefly). With these numbers, one could define the DFF's "efficiency" as 7/15 which is about 47%. This could tell us something if we compared it with other DFF's efficiencies, which might be an interesting topic for a future episode :D
The map also identifies the Nest as a free-rider DFF: the Cyan/Blue FnF influences the other flies but not vice versa, so these two are the carrying DFF (as already mentioned above). Also, we see that the other five fireflies almost form a DFF on their own; only once do they need help from the Cyan/Blue FnF, namely in phase 5 where Cyan blocks Green.
As mentioned, Yellow, Orange, Gray and Green switch their roles in that order every short loop: one of them is always dancing with Red, two others dance with each other, and one is the sneaky single. No less than 10 out of the 15 total interactions take place solely between these four flies! This means that these four fireflies move inside a big part of the whole dancing area. The following image shows the path of Yellow over a long loop (20 phases), taking over the role of Orange, Gray and Green after each short loop (5 phases):
Image

Most striking to me is the fact that in the first short loop, Yellow makes five left steps in a row! :D I would like to give this remarkable pattern a name - the "Big Slide". In later episodes, we will see several new dancing fly stagnations (similar to DFFs but not moving as a whole) with the same pattern!

Extension to arbitrary size
This idea came to me while I was already writing this article: isn't there a relatively simple method to extend this DFF by adding 5 more free riders at the left side? The leading FnF of the original Nest (i.e. Red and Orange in phase 1 of the Nest) could be used as the carrying FnF for the new free riders. It's not a problem that Red and Orange won't stay together all the time, because a new FnF will immediately be built when Yellow takes over Orange's role in phase 4. And indeed it is possible to extend the Nest with a group of 5 more free riders, and with the same idea, more 5-FF-groups can be added as well!
Image
The following video shows the Nest of 2, 7, 12 and 17 fireflies in action (the first of which is just a normal FnF):

youtu.be/2kNvHSpHLU8

Don't these DFFs look like big caterpillars? :D

Relations between the Nest of 7 Fireflies and other DFFs
We've already seen and discussed the relationship between the Nest and the FnF in detail. However, there's another natural question we have yet to answer: how strong is the connection between the Nest and the BnBnBnBn... formations from the previous episode?

The Nest vs. the BnBnBnBn...
First of all, we have a few obvious similarities: The Nest of 7 FFs is a free-rider DFF carried by a FnF, as well as the BnBnBnBn... is free-riding on a BnB. The strong connection between the FnF and the BnB has already been seen earlier in this thread, particularly in episode 8 about mirrored pairs. As a consequence, both formations (more precisely, classes of formations) have the same short loop length - 5 phases - and mirrored moving directions (the Nest moves left, the BnBnBn... moves up, and left/up are mirrored directions as defined in episode 8.) Furthermore, both DFFs can be extended infinitely, both from right to left.
However, at a closer look, several differences come to light as well:
(1) In the Nest, the carrying FnF is at the back of the whole formation, while in the BnBnBn..., the carrying BnB is at a leading position.
(2) The Nest moves to the left and it can be extended also to the left. In the BnBnBn..., movement direction (up) and extension direction (left) are different.
(3) While some BnBnBn... formations can also be carried by a Lifted F- or B-vortex, there is no alternative carrying DFF for the Nest. The reason is that there is no unique DFF which moves left with a speed of 5 frames per step other than the FnF (yet?).
(4) While the BnBnBnBn... formations can be extended by adding single extra BFs, the Nest can only be extended by groups of five extra FFs.
(5) Finally, the inner mechanics are quite different in both formations: while the Nest consists of several small FnFs where the partners are switching once per short loop, the BnBnBnBn... formations are themed around one specific BF (Bob) who alternately dances with all the other BFs.
Conclusion: While the FnF and the BnB, by themselves, are mirrored pairs and thereby very closely related, they start to emancipate themselves when it comes to their free rider formations! :D BTW, the Nest of 7 fireflies is not even p-mirrored with the 7-butterfly BnBnBn... formation.

What about a launch for the Nest of 7 FFs?
This could become very complicated. The usual way to launch a DFF works in two steps:
(1) bringing as many flies into position as possible (usually this was at least a vortex for the many vortex-based DFFs);
(2) bringing the remaining flies to the party with the right timing.
Now the Nest consists of three FnFs plus a sneaky single. This means that for step (1), at most 4 FFs can be brought into position: one fly from each FnF plus the sneaky single. Then for step (2), Rockford would have to lead the remaining three FFs simultaneousely to completely different locations and with perfect timing. That sounds pretty tough to do in practice (even by the high standards of DFF-launch-difficulty).
Another idea would be to create three independant FnFs closely together (in the same relative positions and with the same relative phases as in the Nest) and then add the single. This doesn't really sound easier (although it might be possible, of course.)
Long story short - I haven't tried to make a launch cave where there are seven fireflies somewhere and a Nest must be created with them. Of course, if anyone else wants to take up the challenge and do such a cave (at Krissz's site or with a Construction Kit), I'll gladly update this episode and post the resulting YouTube video here! :D

In the next episode...
...we will finally see a new unique DFF again after the last two episodes were about free-rider formations. It will be the second-slowest DFF so far (behind the Three Busy Bees in episode 19) and it's one of the very few DFFs so far which is not built around a vortex. Stay curious...! ;)
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
Post Reply