Головна Фізика та Механіка Піщаний Автомат

⏳ Піщаний Автомат

Пісок, вода, вогонь, дерево, кислота, дим. Малюйте мишею — спостерігайте реакції.

Фізика та Механіка2DЛегкий60 FPS
sand ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Схожі симуляції

Про пісочний клітинний автомат

Ця пісочниця — двовимірний клітинний автомат, у якому екран поділений на сітку дрібних клітинок, кожна з яких містить один матеріал: пісок, воду, лаву, камінь, рослину, газ, або пару й вогонь, що утворюються внаслідок реакцій. Кожна клітинка підкоряється кільком простим локальним правилам, які можна записати як next(x,y) = rule(state, neighbours). З цих тривіальних правил на всій сітці виникає складна, правдоподібна поведінка сипких матеріалів і рідин.

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

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

Що таке симуляція «падаючого піску»?

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

Як насправді працює симуляція?

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

Що роблять елементи керування?

Кнопки матеріалів обирають, чим ви малюєте: Sand (Пісок), Water (Вода), Lava (Лава), Stone (Камінь), Plant (Рослина), Gas (Газ) або Erase (Стирання). Brush size (Розмір пензля) задає радіус кругової області малювання — від 1 до 20 клітинок. Speed (Швидкість) визначає, скільки кроків фізики виконується на кожен відображений кадр — від 1 до 8. Clear (Очистити) звільняє всю сітку.

Чому порядок оновлення стовпців перемішується на кожному кроці?

Сканування стовпців зліва направо зміщувало б рух убік, тож пісок і вода дрейфували б у переважному напрямку. Перемішування порядку стовпців на кожному кроці усереднює це зміщення, даючи симетричніші й природніші купи та потоки.

Як пісок досягає свого кута природного укосу?

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

Які реакції можуть відбуватися між матеріалами?

Лава, що падає на воду, перетворює воду на камінь і залишає по собі пару. Лава й вогонь можуть підпалити сусідні клітинки рослини, які потім горять як вогонь. Вогонь поширюється на сусідню рослину, вигорає в газ, а газ повільно розсіюється. Рослина також може повільно поширюватися там, де торкається води.

Чи поводиться вода як справжня рідина?

Лише приблизно. Вода падає, коли під нею є порожній простір, інакше намагається розтектися убік до трьох клітинок. Це дає переконливе накопичення й вирівнювання, але ігнорує тиск, в'язкість і нестисливість, тож це якісне наближення, а не розв'язувач рідин Нав'є-Стокса.

Чи фізично точна ця симуляція?

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

Що змінює керування Speed (Швидкість)?

Speed (Швидкість) задає, скільки кроків фізики обчислюється на кожен кадр, який малює браузер. За значення 1 симуляція просувається на один крок за кадр; за 8 — на вісім, тож матеріали осідають і реагують значно швидше ціною більшого обсягу обчислень на кадр.

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

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

Як це пов'язано з «Грою в життя» Конвея?

Обидва є клітинними автоматами, глобальна поведінка яких виникає з простих правил, застосованих до кожної клітинки на основі її сусідів. «Гра в життя», створена 1970 року, популяризувала ідею, що тривіальні локальні правила можуть породжувати багаті візерунки; іграшки з падаючим піском застосовують той самий принцип до сипких матеріалів і рідин.