← 🦁 Animals & Their World
🟢 6+ years

🐟 Акваріум

🌊 Акваріум theme:
Fish: 25
Fed: 0
💡 Fish follow 3 rules: don't crowd neighbors, steer toward center, match velocity!
Click — throw food · Fish will find it

🐟 Акваріум — Симуляція Зграї Риб

Інтерактивний акваріум, де рибки плавають разом за алгоритмом зграї (boids). Годуйте рибок, додавайте нових та спостерігайте за красою скоординованого руху без жодного лідера.

🔬 Що демонструє

Рибки підпорядковуються трьом правилам: тримати дистанцію від сусідів (розділення), відповідати напряму групи (узгодженість) та залишатися близько до центру групи (зчеплення). Це породжує вражаючі кружляючі косяки.

🎮 Як використовувати

Натисніть кнопку «Годувати», щоб кинути їжу і спостерігати, як рибки кидаються до неї. Використовуйте повзунки для збільшення кількості риб або зміни швидкості. Клацніть будь-де у воді, щоб розпорошити косяк.

💡 Чи знали ви?

Косяк риб не має лідера — кожна риба одночасно слідує і веде. Ця координація без централізованого управління дозволяє стаду реагувати на хижаків за мілісекунди — швидше, ніж будь-яка центральна нервова система.

Про цю симуляцію

Автор: Команда MySimulator · Редакційна перевірка: Редакція MySimulator

Оновлено: 7 липня 2026 р.

Цей акваріум анімує зграю риб за допомогою класичної моделі роїння Boids, де кожна риба керує собою на основі трьох локальних правил — розділення, узгодженості та зчеплення — без жодного центрального лідера. Кожна риба бачить лише сусідів у межах невеликого радіуса, проте зі спільної поведінки виникають скоординовані, реалістичні зграї. Кинута їжа додає просту силу притягання, тож косяк у реальному часі перебудовується навколо найближчої крихти.

🔬 Що показує

Емерджентне роїння за алгоритмом Boids Крейга Рейнольдса. У межах радіуса 160 пікселів кожна риба прямує до середньої позиції (зчеплення) та узгоджує свою швидкість із середньою швидкістю (узгодженість) сусідів, водночас відштовхуючись від будь-якої риби, ближчої за 80 пікселів (розділення). Їжа в межах 250 пікселів додає силу притягання, а швидкість обмежується щокадру, тож рух залишається плавним.

🎮 Як використовувати

Повзунками задайте кількість риб (5–60), їхню максимальну швидкість (0.5–4) та силу зчеплення (0–0.05), яка визначає, наскільки щільно вони збираються. Натисніть «Кинути їжу» або клацніть будь-де на воді, щоб скинути крихти, до яких попливе косяк. Перемикайтеся між пресетами Тропічний, Арктичний і Глибина, щоб змінити палітру та освітлення.

💡 Чи знали ви?

Зграйність — це переважно стратегія захисту від хижаків. Щільний косяк зі схожих на вигляд риб запускає «ефект сум'яття», ускладнюючи хижакові вибір і відстеження якоїсь однієї цілі серед багатьох.

Поширені запитання

Що насправді моделює ця симуляція?

Вона моделює зграю риб як систему Boids — алгоритм роїння, винайдений Крейгом Рейнольдсом у 1986 році. Замість того щоб прописувати зграю як єдине ціле, кожна риба є незалежним агентом, який реагує лише на найближчих сусідів, тож упізнавані форми косяка — це емерджентний результат, а не щось запрограмоване напряму.

Як риби вирішують, куди пливти?

Щокадру кожна риба оглядає своїх сусідів і поєднує три сили керування: розділення відштовхує її від риб у межах 80 пікселів, узгодженість підлаштовує її напрямок під середній напрямок риб у межах 160 пікселів, а зчеплення притягує її до їхньої середньої позиції. Ці сили додаються, підсумкова швидкість обмежується заданим вами максимумом, і риба робить один крок.

Що змінюють три повзунки?

Повзунок «Риби» задає, скільки агентів у акваріумі (від 5 до 60), і перебудовує зграю. «Швидкість» задає максимальну швидкість, якої може досягти кожна риба. «Зчеплення» (від 0 до 0.05) масштабує притягання до центру групи — низькі значення дають вільних, розкиданих риб, а вищі — щільні косяки у формі кулі.

