Я попытался смоделировать Вселенную. Вот что получилось
Сегодня вечером я сидел и смотрел как на моём экране рождаются и умирают частицы.
Я не запускал готовый симулятор. Я написал его сам. На Java. За один день. И в какой-то момент программа показала мне фазовый переход — то самое явление которое физики-теоретики используют для объяснения первых секунд после Большого Взрыва.
Я не планировал это увидеть. Оно вышло само.
Начало: что если убрать случайность
Всё началось с одного вопроса. У меня был проект — симуляция квантового поля на основе тетраэдров. Каждый узел немного дрожал: Math.random(). Красиво, но мертво. Шум без смысла.
Я подумал: а что если заменить случайность на закон? Пусть энергия течёт от узла к соседу пропорционально разнице — как тепло. Одно правило. Больше ничего.
Запустил на решётке 100×100 — десять тысяч узлов. Поставил одну точку с энергией в центре. Нажал пуск.
По экрану пошла идеальная круговая волна.
Дошла до края и появилась с другой стороны — решётка замкнута как поверхность бублика, тор. Волна вернулась и встретила себя. На экране появились интерференционные кольца — точно как в двухщелевом опыте Юнга из учебника квантовой механики.
Я этого не программировал. Это вышло из одного правила.
Первая проблема: всё расплывается
Красота длилась недолго. Через тысячу шагов поле превратилось в равномерный туман. Тепловая смерть. Второе начало термодинамики — хотя я его не закладывал. Оно просто случилось, потому что именно так работает диффузия.
Частицы в реальном мире так не ведут себя. Электрон не растворяется. Значит нужно что-то ещё.