Eigendrum — браузерний застосунок одного розробника, Базела Ашрафа, який на льоту розв'язує рівняння коливань мембрани довільної форми методом скінченних елементів і перетворює намальований контур або записану формулу на звук ударного інструмента; допис про нього зібрав понад 100 голосів на Hacker News. Ніякого бекенду, ніякого акаунта, ніякого інсталятора — вся математика, від побудови сітки трикутників до розв'язання задачі власних значень, виконується просто в JavaScript у вкладці браузера.
Скільки зазвичай коштує запустити солвер для рівнянь у частинних похідних? Ліцензія на COMSOL Multiphysics на кілька тисяч доларів на рік, сервер із пристойним CPU, і інженер, який вміє готувати сітку та дебажити збіжність. Eigendrum показує інший шлях: та сама математика, яку викладають на третьому курсі прикладної фізики, працює безкоштовно, миттєво і в браузері звичайного телефону — і при цьому не приховує власну похибку.
Тема резонує не тому, що це «ще один AI-стартап» — це якраз протилежність. У світі, де кожен другий продукт для білдерів обіцяє непрозорого «агента, що зробить усе сам», Eigendrum — контрприклад: детермінований, перевірюваний солвер, який відкрито показує свою похибку і відмовляється рахувати те, чого не може порахувати чесно. Для тих, хто будує технічні продукти, це урок про архітектуру, довіру до чисел і те, скільки насправді можна зробити на клієнті без жодного сервера.
А ще це просто красиво: намалюй контур — почуй, як він звучить. За даними HN 100+, саме ця простота обросла резонансом — а за нею стоїть питання, яке математики ставили відкритим понад чверть століття.
Звідки взялася ідея розв'язувати рівняння барабана в браузері?
В основі Eigendrum лежить класична задача математичної фізики: мембрана, закріплена по краю — скажімо, шкіра барабана, натягнута на обід, — може коливатися лише в певних формах, модах, кожна на своїй частоті. Ці форми й частоти є розв'язками рівняння Гельмгольца −∇²u = λu усередині контуру з умовою u = 0 на межі. Це задача на власні значення: λ — власне число, u — власна функція (форма моди), а частота коливань пропорційна √λ.
Лише для двох фігур це рівняння має точний аналітичний розв'язок: кола, чиї частоти визначаються нулями функцій Бесселя, і прямокутника, для якого λ = π²(m²/a² + n²/b²). Для «майже будь-якої іншої форми» формули просто не існує. Тому єдиний спосіб дізнатися, як звучить п'ятикутна зірка чи фігура, задана довільним рівнянням, — порахувати чисельно, крок за кроком.
Питання, яке стоїть за цим інженерним рішенням, набагато старше за сам проєкт. У 1966 році математик Марк Кац сформулював його як загадку: «Чи можна почути форму барабана?» — тобто чи визначає спектр власних частот форму мембрани однозначно. Відповідь виявилась контрінтуїтивною: у 1992 році Керолайн Гордон, Девід Вебб і Скотт Волперт побудували дві різні за формою мембрани з ідентичним спектром частот — контрприклад до гіпотези Каца. Обидві фігури складені із семи однакових трикутників, по-різному зібраних; вони мають однакову площу, однаковий периметр, і кожна частота однієї збігається з відповідною частотою другої. В Eigendrum ці дві форми — вбудовані пресети «Kac drum I» і «Kac drum II»: можна перемикатися між ними і чути, що звук не змінюється, хоча контури — очевидно різні.
Як це працює під капотом?
Розв'язати −∇²u = λu аналітично для довільної форми неможливо, тож Eigendrum вдається до методу скінченних елементів (FEM) — стандартного інструменту інженерного аналізу, який зазвичай асоціюється з важким десктопним ПЗ, а не з веб-сторінкою. Контур покривається сіткою трикутників, і на цій сітці будуються дві розріджені матриці: матриця жорсткості K (з інтегралів добутків градієнтів базисних функцій) і матриця мас M (з інтегралів добутків самих функцій). Рівняння перетворюється на узагальнену задачу власних значень Kφ = λMφ, яку розв'язують чисельно — ітераційними методами на кшталт Ланцоша, які ефективно знаходять кілька найменших власних значень великої розрідженої матриці, не обчислюючи весь спектр одразу.
Найцікавіше — як застосунок доводить, що не бреше. Коректно побудований (conforming) скінченноелементний метод мінімізує частку Релея над обмеженим підпростором кусково-лінійних функцій, а це, за варіаційним мінімаксним принципом Куранта–Фішера, гарантує: знайдені власні значення завжди трохи завищені порівняно зі справжніми і ніколи не занижені. Це не деталь для гіків — це означає, що похибка методу має передбачуваний напрямок, а не є випадковим шумом. Автор перевіряє це на кожній зміні коду: розв'язок для кола звіряється з нулями функцій Бесселя, розв'язок для прямокутника — з формулою π²(m²/a²+n²/b²), і відхилення тримається в межах десятої частки відсотка.
Де вдарив молоточок, там і суміш мод
Форма визначає частоти, але не те, які з них ви почуєте. Удар по мембрані збуджує кожну моду пропорційно до того, наскільки сильно ця мода рухається саме в точці удару, — це проєкція «молоточка» на кожну власну функцію. Влучити в лінію, де мода стоїть нерухомо (вузлову лінію), — і ця мода взагалі не прозвучить, хоч би якою сильною була сила удару. У результаті кожен реальний удар — це не одна нота, а суміш усіх мод одразу, зважена точкою контакту; Eigendrum дає змогу або зіграти цю природну суміш, або натиснути на конкретну моду в списку й почути її ізольовано — те, чого жоден фізичний молоточок зробити не може.
Що фізика диктує, а що — вибір розробника
Автор чітко розділяє в застосунку, де закінчується фізика і де починається інженерне рішення. Співвідношення частот між модами, форма самих мод і те, наскільки основний тон однієї фігури вищий за основний тон іншої за однакової площі, — це наслідок геометрії, тут нічого підкрутити не можна. А от швидкість поширення хвилі в мембрані (натяг і густина матеріалу) рівнянням не задана — це вже вибір: слайдер висоти тону просто називає ноту, яку взяло б коло такої самої площі, а решта фігур звучать вище чи нижче цього орієнтира рівно настільки, наскільки диктує їхня форма — приблизно на шість півтонів у межах вбудованого набору фігур. Те, що коло за інших рівних умов звучить найнижче, — не довільний факт, а наслідок нерівності Фабера–Крана: серед усіх фігур однакової площі саме коло має найнижчу основну частоту. Загасання, навпаки, залежить від матеріалу й повітря, тому змодельоване через демпфування Релея, де втрати ростуть з квадратом частоти, — тому високі обертони затухають першими, і звук барабана природно «темніє» з часом.
Форму можна не лише намалювати мишею, а й задати рівнянням: полярна крива r(t) — наприклад, 1 + 0.3cos(5t) дає квітку з п'ятьма пелюстками — або параметрична пара x(t), y(t) для замкнених кривих, яких полярне рівняння в принципі не опише, як нефроїда чи форма яйця. Це не просто зручність введення, а доступ до фігур, які рука не намалює точно: одинадцять рівних пелюсток, суперовал точно на півдорозі між колом і квадратом. Сама формула, а не растрове зображення контуру, зберігається в адресному рядку після символу #, тому посилання можна прочитати, відредагувати вручну і — оскільки браузери ніколи не відправляють частину URL після # на сервер — воно ніде не логується.
Чим Eigendrum відрізняється від інших інструментів фізичного моделювання звуку?
Пряму конкуренцію Eigendrum шукати важко, бо він сидить на перетині трьох ніш, кожна з яких зазвичай живе окремо.
Перша ніша — важкий інженерний софт для розв'язання рівнянь у частинних похідних: COMSOL Multiphysics, ANSYS, відкритий FEniCS. Це потужні універсальні пакети, здатні порахувати що завгодно — від теплопровідності до електромагнетизму, — але вони коштують тисячі доларів ліцензії на рік (або вимагають серйозного налаштування середовища для відкритих альтернатив), працюють на десктопі чи сервері, і жоден з них із коробки не грає звук моди мембрани — сонифікація результату лишається на розсуд інженера.
Друга ніша — фізичне моделювання звуку (physical modeling synthesis) у музичному софті: паризький IRCAM з бібліотекою Modalys або комерційні синтезатори на кшталт Chromaphone від Applied Acoustics Systems. Ці інструменти теж рахують моди резонаторів і синтезують звук на їхній основі, але зазвичай працюють із наперед прорахованою або параметризованою модальною базою, а не розв'язують живу задачу на власні значення для форми, яку користувач щойно намалював у браузері. Це десктопні плагіни для звукорежисерів, а не безкоштовна веб-сторінка для будь-кого.
Третя ніша — жанр «explorable explanations», інтерактивних математичних пояснень у стилі distill.pub чи проєктів Nicky Case: там теж поєднують візуалізацію з інтерактивністю, щоб показати математику наочно. Але більшість таких проєктів або спрощують фізику до ілюстрації без реального розв'язання рівнянь, або обмежуються заздалегідь порахованими сценами. Eigendrum рахує по-справжньому, на льоту, для будь-якого контуру, який ви введете, — і при цьому тестує сам себе на кожен реліз проти аналітичних розв'язків, чого пояснювальні візуалізації зазвичай не роблять узагалі.
За суттю це ставить Eigendrum ближче до Chrome Music Lab від Google, ніж до COMSOL: безкоштовний, ігровий, без реєстрації. Але Chrome Music Lab не розв'язує диференціальних рівнянь — його інструменти працюють з готовими алгоритмами синтезу, а не з чисельним розв'язанням задачі на власні значення для довільної геометрії. За даними HN 100+, саме поєднання суворо перевіреної математики з нульовим порогом входу і спричинило органічне поширення проєкту.
Що це дає тим, хто зараз будує технічні продукти?
За архітектурою Eigendrum ховаються щонайменше три патерни, корисні далеко за межами музичних іграшок.
Перший — освітні інструменти без бекенду. Курс з математичної фізики чи механіки суцільних середовищ традиційно ілюструють статичними картинками мод із підручника. Eigendrum показує інший підхід: стан застосунку — форма мембрани — живе цілком в адресному рядку після #, тому будь-який приклад, «ось коло», «ось форма Каца», — це просто посилання, яке можна вставити в лекцію чи форум без бази даних, без акаунтів студентів і без серверних витрат на кожен перегляд. Для тих, хто будує EdTech-продукти чи внутрішню документацію з інтерактивними прикладами, це готовий шаблон: кодуйте стан у фрагмент URL, а не в серверну сесію.
Другий — генеративний саунд-дизайн. Простір «форм мембрани» — це, по суті, новий параметр для процедурної перкусії: замість семплів чи готових пресетів синтезатора звукодизайнер отримує безперервний континуум тембрів, керований геометрією. Змінюючи один коефіцієнт у параметричній формулі, наприклад амплітуду пелюстки в 1 + 0.3cos(5t), можна плавно морфити звук від чистого тону кола до різкого «бляшаного» тембру зірчастої форми. Для команд, що будують веб-аудіо інструменти чи плагіни, це приклад того, як фізично обґрунтована модель, а не довільна крива огинаючої, дає інтуїтивно зрозумілий і водночас невичерпний простір звучань.
Третій — чисельні обчислення на клієнті як архітектурний вибір. Eigendrum доводить, що розріджену задачу на власні значення розміром у кілька тисяч ступенів свободи можна розв'язати в JavaScript у вкладці браузера за прийнятний час — без WebGPU, без серверного інференсу, без черги завдань. Для будівельників, які звикли автоматично тягнути важкі обчислення на бекенд «про всяк випадок», це нагадування рахувати вартість: якщо задача поміщається в пам'ять і час одного кадру браузера, клієнтське рахування економить інфраструктуру, знижує затримку до нуля і, як бонус, дає ту саму приватність, що й в Eigendrum, — дані користувача (тут — форма мембрани) ніколи не залишають його пристрій.
Що може піти не так із таким підходом?
Найбільша вразливість Eigendrum — та сама, що й у будь-якого чисельного солвера: якість відповіді впритул залежить від якості сітки, а не всі контури можна чесно покрити трикутниками. Автор прямо визнає це в документації: форми, «занадто тонкі, щоб їх можна було чесно тріангулювати», застосунок відмовляється рахувати, а не видає числа, яким не варто довіряти. Це правильне інженерне рішення — краще явна відмова, ніж мовчазна похибка, — але воно ж означає, що клас фігур, який можна дослідити, вужчий за клас фігур, який можна намалювати. Гострі кути, самоперетини, вироджені ділянки контуру — типові пастки для будь-якого алгоритму тріангуляції, і жодна перевірка проти кола й прямокутника цього не покриває, бо ці дві фігури — найгладші з можливих.
Другий ризик — продуктивність на слабких пристроях. Розв'язання задачі на власні значення для дрібної сітки — операція, чия вартість швидко зростає з розміром матриці, навіть якщо ітеративні методи на розріджених матрицях працюють суттєво швидше на практиці, ніж у гіршому теоретичному випадку, — і на старому телефоні чи в браузері з обмеженою квотою на JavaScript-потік це може відчутно «підвісити» вкладку. Для інструмента, що позиціонує себе як миттєвий і безкоштовний для будь-кого, деградація досвіду на слабкому залізі — це реальний, хоч і не фатальний, компроміс.
Третій момент — радше концептуальне застереження, ніж баг: Eigendrum моделює ідеалізовану лінійну мембрану, закріплену по краю, а не реальну шкіру барабана. У житті на звук впливають нелінійні ефекти при сильному ударі, властивості матеріалу мембрани, зв'язок з повітряним об'ємом під нею і резонанс корпуса інструмента — жодного з цього рівняння −∇²u = λu не враховує. Це не применшує цінність проєкту як інструмента для розуміння спектральної геометрії, але означає, що звук, який ви чуєте, — це «фізично чесна» модель ідеалізованої мембрани, а не цифровий двійник конкретного реального барабана.
Нарешті, варто відзначити тонку напругу в самій моделі стійкості проєкту: сайт відкрито каже, що монетизується через Google AdSense та аналітику (Vercel Analytics, Google Analytics), а водночас підкреслює приватність — стан застосунку ніколи не йде на сервер. Це не суперечність: рекламу можна показувати, не логуючи форму мембрани користувача. Але для проєкту, що живе на ентузіазмі одного розробника з університетською поштою, питання довгострокової стійкості лишається відкритим — чи вистачить доходу з реклами й пожертв на Ko-fi, щоб хостинг і домен трималися роками, а не місяцями.
Висновок AiiN
Eigendrum вартий уваги не тому, що він про штучний інтелект, — він якраз про його відсутність там, де вона не потрібна. Це нагадування, що детермінований, перевірюваний чисельний метод із відкритим кодом і тестами проти аналітичних розв'язків досі перемагає непрозорий інференс моделі там, де відповідь можна порахувати точно. У світі, де дедалі більше продуктів ховають обчислення за «магічною коробкою», проєкт, який публічно звіряє свою похибку з нулями функцій Бесселя, — маленький, але виразний контрприклад.
Наш прогноз на найближчі 6–12 місяців: сам Eigendrum, найімовірніше, залишиться нішевим, але живучим — такі проєкти рідко «вибухають» вдруге, зате осідають довгостроково в закладках викладачів фізики, звукодизайнерів і любителів математики, а трафік з Hacker News поступово конвертується в стабільний, хоч і скромний, потік через пошук і згадки в освітніх матеріалах. Реалістичніший ризик — не забуття, а застій: без активного розвитку, наприклад розширення на тривимірні тіла чи пластини Хладні або на експорт звуку, проєкт ризикує лишитися разовою демонстрацією, а не платформою для подальших ідей. Цікавіше інше: сама архітектура — стан у фрагменті URL, розрахунок повністю на клієнті, публічні тести проти закритих формул — це патерн, який варто взяти на озброєння будівельникам зовсім інших інструментів, від EdTech-віджетів до легких браузерних симуляторів. Якщо за рік ми побачимо ще два-три проєкти, що повторюють цей рецепт «чесний солвер плюс нуль інфраструктури», Eigendrum варто буде записати їм у першоджерела.