Boids — це модель штучного життя, створена Крейгом Рейнольдсом 1987 року, яка відтворює зграї птахів, косяки риб і рої комах. Кожен «боїд» дотримується лише трьох простих локальних правил, проте група в цілому породжує напрочуд живий, узгоджений рух — класичний приклад емерджентності. Сьогодні ті самі ідеї застосовують у масових сценах фільмів та ігор, для координації роїв дронів і у вивченні колективної поведінки тварин.
v' = v + w_s·S + w_a·A + w_c·C — нова швидкість
v' дорівнює старій швидкості v плюс зважені сили
розділення S, вирівнювання A та згуртованості
C. Ваги w_s, w_a, w_c —
це значення повзунків; кожна сила обмежена максимумом, щоб рух лишався плавним.
Boids від Рейнольдса дебютував у кіно у фільмі «Бетмен повертається» (1992) для анімації роїв кажанів і навали пінгвінів — одне з найперших застосувань автономних агентів-зграй у кінематографі.
Алгоритм Boids Крейга Рейнольдса показує, як три прості правила — розподіл, вирівнювання та злиття — породжують складну реалістичну поведінку зграї птахів, риб та комах.
Три правила керують кожним агентом: уникай сусідів (розподіл), рухайся в середньому напрямку групи (вирівнювання), тримайся поруч із центром групи (злиття). З цих локальних взаємодій виникає складна поведінка всієї зграї.
Перетягуй повзунки для налаштування сили кожного правила. Збільш злиття для щільних зграй, розподіл — для розосередженого руху. Зміни швидкість або напрямок вітру.
Алгоритм Boids опублікував Крейг Рейнольдс у 1987 році. У 1992-му він використовувся у фільмі «Бетмен повертається» для симуляції зграй кажанів — один із перших прикладів ШІ-масовки в кіно.
Ця симуляція запускає модель Boids Крейга Рейнольдса на до 600 автономних агентів у справжньому 3D-просторі, відрендереному за допомогою WebGL. Кожен конусоподібний агент керується лише трьома локальними правилами — розділенням, вирівнюванням і згуртованістю — застосованими до сусідів, знайдених у межах радіуса сприйняття. Жодної глобальної хореографії не існує; узгоджений рух зграї є суто емерджентним. Просторова хеш-сітка робить пошук сусідів ефективним, тож сотні боїдів плавно оновлюються щокадру всередині обмежувальної рамки з м'якими стінками.
Алгоритм зграї Рейнольдса 1987 року. Щокадру кожен боїд підсумовує три зважені сили керування — розділення (відштовхування від дуже близьких сусідів), вирівнювання (узгодження із середнім напрямком сусідів) та згуртованість (дрейф до середньої позиції сусідів) — після чого його швидкість стає v' = v + w_s·S + w_a·A + w_c·C, причому кожна сила обмежена, щоб рух лишався плавним.
Повзунки задають Count (50–600 боїдів), Speed, ваги Separation, Alignment та Cohesion (по 0–3 кожна) і Perception radius (1–12). Увімкніть Predator, щоб випустити червоного хижака, від якого зграя тікає, з власним повзунком Pred. speed. Натисніть Rebuild, щоб скинути, перетягуйте для обертання камери та прокручуйте для масштабування.
Boids від Рейнольдса дебютував у кіно у фільмі «Бетмен повертається» (1992), анімуючи рої кажанів і навалу пінгвінів — одне з найперших застосувань автономних агентів-зграй на екрані.
Boids — це алгоритм штучного життя, опублікований Крейгом Рейнольдсом 1987 року для відтворення зграй птахів, косяків риб і роїв комах. Кожен агент (об'єкт-птах, або боїд) дотримується трьох локальних правил керування без лідера й без централізованого плану, проте узгоджений груповий рух виникає сам собою. Це класична демонстрація того, як прості локальні взаємодії можуть породжувати складну глобальну поведінку.
Для кожного боїда симуляція сканує найближчих агентів у межах радіуса сприйняття й обчислює три вектори керування: розділення відштовхує від сусідів, що підійшли занадто близько, вирівнювання підлаштовує його напрямок під середню швидкість сусідів, а згуртованість тягне його до їхньої середньої позиції. Вони зважуються повзунками, обмежуються максимальною силою й додаються до поточної швидкості щокадру.
Кожен повзунок задає вагу (від 0 до 3) одного з правил керування. Підвищення Cohesion дає щільніші, густіші зграї; підвищення Separation розосереджує агентів і запобігає скупченню; підвищення Alignment змушує групу рухатися в єдинішому напрямку. Саме балансування цих трьох дає природний, закручений рух зграї, а екстремальні значення можуть розбити зграю чи стиснути її.
Радіус сприйняття (від 1 до 12 одиниць) задає, наскільки далеко кожен боїд може відчувати інших агентів. Малий радіус означає, що боїди реагують лише на найближчих сусідів, даючи розпорошеніші, фрагментованіші групи; великий радіус дозволяє кожному боїду реагувати на багатьох інших, породжуючи більші, синхронніші зграї. Симуляція також використовує цей радіус як розмір комірки своєї просторової хеш-сітки для швидкого пошуку сусідів.
Вона відображає головний принцип, підтверджений біологами — що зграйність виникає з локальних правил, а не з централізованого контролю — і лишається стандартною навчальною моделлю. Однак реальні шпаки відстежують приблизно фіксовану кількість найближчих сусідів (близько семи), а не все в межах фіксованого радіуса, і реальні тварини додають такі чинники, як обмеження зору та реакцію на хижака. Ця версія є вірним, ілюстративним наближенням, а не точною біологічною реконструкцією.