AMAZING example of complex emergent behavior from a very simple rule

preview_player
Показать описание
Each tile has the same simple rule - if you see a neighbor blink, then increase your urge to blink by 10%. From that simple rule comes such an amazing result!

Do read the paper that inspired this here:

Sign up for updates on getting your own set of blinks here...
Рекомендации по теме
Комментарии
Автор

Can we install this in cars so that at stop lights eventually every cars' blinkers will be flashing in unison?

LarchmontVillageOG
Автор

"I understand the code, I even wrote the code" - one does not necesarilly follow from the other :)

zbyszanna
Автор

That is how heart cells work. They will beat but become in unison when they are in contact

seditt
Автор

"i understand how it works, i even wrote the code to make it work, but when i turn it on and it works, i am still shocked and amazed"

-Basically every programmer

HilmyA.S.
Автор

Imagine finding all your homies and blinking together and then getting reset

americannacho
Автор

They have the urge to blink... "GODDAMNIT LET ME BLINK ALREADY - AHHH that was great, OH PLS AGAAAIN"

melvin
Автор

The synchronization is due to the Kuramoto coupling (a phase coupling in oscillators which you explained as the "urge"). The same phenomenon is behind fireflies flashing in sync or people applauding. I've spent a couple of years working on this and it's really great to see your enjoyment of discovering this by yourself :) Enjoy your experiments!

dawidlaszuk
Автор

"The Sky is falling!" - Chicken Little, from the movie Chicken Little. These things look like the panel that hit Chicken Little on the head.

thefacedlool
Автор

Who else thought the tiles were going to attach together when they were separate?

hybridswifty
Автор

Edit: To be fair I think this is neat, I'm just making a nitpick.
Further edit: Glad to see this generating so much discussion but keep it civil and remember there isn't one clear definition of complexity that's why it's a debate in the first place. :P
Calling it complex emergent behavior doesn't seem right, the code used is literally designed to add a set value to each unit then reset to a ground state this behavior has no choice but to emerge based on that (it's designed by default to have emergent behavior but calling it complex is a stretch). It'd be a more fitting demonstration of complex emergent behavior if it was some random value that's added between 0-100% instead of just 10% then find consistent patterns emerge when they interact. (bit of a nit-pick I know)

MaximusLight
Автор

More than a decade ago, I wanted to use this concept for syncing microcontroller oscillators to generate properly timed polyphonic music among multiple little monophonic nodes (kind of like doing polyphonic midi music with each voice given to an independent device). I never did do it, but I might still tinker with it someday. Thanks for the reminder! :)

zencow
Автор

This is very well covered in the book SYNC by the mathematician Steven Strogatz who studied that kind of stuff. Btw great science communicator overall and host of the podcast The Joy of Y.

pttnastick
Автор

"5 lines of code" = an entire page. Wish it was that way for essays.

Kobe
Автор

It is a well known synchronisation phenomenon that happens with coupled metronomes. Here the coupling between the modules is wireless with the condition that you mentioned.

udayanbanerjee
Автор

This reminds me of a documentary I saw on fetal development. It showed how a few pulsating cells would connect together and their pulses would sync. Those cells would be the basis of the heart.

Excellent work.

LesDempseySoloLesta
Автор

Dude I heard about this paper on Sean Carroll's podcast and instantly recognized the concept, such a cool implementation!

player
Автор

2:17 the cry of satisfaction of every engineer, programmer, nerds, tinkerers ETC when their shit works flawlessly 😂😂

Karpe_Deem
Автор

I like how you simply yet very accurately discribed the algorithm

Omgtired
Автор

When you write code for the first time and it doesn't break, everyone is shocked and amazed.

micycle
Автор

The algorithm is simple: each node runs circles, if it sees it's neighbor go trough start/finish, you jump forward 10% .. so in at most 10 cycles, you have caught up with your neighbor.

erwinmulder