• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Sharing a grid-based room mode simulator (in browser FEM)

yazmi

New Member
Joined
Feb 5, 2026
Messages
4
Likes
17
I couldn’t find a good online room mode calculator for L-shaped rooms or open floor plans, so I decided to create one myself. I figured I'd share in case it's helpful to someone else down the road, as I did in another couple of spots and folks found it useful. You can try it out here.

It uses a block-based grid system. This helps you create more complex room shapes. It then runs a 2D FEM simulation within the browser (client side).

Once it runs you can inspect the resulting room modes. You can choose different subwoofers and listening area. This lets you compare output and variance across the listening area.

It handles meshing with quad elements. This is based on the maximum frequency you select. It starts with a sparse solver, calculating the first 20 modes. This generally keeps it running smoothly in the browser. However, you can switch to dense if you want to.

I also wrote up a bit about how I built it for those interested in more details.

Let me know if it breaks or if you find it useful!
 
Very useful - thanks for your efforts! I’m away from my computer right now, and it doesn’t seem to work on my iPad, but I will try it when I get the chance.

Comment: Amroc pro is an online room mode calculator that can handle non-rectangular rooms.
 
Very useful - thanks for your efforts! I’m away from my computer right now, and it doesn’t seem to work on my iPad, but I will try it when I get the chance.
Thanks for flagging. It was designed mostly for computer use, though it should technically work on iPhone & iPad. I had tried it on my phone, and responsive UI through Chrome, but I don't have an iPad on hand to reproduce the issue.

Comment: Amroc pro is an online room mode calculator that can handle non-rectangular rooms.
Nice, did not know about this, would have likely saved me some time!
 
Let me know if it breaks or if you find it useful!

This is fantastic! I'm currently using it to predict whether I should move my subwoofer and/or add a second helper subwoofer to smooth bass response across my L-shaped bar room.

1774830655110.png


Thanks a lot.

I would like to suggest an additional feature (if it's possible): add the ability to add additional listening positions and average out the responses across them. In my case, I'd rather the bass response be generally good enough at multiple listening positions than excellent at one listening position.
 
I would like to suggest an additional feature (if it's possible): add the ability to add additional listening positions and average out the responses across them. In my case, I'd rather the bass response be generally good enough at multiple listening positions than excellent at one listening position.
Nice, glad it was useful!
Assuming you are using this, you should be able to select multiple listening locations and it will average across them as well as showing the individual responses. Is that not working correctly on your end?
1774835777581.png
 
Nice, glad it was useful!
Assuming you are using this, you should be able to select multiple listening locations and it will average across them as well as showing the individual responses. Is that not working correctly on your end?

No, I didn't know about that one. Awesome, thanks for sharing!
It's looking good so far. The red line on my REW measurements screenshot below shows the pre-DSP (except for mains/sub crossover) response of L, R, sub1, and sub2 in the room and speaker locations from one LP. Your room mode estimate is pretty close, except for an issue around 135Hz. Possibly due to the model not accounting for the crossover?
1774934051547.png

1774934078513.png


I'll keep playing with it!
 
Your room mode estimate is pretty close, except for an issue around 135Hz. Possibly due to the model not accounting for the crossover?
There is a solver setting on the geometry tab, which dictates max frequency and max number of modes, and is set to 100Hz and 20 modes by default. May want to look at increasing these for your use case.
1774961897764.png
 
If someone is interested, I have a 3d multi-physics solver (FEM and BEM) with integrated shape construction, mesher etc. It is of course CPU intensive but does work well on a mac m4 for ex or on a threadripper. it scales well to hundreds of core. It is pure rust so easy to port. It does not run in the browser since it use a lot of low level primitives which are not available there. Obviously CPU requirements increase with the max frequency you want to the model to be accurate up to. A 3D room with multiple speakers with directivity taken into account and absorption takes a few hours to be computed up to 1200Hz on a M4.
 
Back
Top Bottom