Кубічна решітка та 3D сусідства
3D клітинна автоматика замінює 2D сітку на кубічну решітку вокселів, кожен з яких містить бінарний стан. Кожен воксель оновлюється одночасно на основі станів сусідніх йому вокселів – той самий локальний принцип правил, що й у 2D, але з додатковою віссю сусідства. Вонеєрівське сусідство (3D) - це 6 сусідів, що межують з вокселем; Мореве сусідство (3D) – усі 26 навколишніх вокселів у кубі 3×3×3, за винятком центрального (3³ − 1 = 26), аналогічне 2D Life’s 8-neighbour Moore сусідству та яке використовується майже всіма популярними «3D Life» правилами.
N(x,y,z) = {(x+dx,y+dy,z+dz) : dx,dy,dz ∈ {-1,0,1}, (dx,dy,dz) ≠ (0,0,0)} |N| = 3³ − 1 = 26 сусідів // порівняно з 8 у 2D Moore Перехід від 8 до 26 сусідів є найважливішим фактом про 3D CA: правила, скопійовані дослівно з 2D, такі як B3/S23, створюють решітку, яка або постійно порожня, або майже миттєво заповнюється повністю, оскільки поріг народження в 3-сусідстві надзвичайно легко задовольняється у просторі з 26 сусідствами – кожне 3D правило потребує власного переналаштування порогів.
N(x,y,z) = {(x+dx,y+dy,z+dz) : dx,dy,dz ∈ {-1,0,1}, (dx,dy,dz) ≠ (0,0,0)}
|N| = 3³ − 1 = 26 neighbours // vs. 8 in 2-D Moore
Нотація правил та відомі правила
У 3D автоматизмах використовується така ж система B/S (народження/виживання), як і в 2D Life, але розширена до діапазону можливих кількостей сусідів від 0 до 26. Правило 4555 (B5/S45), виявлене Картером Бейсом у 1980-х роках, є найпоширенішим: мертвого вікселя народжує рівно 5 живих сусідів, а живий віксель виживає з 4 або 5 сусідами. При посіві невеликою випадковою групою він перетворюється на стабільні, коралоподібні або кристалічні утворення, які припиняють розширення, досягнувши рівноваги. Амеба (B5678/S45678) використовує широкі діапазони народження та виживання, що призводить до масових тіл, які пульсують і утворюють пучкоподібні вирости. Pyroclastic використовує надзвичайно широкі діапазони для створення щільних, бурхливих об'ємів, які швидко розширюються, перш ніж вкритися статичними хмарними структурами – демонструючи, на відміну від 2D, де широкі діапазони майже завжди означають повне знищення або повне заповнення, додаткова вимірювання дає простір для складних внутрішніх порожнин і оболонки.
Чому 3D правила відчуваються спокійнішими за 2D
З 26 можливих сусідів замість 8, порогові значення народження та виживання, які створюють «цікаву» 2D поведінку, відповідають надзвичайно вузькій смузі простору правил 3D. Більшість відомих 3D правил свідомо віддають перевагу стабільності над хаосом, оскільки неконтрольоване зростання в 3D заповнює об’єм, а не лише площу — розростаюча схема споживає O(n³) клітин на кожне покоління замість O(n²), що призводить до швидкого перевантаження обчислювальних ресурсів та візуального перенасичення при неконтрольованому розвитку правил. Малі набори народження та вузькі смуги виживання, такі як 4555, зазвичай створюють стабільні, коралоподібні структури, які зупиняють зростання, тоді як ширші смуги виживання схильні до неконтрольованого росту, а вужчі — до вимирання. Цікавою є смуга простору правил, що відповідає вузькій смузі, подібно до межі «край хаосу» Вольфрама для елементарних CA.
Розріджене зберігання та рендеринг
Щільний 3D булевий масив сторони N потребує пам'яті O(N³) – мережа 256³ вже складається з 16,7 мільйонів клітин, а більшість станів 3D CA є розрідженими. Дві основні структури даних домінують у практичних реалізаціях: хеш-множина координат, що проживають, або пакування (x,y,z) трійок в один цілий числовий ключ для O(1) пошуку; або розріджений воксельний октетр, який рекурсивно ділить простір та об'єднує порожні гілки, така сама структура, що використовується в рендерерах з трасуванням променів та сховищах чанків у стилі Minecraft. Для візуалізації Three.js використовує інстанційне рендеринг, щоб намалювати тисячі живих вокселів за один виклик, використовуючи InstancedMesh, а алгоритм "Marching Cubes" (Lorensen & Cline, 1987) екстрагує гладку безперервну ізоповерхню з поля вокселів для створення органічних, біологічно-реалістичних оболонок замість грубих кубів.
Застосування: ріст, рельєф та мистецтво
3D CA природно підходять для моделювання процесів агрегації з обмеженим розповсюдженням, росту коралів і мінералів, а також проліферації пухлин – форма виникає лише за рахунок локального оновлення. У відеоіграшних двигунах часто використовують випадковий шум для початкової ініціалізації 3D сітки та запускають декілька циклів CA з правиломи згладжування (приблизно "твердий, якщо ≥13 з 26 сусідніх клітин є твердими"), щоб перетворити різкий шум на гладкі печери та виступи – це пряме 3D розширення техніки, що використовується давно для генерації підземель у рогалинках. І оскільки стани природним чином відображаються як прозорі, кольорові поля з вокселів, 3D CA є популярною платформою для генеративного мистецтва та створення візуалізації музики в реальному часі, що реагує на звук.
Frequently asked questions
Чому правила гри ‘Життя’ у 2D, такі як B3/S23, не можна просто скопіювати в 3D?
Це пов'язано з тим, що простір обчислення сусідів абсолютно інший. У 2D Moore-середовищі 8 сусідів, а в 3D Moore-середовищі – 26 (3³ − 1). Порогове значення народження рівне 3, налаштоване для 8-сного середовища, є занадто легким для задоволення у 26-сного середовища — якщо скопіювати це правило дослівно, воно виробляє структуру, яка або постійно порожня, або майже миттєво заповнюється твердим, тому в 3D потрібно налаштовувати власні порогові значення народження та виживання.
Що таке правило 4555 і чому воно є найпоширенішим 3D-клітинним автоматом?
Правило 4555 (B5/S45) було виявлено Картером Бейсом у 1980-х роках під час систематичного пошуку аналогів ‘Життя’ в 3D: мертвий воксель народжується з рівно 5 живих сусідів, а живий воксель виживає з 4 або 5 сусідів. Посівши невеликий випадковий кластер, воно надійно перетворюється на стабільні, коралоподібні або кристалічні утворення, які зупиняються в розширенні після досягнення рівноваги, що робить його найпередбачуванішим і найбільш вивченим 3D-клітинним автоматом.
Чому клітинні автомати в 3D віддають перевагу стабільності над хаотичною поведінкою, яка є поширеною в 2D?
Завдяки 26 можливим сусідам замість 8, дуже вузька смужка порогових значень народження та виживання, що виробляє «цікаву» поведінку у 2D, відповідає мізерній смужці в просторі правил 3D, тому більшість названих правил 3D навмисно віддають перевагу стабільності. Також важливою є обчислювальна сторона: неконтрольоване зростання в 3D споживає об’єм замість площі, використовуючи O(n³) клітин на кожне покоління замість O(n²), тому правило, що виходить з-під контролю, стає переважною набагато швидше, ніж у 2D.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію the simulation