Makarov Math Suite
Хочу показать Makarov Math Suite - мой проект с интерактивными математическими экспериментами. Здесь можно забраться внутрь трёхмерного фрактала, посмотреть на вращение четырёхмерной фигуры, научить небольшую нейросеть распознавать цифры или собрать знакомую теорему из деревянных деталей. В проекте уже 120 модулей: фракталы, геометрия, хаос, вероятность, нейросети, алгоритмы и другие темы. Мне хотелось, чтобы у каждой идеи было действие: потянуть точку, изменить правило, испортить образ, добавить гармонику - и увидеть, к чему это приведёт. Проект уже доступен на Steam и Microsoft Store, хотя на самом деле разработка в самом разгаре и я планирую ещё много чего поменять и доработать.
На этой карте у каждого шага есть цена. Алгоритм Дейкстры ищет маршрут с наименьшей суммарной стоимостью, поэтому выгодная дорога может обходить дорогие участки стороной. Высота и цвет клеток помогают читать местность, а светящаяся линия показывает найденный путь. Так задача из теории графов превращается в маленький рельефный мир со своими правилами передвижения.
Выбираем случайную вершину треугольника, перемещаем точку на полпути к ней и оставляем след. Повторяем много раз - и постепенно проступает треугольник Серпинского. Кажется, что случайные прыжки должны дать бесформенное облако, но правило собирает из них строгий узор. Меняем вершины и условия прыжка - получаем другие фракталы.
У каждой клетки есть несколько простых правил: когда появиться, когда остаться и когда исчезнуть. Из этого возникают движущиеся фигуры, повторяющиеся узоры и целые маленькие экосистемы. В ролике — и построение рисунка строка за строкой, и двумерная «Жизнь». Особенно затягивает следить за отдельной фигурой и пытаться угадать, что переживёт следующее поколение.
Три двери, один приз и знаменитая задача Монти Холла. Если ведущий знает, где приз, и всегда открывает пустую дверь, смена выбора даёт шанс выиграть 2/3. В ролике меняется важная деталь: ведущий начинает открывать дверь наугад. Среди игр, где он случайно не открыл приз, преимущество смены исчезает - остаётся 1/2. Одна деталь в правилах полностью меняет ответ.
Три вложенных кольца позволяют управлять ориентацией платформы. Но при определённом наклоне две оси совпадают, и механизм теряет одну независимую возможность поворота. Уже при приближении к этому положению кольцам приходится резко ускоряться, хотя сама платформа движется плавно. Здесь можно увидеть, откуда берётся карданов замок и почему для описания вращений в 3D так полезны кватернионы.
В одной точке поверхности можно двигаться вверх, вниз или почти без изменения высоты - всё зависит от направления. Вращающаяся секущая плоскость превращает поверхность в обычную кривую, у которой легко рассмотреть наклон. А стрелка градиента показывает направление самого быстрого роста. Частные производные постепенно становятся вполне осязаемой геометрией.
Три алгоритма получают одинаковый набор чисел и начинают наводить порядок: вставки, быстрая сортировка и сортировка слиянием. Видно, какие элементы они сравнивают, что перемещают и какие участки уже обработали. За движением столбиков стоят счётчики реальной работы алгоритмов. Особенно интересно менять исходный порядок: привычное название «быстрая» ещё не обещает победу на любом входе.
Окружность, эллипс, парабола и гипербола получаются при пересечении конуса плоскостью. Достаточно изменить её наклон - и знакомые кривые переходят одна в другую. Золотые шары внутри - сферы Данделена: точки их касания с секущей плоскостью дают фокусы. Слева можно рассмотреть пространственную конструкцию, справа - получившуюся кривую на чертеже.
Шарики падают, ударяются о штыри и постепенно заполняют нижнюю часть доски. За отдельными отскоками интересно наблюдать, а из множества падений складывается распределение, которое видно на графике. Здесь рассчитываются столкновения, поэтому на результат влияют наклон доски, трение и упругость. Хороший повод сначала залипнуть на движение, а затем разобраться, откуда берётся форма накопившейся кучки.
Одинаковые маленькие круги на глобусе превращаются на карте в фигуры разного размера и формы. Они показывают, где именно выбранная проекция искажает поверхность Земли. Меркатор сохраняет локальные углы, равновеликие проекции - площади; перенести сферу на плоскость без искажений расстояний невозможно. Переключение проекций позволяет буквально увидеть цену каждого такого выбора.
Один карандаш ведёт рисунок, второй одновременно делает его увеличенную копию. Масштабирование задаёт геометрия соединённых рычагов: шарниры удерживают нужное соотношение между положениями карандашей. Можно рисовать прямо на листе и наблюдать, как латунный механизм повторяет движения. Очень наглядный способ познакомиться с гомотетией - преобразованием, которое увеличивает или уменьшает фигуру относительно выбранного центра.
Этот скруглённый треугольник можно поворачивать между параллельными упорами, а расстояние между ними останется прежним. Перед нами треугольник Рёло - фигура постоянной ширины. Привычная окружность тоже обладает этим свойством, но, оказывается, далеко не она одна. На таком приборе необычную геометрию удобно буквально измерить, поворачивая её под разными углами.
У обычного сгиба бумаги есть точный математический смысл. Если сложить лист так, чтобы одна точка совпала с другой, линия сгиба пройдёт посередине между ними и под прямым углом к соединяющему их отрезку. В модуле объёмный лист связан с плоским чертежом: меняешь положение точек и сразу видишь, как перестраивается сгиб. Бумага становится инструментом геометрического построения.
Катеноид, геликоид и другие минимальные поверхности напоминают натянутые мыльные плёнки. У них нулевая средняя кривизна: в каждой точке изгибы в двух главных направлениях компенсируют друг друга. Цвет показывает гауссову кривизну, а анимация позволяет исследовать связанные семейства форм. В конце ролика появляется приближённая модель периодической поверхности Шварца — уже целая система соединённых проходов.
Светящиеся траектории снова и снова обходят знакомую форму, каждый раз прокладывая немного другой путь. За этим движением стоят определённые уравнения. В хаотическом режиме крошечная разница в начальном положении со временем приводит к сильно различающимся траекториям. При этом у движения остаётся узнаваемая структура — аттрактор. Можно менять систему и наблюдать, как перестраивается этот пространственный рисунок.
Приближение к границе множества Мандельброта открывает новые завитки, ответвления и маленькие подобия знакомой формы. У такого путешествия есть вычислительная сторона: чем сильнее увеличение, тем точнее нужно различать координаты соседних пикселей. В модуле можно сравнить два режима точности и следить за оставшимся запасом. Здесь интересно исследовать и сам фрактал, и возможности его изображения на компьютере.
Несколько окружностей вращаются с разными скоростями и складывают свои движения в рисунок. В ролике этот механизм берётся за квадрат, сердце и кота. Размеры окружностей и их вращения задаются коэффициентами Фурье выбранного контура. Число гармоник определяет, сколько деталей удаётся передать: сложную линию можно буквально разобрать на простые круговые движения.
Рисуешь цифру - и небольшая нейросеть пытается её распознать. В объёмной схеме видны входные пиксели, скрытый слой и десять возможных ответов, а рядом можно следить за обучением и ошибкой. Свой рисунок особенно интересно сравнивать с учебными примерами: даже уверенный ответ сети может оказаться неверным. Такой эксперимент помогает почувствовать, чему она научилась и где начинаются её ограничения.
Тессеракт при вращении будто выворачивается, а его части проходят друг сквозь друга. На экране мы видим трёхмерную проекцию четырёхмерного объекта: её рёбра меняют видимую длину, хотя само вращение в 4D сохраняет расстояния. В ролике простая структура тессеракта сменяется гораздо более сложной фигурой. Прозрачные грани помогают рассмотреть, как устроены эти необычные соседи привычных многогранников.
Светящиеся нити изгибаются и перестраиваются, словно живые. Эта модель вдохновлена поведением слизевика: множество агентов оставляют след, считывают его поблизости и меняют направление движения. След постепенно рассеивается, а часто используемые пути поддерживаются новыми проходами. У каждого агента простые локальные правила, но вместе они создают постоянно меняющийся рисунок.
Вся эта сложная объёмная форма вырастает из многократного повторения математических операций. Выступы, складки и полости появляются прямо в процессе вычисления, а освещение помогает рассмотреть их рельеф. Фрактал можно вращать и исследовать с разных сторон: то он напоминает минерал, то коралл, то какую-то невозможную архитектуру. Изменение параметров позволяет перестраивать саму форму.