Чому риби пливуть до їжі, яку я кидаю?

Коли є їжа, кожна риба знаходить найближчу крихту і, якщо та в межах 250 пікселів, додає силу керування близько 0.15 у її напрямку. Крихта вважається з'їденою, щойно риба наближається на 10 пікселів, що збільшує лічильник «Нагодовано». Тож їжа діє як тимчасовий атрактор, накладений поверх звичайних правил роїння.

Чи це фізично точна модель справжніх риб?

Це достовірна демонстрація принципу, що складна групова поведінка може виникати з простих локальних правил, що біологи й справді спостерігають у реальних косяках. Проте це не гідродинамічна чи біологічна симуляція: тут немає опору води, конусів зору, енергії чи видової поведінки, а рух відбувається у двох вимірах попри підводну сцену.

Про Акваріум — Симуляцію Зграї Риб

Ця симуляція моделює зграю риб, що плаває у віртуальному акваріумі, за алгоритмом Boids — обчислювальною моделлю емерджентної зграйної поведінки, винайденою Крейгом Рейнольдсом у 1986 році. Кожна риба дотримується трьох простих локальних правил — розділення (уникати тісняви з сусідами), узгодженість (прямувати за середнім напрямком сусідніх риб) та зчеплення (рухатися до середньої позиції сусідніх риб) — і лише з цих правил, без жодної централізованої координації, виникають реалістичні зграйні візерунки.

Зграйність риб трапляється в тисячах видів і вивчається в галузях від морської біології до робототехніки. Той самий принцип трьох правил лежить в основі алгоритмів роїння, що використовуються для координації дронів, моделювання дорожнього руху та симуляції натовпу.

Часті запитання

Що таке алгоритм Boids і як він працює?

Boids — комп'ютерна модель, створена Крейгом Рейнольдсом у 1986 році для симуляції зграйної поведінки птахів (назва походить від "bird-oid objects" — «пташиноподібні об'єкти»). Кожен агент, або «boid», щокадру застосовує три правила керування: відходить від надто близьких сусідів (розділення), підлаштовує свій рух під середню швидкість сусідів (узгодженість) і прямує до середньої позиції сусідів (зчеплення). Жоден агент не має загального огляду групи — скоординована зграя виникає виключно з цих локальних взаємодій.

Як користуватися цією симуляцією акваріума?

Повзунком «Риби» задайте кількість риб в акваріумі (від 5 до 60), повзунком «Швидкість» — наскільки швидко вони плавають, а повзунком «Зчеплення» — наскільки щільно зграя тримається разом. Натисніть кнопку «Кинути їжу» або клацніть будь-де на воді, щоб скинути крихти — риби в межах 250 пікселів попливуть до них і з'їдять, коли опиняться на відстані 10 пікселів. Кнопками пресетів Тропічний, Арктичний і Глибина змінюйте колірну палітру та тему середовища.

Що насправді змінює повзунок «Зчеплення»?

Повзунок «Зчеплення» (діапазон від 0 до 0.05) масштабує силу, яка притягує кожну рибу до середньої позиції сусідів у радіусі 160 пікселів. При дуже низьких значеннях риби розходяться і зграя тримається вільно. При вищих значеннях група стискається в щільний, схожий на кулю косяк, що рухається як одне ціле. Встановивши зчеплення на нуль, ви повністю вимикаєте цю силу — лишаються тільки розділення та узгодженість, що дає розкиданих, хаотично блукаючих риб замість цілісної зграї.

Якими рівняннями керується зграйний рух риб?

Щокадру риба обчислює три вектори сили. Розділення: для кожного сусіда ближче за 80 пікселів додається одиничний вектор у протилежному напрямку, масштабований на 0.04. Узгодженість: усереднюються вектори швидкості всіх сусідів у межах 160 пікселів, масштабуються на 0.02 і додаються до швидкості риби. Зчеплення: обчислюється вектор від риби до середньої позиції сусідів у межах 160 пікселів, нормалізується і масштабується параметром зчеплення. Усі три сили підсумовуються й застосовуються, після чого швидкість обмежується максимумом, заданим повзунком «Швидкість». Це сили керування за схемою інтегрування Ейлера, а не ньютонівська фізика — прискорення й опір закладені неявно через обмеження швидкості.

