О проекте
Физопыт собран ради одной мысли: сложное поведение чаще всего вырастает из простого правила. Не из формулы, которую надо выучить, а из правила, которое помещается в одну строку.
Под всеми опытами лежит одно ядро. Оно умеет немного: двигать шары, отбивать их от стен фигуры и считать столкновения. Опыты отличаются тем, что происходит в момент касания двух шаров. Где-то рождается третий, где-то два слипаются в один, где-то передаётся зараза. Этого хватает, чтобы получить совершенно разное поведение: лавину, рост планет, волну эпидемии, колокол распределения.
Ни одной записанной картинки здесь нет. Каждый кадр считается в вашем браузере прямо сейчас, поэтому один и тот же опыт каждый раз идёт по-новому. Физика считается с постоянным шагом в одну стодвадцатую долю секунды, а столкновения ищутся по сетке соседей, а не перебором всех пар. Благодаря этому на экране спокойно живёт больше тысячи шаров, и ни один не проскакивает сквозь стену.
Цифры в описаниях не выдуманы. Все они получены прогонами этих самых симуляций: 622 шара при заполнении квадрата, 213 против 157 единиц скорости у демона Максвелла, слаженность стаи 0,73 за полминуты. Если ваш прогон даст другое число, это нормально: случай каждый раз раскладывается иначе.
Сайт ничего не знает о посетителях. Нет ни счётчиков, ни рекламы, ни сбора данных: все расчёты идут внутри вкладки и никуда не уходят. Шрифты лежат на том же сервере, поэтому страница не обращается к сторонним сайтам.
Опыты можно показывать на уроках и в кружках, ссылаться на них и открывать сразу запущенными. Добавьте к адресу опыта #run, и он начнётся без нажатия кнопки, а #step=3000 прокрутит расчёт вперёд и покажет готовый результат. Что к какой теме подходит, собрано на отдельной странице для учителей.