Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums.

How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies.

Repo and tests: https://github.com/BaselAshraf81/eigendrum

Happy to answer any questions about the FEM solver or Web Audio setup!

https://eigendrum.com/#p=circle

“Everything’s a Drum!”

https://eigendrum.com/#s=__Ap66fz1em9-NXp7_6a6-0AJu1AAiTv6gK...

So in Dutch one expression for "that makes no sense" is "dat slaat nergens op", which literally translates to "that doesn't hit (slap, beat) anything".

A ruder variation of that is "dat slaat als een … op een drumstel", or "that hits like a … on a drum set".

For some reason I felt like sharing this trivia.

I never heard “op een drumstel”, always “op een varken”. So it would be “Dat slaat als een tang op een varken.” Or “That hits like pliers on a pig.”

"Als een tang op een varken" is the common one for me as well. Runner up: "Als een lul op een stadsbus" (it makes as much sense as a dick against a city bus)

Perhaps the "hits like an x on a y" family is larger than any of us thought?

Could be a regional thing. I've heard the pliers-on-a-pig version too, might be more common.

Aunty Donna were so wise.

Now try to draw a donut.

This is brilliant! I wish I had seen this a few years back!

Q: Generating higher quality sounds with a specified duration (e.g. within a 300ms margin) -- is it possible with your approach, is it hard, how would you go about that?

I'm asking because a few years back I had an idea for a breathwork/meditation app that would allow you to connect / control the breath duration using a gong sound. Example pattern: 4s in, 4s wait, 8-10s out. Next: use a feedback loop with the real user breathing pattern, slowly extend towards the goal.

Ended up with scaling it down to a "dot to stare at" + basic gong, because I realised how ridiculously chromatically complex the sound is. (my approach was to synthesise an envelope with a shape determined by time -- pity the fool who thought it was easy or even made sense!)

https://untested.sonnet.io/notes/projects-and-apps-i-built-f...

I got +100k people visiting it and still a couple dozen daily users running a 5+ min session, so I'm happy with it. But, the itch is still there, so I'd love to revisit my old nemesis so to speak :)

Also, if you want to chat about this, hit me up sonnet.io/posts/hi !

Anyone else seeing "net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH"? Happens both in Firefox mobile and another browser that's a thin wrapper around Google's Chromium Webview. I'm surprised nobody mentioned it yet if firefox and chromium both struggle with this site. Or do they use a common TLS engine on Android?

Sadly http is not supported, it forces https for what I understand (from the title) to be a little web toy

Edit: same issue on Firefox desktop on Linux. It gets the redirect from github.io and then a ciphersuite mismatch. I now guess the host got some faulty update and it's not a me issue

Hi, I was propagating DNS nameservers, sorry for the delay.

Let me know if you still face any issues.

EDIT: The DNSSEC validation error was caused by a cached TTL mismatch during the nameserver migration. I've temporarily disabled DNSSEC while it clears up and am getting it sorted out.

same for me

Website is offline.

This is so dang cool. I’m sorry that all people can do is complain!

Contemptible cookie dialog.

What, didn’t you want hundreds of companies track you while you try to get the audio work on a drum simulator?

I am sorry about that, I thought I removed the consent banner along with the ads completely this morning, then I came back here and realized Google AdSense still had the consent banner published, I forgot to disable it, it doesn't show up to me as I am not EU I guess. Should be gone now, please let me know if something else still shows up.

Sometimes you guys sound like big babies

Separate to the concerns about privacy others have, I found some ear-splitting pitch errors with making very narrow asterisk-shaped drums with a number of spokes not divisible by 2 or 3. Good thing my volume was low.

This reminds me of a tongue drum I have. Have you thought about building an iterative solver for specific scales?

It would be interesting if you could simulate and then print (or laser cut) your own instrument on demand.

This website has a list of data vendors 200 pages long, and it forces you to uncheck each one if you don't consent. I decided to close the tab rather than deal with this illegal dark pattern.

Try `1 + 0.16cos(4t) + 0.08cos(12t + pi/6) + 0.04cos(36t + pi/3) + 0.02cos(108t + pi/2)`

This is very fun to play with and design different drums. I was able to make one that had 4 connected but distinct regions giving different pitches, then within each of those regions (which look like 4 lobes of different sizes) where you tap on that region will further change the sound! Then I realized I basically just made a hand pan.

Fun concept. Absolutely carcinogenic approach to monetization.

I disabled the ads 1 hours after I seen this but I totally forgot about the consent banner, sorry for that. Hope it didn't affect your experience much.