Чому справжні риби плавають зграями в океані?

Зграйність у справжніх риб еволюціонувала передусім як захист від хижаків. Щільний косяк із сотень чи тисяч однаково виглядаючих риб запускає те, що біологи називають «ефектом сум'яття» — хижакові стає майже неможливо відстежити й виокремити одну ціль серед швидкого скоординованого руху безлічі схожих риб. Косяки також виграють завдяки ефекту «багатьох очей»: що більше особин стежить за небезпекою, то швидше зграя її помічає. Деякі зграйні види додатково отримують гідродинамічну перевагу, оскільки риби можуть рухатися в хвилі тиску за сусідами й економити енергію.

Чи є поширена хибна думка про те, як організовані зграї?

Поширена хибна думка — що зграю веде «риба-лідер» попереду, за якою пливуть інші. Насправді зграйні риби не мають ні лідера, ні ієрархії. Риба, що виглядає як передня, просто опинилася там через сукупне керування рухом усіх особин. Якщо ця риба повертає, уся група перебудовується, і попереду може опинитися вже інша риба. Кожна особина ухвалює власні рішення, спираючись лише на риб, яких вона безпосередньо сприймає, а впорядкований рух групи — це самоорганізована емерджентна властивість.

Хто винайшов модель Boids і коли її опублікували?

Крейг Рейнольдс, на той час дослідник комп'ютерної графіки, опублікував алгоритм Boids у 1987 році в матеріалах конференції SIGGRAPH у статті «Flocks, Herds, and Schools: A Distributed Behavioral Model» («Зграї, стада й косяки: розподілена поведінкова модель»). Модель одразу справила вплив на кіно та анімацію — вперше її використали у великій кінопродукції в фільмі Тіма Бертона «Бетмен повертається» 1992 року, де за допомогою Boids анімували тисячі кажанів і пінгвінів. У 1998 році Рейнольдс отримав премію «Оскар» за технічні досягнення за роботу над керуванням рухом і поведінковою анімацією.

Які ще симуляції пов'язані з цією моделлю акваріума?

Акваріум тісно пов'язаний із симуляцією 3D Boids на цьому сайті, яка показує зграйну поведінку в тривимірному просторі без акваріумної тематики. Симуляція «Косяк Риб 3D» також використовує правила зграйності, але зображує риб у вигляді 3D-моделей. У ширшому сенсі ті самі принципи емерджентної поведінки з'являються в «Грі Життя» (емерджентність клітинного автомата), «SIR Моделі Епідемії» (поширення агента в популяції) та «L-Системах» (правила росту, що породжують складні структури рослин). Усі вони показують, як прості локальні правила можуть породжувати складні глобальні візерунки.

Як алгоритм Boids використовують в інженерії та робототехніці сьогодні?

Алгоритми, похідні від Boids, широко застосовуються в роївій робототехніці, де групи простих автономних дронів чи наземних роботів мають координуватися без центрального контролера. Ті самі правила уможливлюють децентралізовані пошуково-рятувальні операції, сільськогосподарські дрони-рої для моніторингу врожаю та координацію кількох безпілотників у військовій справі. В інженерії дорожнього руху моделі роїння підказують, як автономні автомобілі можуть формувати колони, щоб зменшити аеродинамічний опір. У мережевій інженерії алгоритми мурашиної колонії та рійної оптимізації — математично споріднені з Boids — розв'язують задачі маршрутизації й балансування навантаження у великих розподілених системах.

Які актуальні напрями досліджень зграйної поведінки риб і колективної поведінки загалом?

Дослідники нині вивчають, як справжні косяки риб ухвалюють колективні рішення — наприклад, у який бік повернути, коли наближається хижак, — без того, щоб хоча б одна особина мала повну інформацію. Дослідження з використанням багатокамерного швидкісного відстеження показали, що інформація поширюється зграєю хвилею зі швидкістю приблизно 20 довжин тіла риби за секунду — значно швидше за будь-який індивідуальний час реакції. Відкриті питання охоплюють те, як зграї підтримують цілісність у тривимірному просторі в турбулентній воді, як формуються й розпадаються змішановидові косяки, і як мозок кожної риби кодує та швидко обробляє соціальні сигнали від десятків сусідів одночасно.