Математика, на которую можно смотреть: ответвление моего физического симулятора
В августе я выпустил в Steam Makarov Physics Suite - 140 интерактивных 3D-модулей по физике, от маятников до токамака. Проект тянется с 2004 года: начинался на Delphi и OpenGL 1.1, потом был переписан с нуля на C# со своим рендером.
Пока я его делал, накопилась пачка тем, которые физикой уже не назовёшь: узлы, замощения, четырёхмерные тела, случайные блуждания. Им стало тесно, и я ответвил их в отдельный проект - Makarov Math Suite. Движок тот же, принцип тот же: не картинка «по мотивам», а живая сцена, где каждое число на панели измерено по происходящему, а не написано в подписи.
Вот семь первых модулей - короткие записи прямо из программы.
Случайные блуждания (- walks)
Тысячи ходоков выходят из одной точки и шагают по решётке - каждое направление равновероятно. Облако растёт как корень из числа шагов, и стеклянная сфера ровно такого радиуса растёт вместе с ним. А кто хоть раз прошёл через дом, становится золотым. В одном и двух измерениях рано или поздно возвращаются почти все; в трёх - только каждый третий, около 34 %. Это теорема Пойи, и здесь она не рассказана, а измерена по рою: доля золотых стоит на экране и сходится к точному значению.
Узлы (Knots)
Торический узел T(p, q): кривая намотана p раз вокруг дыры тора и q раз вокруг его трубки. Трилистник, пятилистник, зацепление Соломона. Картинка сама считает свои пересечения при любом повороте камеры - и число никогда не опускается ниже известного минимума, как ни крути. Это и значит «инвариант». Поменяй p и q местами: картинка другая, узел - тот же самый, и числа это подтверждают.
Гиперболическая геометрия (Hyperbolic geometry)
Диск Пуанкаре: вся бесконечная гиперболическая плоскость уложена внутрь окружности, и до края - бесконечно далеко. Семиугольники по три в каждой вершине замощают её без зазоров и нахлёстов - в обычной плоскости такое невозможно. Замощение не расставлено руками: оно выращено отражениями одной центральной плитки. И оно течёт - мёбиусов сдвиг скользит узором, плитки всплывают от края и уходят обратно, и ни одно ребро при этом не меняет своей гиперболической длины. Рядом тот же узор поднят на гиперболоид - вторая модель той же геометрии.
Минимальные поверхности (Minimal surfaces)
Формы, в которые ложится мыльная плёнка: катеноид, геликоид, поверхности Эннепера и Шерка. У всех средняя кривизна в каждой точке равна нулю - изогнуто в одну сторону ровно настолько же, насколько в другую, - и панель меряет её вживую прямо на поверхности. Самое красивое: поворот одного угла перетекает катеноид в геликоид без единого растяжения - все расстояния на плёнке остаются прежними. Цвет показывает кривизну Гаусса: голубое - почти плоско, пурпурное - самое крутое седло.
Выпуклых тел, у которых все грани - одинаковые правильные многоугольники и все вершины устроены одинаково, ровно пять. Шестого нет и не будет. А дальше - срезание углов: каждое ребро отдаёт понемногу с обоих концов, угловые грани растут, старые сжимаются. При t = 1/3 из икосаэдра получается футбольный мяч - двенадцать пятиугольников и двадцать шестиугольников; при t = 1/2 старые грани встречаются серединами рёбер. Срезание в модуле идёт само и останавливается ровно там, где новые грани выходят правильными.
4D-политопы (4D polytopes)
Тень тессеракта - куб внутри куба. Поверни тело в плоскости xw, сквозь четвёртое измерение, - и внутренний куб разбухает, проходит сквозь внешний и встаёт на его место. Это «дыхание» и есть четвёртое измерение, увиденное своими глазами. Правильных выпуклых 4-политопов ровно шесть, и все они построены из координат, а не нарисованы: 120-ячейник, например, не вбит руками - его 600 вершин суть центры 600 тетраэдров другого тела, вывернутого наизнанку. Рёбра окрашены по четвёртой координате: тёплые ближе к «4D-глазу», холодные дальше.
L-системы (L-systems)
Линденмайер записал растения строками: аксиома, несколько правил замены и черепаха, которая читает результат - «нарисуй шаг», «повернись», «запомни, где началась ветка». Переписали строку один раз - веточка; пять раз - куст. Здесь растение растёт на глазах от ствола к листьям, кривая Гильберта штрих за штрихом пронизывает куб, дракон разворачивается - а когда рисунок дорисован, строка переписывается ещё глубже, и всё растёт заново. Числа порождает сама грамматика: у кривой Коха на n-м шаге 4^n отрезков и длина (4/3)^n - это видно и это сосчитано.
Это только начало. В работе уже есть ряды Фурье - эпициклы, которые рисуют кота суммой вращающихся окружностей, - векторные поля с теоремами Гаусса и Стокса, измеренными на живом рое частиц, и множества Жюлиа, где остров рассыпается в пыль ровно в тот миг, когда убегает одна-единственная орбита. Дальше по плану - перколяция, диаграммы Вороного, спираль простых чисел, гипотеза Коллатца, задача коммивояжёра.
Если есть математика, которую вы всегда хотели увидеть глазами, а не в формулах, - напишите в комментариях, какая. Список тем открыт.
Makarov Physics Suite: https://store.steampowered.com/app/4861360/Makarov_Physics_Suite/