تصور کنید یک طرح ساده روی کاغذ را بردارید و آن را به یک ساز موسیقی واقعی تبدیل کنید. این دقیقاً همان چیزی است که Eigendrum در ۱۴ اوت ۲۰۲۶ عرضه کرد تا کاربران بتوانند هر شکل بستهای را ترسیم کرده و لرزشهای فیزیکی آن را به صورت یک طبل بشنوند. این ابزار با حل عددی فیزیک ارتعاشات، هر خطی که توسط کاربر رسم شود را فوراً به یک ساز ضربی تبدیل میکند.
بسیاری از ما طبلها را استوانههای سادهای میبینیم، اما صدای لبههای یک طبل کاملاً به مرزهای آن وابسته است. در دنیای فیزیک، یک لبه محکمشده (clamped rim) تعیین میکند که سطح چگونه بلرزد و فرکانسهای خاصی ایجاد کند که به آنها «مودها» (modes) میگویند. از نظر ریاضی، اینها پاسخهای معادله $-\nabla^2u = \lambda u$ در داخل شکل هستند، به طوری که در لبهها $u = 0$ باشد. هر پاسخ $u$ یک موج ایستاده است و هر $\lambda$ فرکانسی متناسب با $\sqrt{\lambda}$ ایجاد میکند.
همانطور که در تحلیلهای قبلی ما دربارهی مدلسازیهای فیزیکی در محیط وب اشاره کردیم، تبدیل ریاضیات به تجربه بصری و شنیداری، درک مفاهیم انتزاعی را سادهتر میکند. در حالی که برای اشکال سادهای مانند دایره فرمولهای مشخصی وجود دارد، اما برای اکثر هندسههای پیچیده، هیچ معادله شناختهشدهای برای صدای آنها وجود ندارد. این یک «مسئله مقدار ویژه» (eigenvalue problem) است که معمولاً فاقد فرمول بسته است. به همین دلیل Eigendrum از روش المان محدود (Finite Element Method) استفاده میکند.
این ابزار شکل سفارشی کاربر را با شبکهای از مثلثها میپوشاند و ماتریسهای سختی و جرم المان محدود را میسازد تا کوچکترین مقادیر ویژه معادله $K\phi = \lambda M\phi$ را بیابد. این رویکرد عددی اجازه میدهد فیزیک یک غشای لرزان بدون نیاز به فرمولهای پیشفرض شبیهسازی شود.
مشخصات فنی و دقت محاسباتی
بر اساس مستندات فنی در eigendrum.com، حلکننده (solver) این سامانه برای اطمینان از صحت اعداد، با هر تغییر در کد، در برابر طیفهای ریاضی شناختهشده تست میشود تا قابل اعتماد بودن نتایج تضمین گردد:
- دقت دایره: بازتولید صفرهای توابع بسل (Bessel functions) با خطای کمتر از ۰.۱٪.
- دقت مستطیل: تطابق با فرمولهای $\pi^2(m^2/a^2 + n^2/b^2)$ با خطای کمتر از ۰.۱٪.
- کمینهسازی انرژی: به دلیل استفاده از روش المان محدود همگرا که انرژی را در یک فضای محدود کمینه میکند، پاسخهای حلکننده تضمین شده است که تخمینهای اندکی بالاتر از مقدار واقعی باشند و هرگز کمتر از آن نباشند.
کاربران میتوانند به دو روش با صدا تعامل کنند. ضربه زدن با یک چکش مجازی، چندین مود لرزشی را بر اساس محل ضربه فعال میکند. ضربه زدن به یک نقطه، هر مود را متناسب با میزان جابهجایی آن مود در آن نقطه تحریک میکند؛ اگر چکش روی خطی ضربه بزند که در آن مود لرزشی ساکن است (node line)، آن مود اصلاً تحریک نمیشود. این یک قانون برنامهنویسی شده نیست، بلکه نتیجه مستقیم تصویر کردن (projecting) ضربه چکش بر روی مودها است.
در حالی که هر ضربه همیشه ترکیبی از تمام مودها به صورت همزمان است، کلیک روی یک ردیف خاص، تنها یک فرکانس واحد را به تنهایی پخش میکند. این کاری است که هیچ چکش فیزیکی قادر به انجام آن نیست و تنها راه شنیدن صدای خالص یک فرکانس خاص از یک شکل هندسی است.
تولید اشکال ریاضی
این پلتفرم علاوه بر ترسیم دستی، از معادلات ریاضی نیز پشتیبانی میکند. کاربران میتوانند مختصات قطبی وارد کنند، مانند $1 + 0.3\cos(5t)$ برای ایجاد یک گل پنجبرگ، یا از جفتهای پارامتریک $x(t), y(t)$ برای منحنیهای پیچیده مانند نفروئیدها (nephroids) یا اشکال تخممرغی استفاده کنند. این قابلیت اجازه میدهد اشکالی با دقت ریاضی کامل ساخته شوند، مانند سوپر-بیضیها (superellipses) که چیزی بین دایره و مربع هستند و دست انسان قادر به ترسیم دقیق آنها نیست.
این اشکال نوشتهشده به صورت متن در نوار آدرس مرورگر قرار میگیرند که ویرایش، بازنویسی و اشتراکگذاری آنها را بسیار ساده میکند. برای حفظ دقت، سامانه اشکالی را که بیش از حد نازک باشند رد میکند، زیرا شبکهبندی (mesh) یک شکل بسیار باریک منجر به بازگشت اعداد نادرست میشود.
پارادوکس «طبل کک»
این ابزار به یک پرسش مشهور ریاضی از سال ۱۹۶۶ پاسخ میدهد: «آیا میتوان شکل یک طبل را از روی صدای آن شنید؟». مارک کک (Mark Kac) این مسئله را مطرح کرد و در سال ۱۹۹۲، پژوهشگرانی به نامهای کارولین گوردون، دیوید وب و اسکات ولپرت ثابت کردند که پاسخ «خیر» است.
Eigendrum دو شکل خاص به نامهای Kac drum I و II را با استفاده از مختصات دریسکول (۱۹۹۷) ارائه میدهد. این دو هندسه متفاوت از هفت مثلث یکسان ساخته شدهاند که فقط ترتیب چیدمان آنها تغییر کرده است. با وجود تفاوت در خطوط بیرونی، آنها مساحت و محیط یکسانی دارند و طیف فرکانسی کاملاً مشابهی را به اشتراک میگذارند. وقتی بین این دو جابهجا میشوید، ظاهر آنها آشکارا متفاوت است اما صدا تغییر نمیکند.
انتخابهای مدلسازی
برای اینکه کاربر اثر «شکل» را بشنود و نه اثر «اندازه»، ابزار تمام اشکال را قبل از حل معادله به یک مساحت یکسان مقیاس میکند. سایر ویژگیهای فیزیکی از طریق لغزندهها کنترل میشوند:
- گام صوتی (Pitch): گام مطلق توسط لغزندههای اندازه و کشش (tension) کنترل میشود.
- طنین (Timbre): میرایی صدا به صورت «میرایی رایلی» (Rayleigh damping) مدل شده است، به طوری که تلفات انرژی با مجذور فرکانس افزایش مییابد. در نتیجه، اورتونهای بالا سریعتر محو میشوند و باعث میشود صدا با گذشت زمان «تاریکتر» شود.
- چکش: کاربران میتوانند عرض چکش را تغییر دهند. زمان تماس روی چند میلیثانیه ثابت شده است، زیرا یک ضربه لحظهای (instantaneous) باعث تحریک تمام مودها با شدت یکسان میشد.
زیرساخت و حریم خصوصی
این پروژه کاملاً در سمت کاربر (Client-side) اجرا میشود. تولید شبکه، حل عددی و سنتز صدا روی دستگاه کاربر رخ میدهد و هیچ بکاِندی برای اپلیکیشن وجود ندارد. سایت در eigendrum.com میزبانی میشود و یک نسخه آینه در baselashraf81.github.io/eigendrum در دسترس است.
حریم خصوصی با ذخیره شکل ترسیم شده در نوار آدرس بعد از علامت # حفظ میشود، زیرا مرورگرها این بخش را به سرورها ارسال نمیکنند. سایت برای رایگان ماندن از Vercel Analytics، Google Analytics و Google AdSense استفاده میکند. کد منبع و تستهای پروژه در github.com/BaselAshraf81/eigendrum در دسترس است.
گام بعدی شما
- با وارد کردن معادلات پارامتریک در نوار آدرس، سعی کنید اشکالی بسازید که صدای متقارن داشته باشند.
- دو شکل متفاوت با مساحت یکسان را ترسیم کنید تا ببینید آیا تفاوت صوتی آنها قابل تشخیص است یا خیر.
- از بخش فرکانسهای تک برای درک تفاوت بین هارمونیکهای یک دایره و یک مربع استفاده کنید.
اما بررسی اینکه چگونه این محاسبات سنگین در مرورگر بدون لگ اجرا میشوند، ما را به تحلیلهای مربوط به WebAssembly میکشاند.




گفتگو