Very cool. Number keys and QWERTYU (or clicking the rows on the right) trigger the "modes" in isolation, which are surprisingly microtonal.

Also you can draw your own drums! What! That's so cool

there's an amazing video on youtube about how metal bar/gong instruments (like gamelans) have different overtones, and regular western intervals instead of being consonant (like with vibrating strings) are dissonant - even perfect 5ths - and a totally different set of intervals are consonant (slendro and pelog tunings are a bit different for this reason).

thinking about it, each drum here would have totally different ideal scales to the others.

this is cool.

A friend told me that a Dutch university ordered a custom gamelan tuned chromatically. It was a total failure and sounds terrible. The gamelan are made one by one w the oldest member of the group making his first and everyone tuning theirs from his down in turn, IIRC.

Do you have a hint on how to find that video?

It’s “The Physics of Dissonance”: https://youtube.com/watch?v=tCsl6ZcY9ag

Thank you!

Wow, thanks for sharing.

The video shows this tool, which has a 3D harmony/dissonance explorer, which can be used as a makeshift musical insturment.

https://aatishb.com/dissonance/

Audio doesn’t seem to work in mobile safari.

It worked for me by unmuting my ringer and raising my volume. Agree UX isnt great.

I tapped twice and got nothing but sketchy popup ads suggesting I need to install a VPN. Does it work on safari mobile for anyone else?

I didn’t get any sound on an iPhone either

You need to disable mute.

Yeah, just have to make sure your phone isn’t on silent for sound effects in the browser.

Also if you use an ad blocker, which I highly recommend, you wouldn’t have seen any of the ads or other stuff most of the comments can’t seem to figure out how to avoid.

I have an adblocker. I guess it just missed.

It’s sad though that such a non-corporate site has such nasty ads though.

I am sorry for the ads, I disabled it immediately after I have seen your complaints, but I forgot about the consent banner. Hope it didn't affect your experience.

> Does it work on safari mobile for anyone else?

It does for me. But I do use an ad blocker (Wipr 2).

actually too cool. very addictive, while changing different parameters and playing.

Could something like this be used to design speakers?

I think the optimal would always be a circular speaker. But I like the way you think. It's like building a car with triangular glass wheels.

Something like this is used to design speakers (and countless other things).

I would love you to get all this in JUCE or w/ever and make a plugin.

have you seen https://differentinstruments.com/ ?

This would be quite nice as a VST/CLAP for music production!

It seems to simulate only the membrane, and not the body of the drum, so no bass drum, no snare and no hi-hats?

https://en.wikipedia.org/wiki/Hearing_the_shape_of_a_drum

https://www.jstor.org/stable/2313748

I've read hundreds of papers in my mathematics career, and they – good and bad – almost always blend into eachother and turn into a diffuse fog in my memory, where they're identified by "that good one by Johnson-something-I-think.. no the 90s one I think".

There are very few exceptions. Kac's drum paper is one. It's so nicely written!

I just entertained myself with this for 30 minutes.

I approve.

I thank.

What a great visualizer tool!

Observation: I never saw the link between Wave Equation Solvers, Finite Element Analysis (Eigenvalues, Eigenvectors, etc.) and Cymatics -- until I visited the above web page!

Related:

Cymatics: Chladni Plate - Sound, Vibration and Sand:

https://www.youtube.com/watch?v=tFAcYruShow

Cymatics:

https://en.wikipedia.org/wiki/Cymatics

Can it remain stable at a certain MHz?

The tone is kind of snippy. It refuses to play when there would be numerical artifacts ("there would be numbers, and they would be wrong") and if your drawn shape self-intesects it complaint rather than just giving a reasonable answer with a warning (minimum crossing width, separate bodies).

Overall a cool tool, but pretty annoying. I point it out not really to criticize this project, but because I see a trend in software that has a holier-than-thou sort of paternalistic tone. LLMs are obviously rife with this, but I also see interfaces from some humans that give me the vibe of a snooty Parisian waiter.

I love it. I wish I could select materials.

Selecting different materials would not change much. Call the frequencies \lambda_1, \lambda_2, \lambda_3...

You can prove that changing the material has no effect on the relative frequencies: \lambda_2 / \lambda_1, \lambda_3 / \lambda_1, etc. are completely independent of the material.

The shape is the determining factor; changing the materials (and hence the wave speed) just dilates the whole spectrum.

There's actually a "ring-out" slider and a "mallet" width slider under the drum already.

Ring out controls how fast the higher modes decay (basically stiff vs soft material), The mallet width controls how many modes a strike can even reach, since a real mallet can't drive the high frequency ones very hard.

