Eigendrum — это сайт, который превращает нарисованную форму в барабан. Натянутая по краю мембрана колеблется только в определённых формах и частотах. Они находятся из уравнения −∇²u = λu с условием u = 0 на границе. Каждое решение u — это мода, стоячая волна, а частота пропорциональна √λ. Почти ни для одной формы аналитической формулы нет, поэтому Eigendrum решает задачу численно: покрывает форму треугольной сеткой, строит матрицы жёсткости и массы конечного элемента и ищет наименьшие собственные значения Kφ = λMφ.
Точность проверяется на формах, для которых спектр известен точно: круг (нули функций Бесселя) и прямоугольник (π²(m²/a² + n²/b²)). Сайт воспроизводит оба варианта с точностью лучше десятой доли процента. Конформный метод конечных элементов минимизирует энергию на ограниченном пространстве, поэтому ответы гарантированно слегка завышены и никогда не занижены.
Удар по мембране возбуждает каждую моду пропорционально тому, насколько эта мода движется в точке удара. Попадаешь в линию, где мода стоит на месте — и она вообще не звучит. Это не запрограммировано специально: получается автоматически из проекции удара на моды. Один удар — это смесь всех мод сразу, а её состав зависит от места удара. В списке мод квадратом отмечены те, до которых ударом не дотянуться. Если нажать на строку, зазвучит одна отдельная мода — так не может сделать ни один молоточек, и это единственный способ услышать, как звучит конкретная частота формы.
Помимо обводки мышью, форму можно задать уравнением. Например, r(t) = 1 + 0.3cos(5t) даёт пятилепестковый цветок, а параметрический x(t), y(t) позволяет описать замкнутые кривые вроде нефроида или яйца. Так получаются формы, которые рукой точно не обвести: одиннадцать равных лепестков или суперэллипс между кругом и квадратом. Формулу можно менять и сразу слышать результат. Ссылка с формулой хранит саму формулу, а не закодированный контур, поэтому её можно прочитать, отредактировать в адресной строке и перепечатать. Слишком тонкие формы Eigendrum отказывается решать: они всё равно дали бы числа, но числа были бы неправильные.
В 1966 году Марк Кац спросил: можно ли услышать форму барабана? В 1992-м Кэролайн Гордон, Дэвид Уэбб и Скотт Вольперт ответили «нет», построив две разные формы с одинаковым спектром. Они есть в списке как Kac drum I и Kac drum II. Каждая собрана из одних и тех же семи треугольников, просто переставленных. Площадь, периметр и все частоты совпадают. Переключаешься между ними — контуры явно разные, а звук одинаковый.
Частотные соотношения, формы мод и высота основного тона — физика, заданная контуром. А вот скорость волны (от натяжения и плотности) в контуре не зашита. Слайдер pitch задаёт её, называя ноту, которую издал бы круг такой же площади. Каждая форма звучит выше этого эталона на свою величину. Все формы перед расчётом приводятся к одной площади, так что разница — это про форму, а не про размер: у встроенных форм это около шести полутонов, круг ниже всех. Это следствие неравенства Faber-Krahn, а не выбор автора. Скорость затухания обертонов зависит от материала и воздуха, поэтому она остаётся слайдером, а не скрытым допущением. Молоточек тоже смоделирован: его ширина настраивается, а время контакта зафиксировано на несколько миллисекунд — мгновенный удар гнал бы все моды одинаково сильно. Демпфирование — Rayleigh damping: потери растут с квадратом частоты, поэтому высокие обертоны затухают первыми и звук барабана темнеет.
Сайт живёт на eigendrum.com, туда же редиректит старое зеркало baselashraf81.github.io/eigendrum. По рекламе и партнёрству — u2679054@uel.ac.uk, по ошибкам в математике или интерфейсе лучше открыть issue в репозитории, чтобы фикс был публичным. У сайта нет сборки и бэкенда: сетка, расчёт и звук работают на твоей машине. На деплое стоят Vercel Analytics и Google Analytics, без рекламной сети и баннера согласия. Нарисованная форма хранится в адресной строке после #, браузеры не отправляют её на сервер, а аналитика настроена так, чтобы её не записывать. Шрифт — Jost от indestructible type. Автор опирался на работы Каца (1966), Гордон/Уэбба/Вольперта (1992) и Дрисколла «Eigenmodes of Isospectral Drums» (1997), откуда взяты координаты двух Kac-барабанов. Исходники, включая решатель и тесты против аналитических спектров, лежат на github.com/BaselAshraf81/eigendrum. Всё бесплатно, без аккаунта и установки. Поддержать проект можно на ko-fi.com/baselashraf.