algorithmic modeling for Rhino
not much going on around here. So maybe here's one...
I've been trying to wrap my head around it but am kind of stuck. My next step is to write my own component to do it but maybe one of you can solve this thing in native GH.
Display the wavefronts of a wave reflecting around a given floor plan. Calculate up to the 4th reflection.
My current solution works in a rectangular room but has some flaws/assumptions that prevent it from solving for an arbitrary plan. So rectangular room is the minimum.
Bonus: do it all in 3D ;)
Had a go at primary reflections, but got stuck with subsequent ones.
Not even sure of the correctness of my method. Argh my brain is teased for sure.
This is a cool problem! I went about it a brute-force, pseudo-recursive way, the benefit of which is that it can be easily extended to an arbitrary number of max reflections. (would be easy to adapt for hoopsnake as well.)
I think it is still a bit buggy, but it matches the above graphic correctly and also validates systemiq's solution up to a radius of about 8.6. I *believe* it is more or less working for arbitrary polygonal boundary conditions but I'm not sure that it's doing the right thing at concave corners.
First of all: here's my own shot at it. As I said, pretty crude and works for rectangular rooms only. The general idea is that of virtual sources emitting circular waves, just as Systemiq did. Biggest problem is containing the wave fronts to their creating "walls". This is where I got stuck thinking about how to combine the virtual sources to their respective wall after the first or second reflection. I'm not going to post those ;)
Andrew, you did a raytracing approach. Though you had me fooled with the "virtual sources" for a while :D Reflection behaviour on edges are modelled with weak, delayed extra sources at those places, so your result is just fine. Your solution works beautifully for all kinds of shapes but will loose finer details due to the limited and increasing sample interval.
Okay, here's the 3d version. Maybe one of you guys can solve the wavefront clipping a little more elegantly?