No labeled presets like "wood" or "metal" though, just raw sliders. Would be a fun addition if someone wants to map a few physically sensible combos to buttons. PRs Welcome!

I'm not sure if I'm learning a lot. All of the shapes and click locations basically sound the same to me.

Make sure your SoundBlaster16 drivers are loading properly, because I don't think I heard two clicks that sounded the same.

Very cool, reminds me of some of Aphex Twin’s percussive elements

Thanks, ChatGPT.

Why does the submitted link redirect? Is that allowed on HN

It was hosted on github pages before buying a domain, you can directly visit eigendrum.com, sorry for the confusion!

> If you find it interesting, a star on the GitHub repo helps a lot.

I am genuinely curious, how?

Probably looks good on the resume?

That's one thing, and I would also like to be known in the dev world, with my ideas, what I build, and be famous for something I love doing.

I don't really care as much about the resume but I have to, I just graduated college.

My open source journey is starting and I want my creativity to be heard and seen.

Hope I answered your question :)

Great! I vote for a skin tension control.

should be a vst intrument

Can you do this for a didgeridoo?

amazing stuff, congrats!

This is very cool stuff, indeed!

this is pretty cool

very nice! but having the "this space for rent" , space is the thing that realy says that it's someone doing there thing, everything is cool, no worrys, here play with a drum, and you knid of know that whoever might go in that space will be truely random, and interesting to some further subset of those that jump at an internet drum thing. thanks!

what has the world come to when people beg for stars on github

Merely asking is begging?

The title alone sounds like this would be interesting, but I'll never know if it is because it has a trackers popup listing thousands of "partners" and a load of "legitimate interest" boxes ticked by default. This is Daily Mail level stuff, immediate back button for me.

I am sorry about that, I thought I removed the consent banner along with the ads completely this morning, then I came back here and realized Google AdSense still had the consent banner published, I forgot to disable it, it doesn't show up to me as I am not EU I guess. Should be gone now, please let me know if something else still shows up.

Much appreciated, and it is indeed very interesting!

Thanks for reposting this! I'm the developer (BaselAshraf81) - happy to answer questions or hear suggestions here.

If you find it interesting, a star on the GitHub repo helps a lot.

And don't forget to follow me on github, I build cool stuff!

Not a fan of the cookie dialog. Had to close the page as there was no easy way to reject the ad cookies.

Yeah, I'm no GDPR expert but it seems completely unreasonable that the "legitimate interest" numbers add upp to 2825. Even though there's probably some overlap, the biggest category is "Measure advertising performance (695 partners included)". How does this dialogue help me control who gets my data or how it will be used?

It's not even unreasonable, it's illegal under GDPR. You have to provide a reject all option (for rejecting all non-necessary cookies).

Same. I no longer tolerate this bullshit

[dead]

I wanted to try it but it talks to share my data to the 1192 partners of yours. How do you have so many partners, and what they do?

I am sorry about that, I thought I removed the consent banner along with the ads completely this morning, then I came back here and realized Google AdSense still had the consent banner published, I forgot to disable it, it doesn't show up to me as I am not EU I guess. Should be gone now, please let me know if something else still shows up.

[deleted]

Make it possible to reject all cookies in one click.

What you have now is ridiculous.

Those ads are nasty and really take away from the cool stuff you build!

[flagged]

This meme is becoming extremely tiresome. This thing is cool, which should be enough. If you don't find it cool you can just click the next thing. As someone who's spent lots of AI time I still find this impressive.

Let's see your version, since it's so easy to prompt one up.

I didn't even know that was a meme. I have vibe coded various projects too, but I find the overzealous monetization very much off-putting. This, paired with the Opus writing all over the place. Seems more like grifting than an actual interest in the topic.

https://github.com/BaselAshraf81/eigendrum/commit/733a7a08b2...

Edit: Seems the advertising is removed now.

Had no idea it had ads. Thank you ublock origin <3

You mean the shitty comment your keyboard typed?

Do you drive a friend to the airport or does your car do most of the work?

> Pitch here is a reference: the note a circle of this area would sound. Tension and density are yours, and so is fade, which is material and air. Where each shape's own fundamental lands above that reference is not yours, and neither is any overtone ratio. Both are computed.

You might want to do a human editing pass on the copy. This reads like it came right out of your Claude Code session.

[flagged]

If the author is here, do yourself a favor and rewrite the app's labels from Claudese to English.

"what the shape does not decide: Pitch is size and tension; fade is material and air. Neither is in the outline, so both are yours."

"No build step and no application backend: the mesh, the solve and the audio all run on your own machine."

Oy, "the solve".

[dead]

[dead]