views:

748

answers:

3

I am looking for an open-source Java-based raytracing system suitable for use in modeling underwater ray-based acoustics. Such a package might be similar to the Comprehensive Acoustic System Simulation (CASS) with the Gaussian Ray Bundle (GRAB) but I would prefer an open-source, free-to-use or free-to-modify model that I can use in presentations to an open forum (e.g., JavaOne).

The best model for my needs would provide ray path modeling based on an environmental model, bathymetry (also known as ocean bottom topography) and emitter frequency spectra. Note: multipath effects (including reflection and refraction) are my primary points of interest so the best package would provide that right out of the box.

Slightly less optimal would be a standard Java-based ray-tracing package (optical or acoustic) that can handle a a varying speed through the medium. Another way of saying this would be that the index of refraction varies in a continuous fashion throughout the medium (though its first derivative might not be continuous).

+1  A: 

Would you consider a very well documented C++ raytracer?

pbrt is a physically based raytracer written in the literate style, it comes with a nice book describing the code in considerable detail. A quick search shows that it has been used for acoustic modelling for a student project.

Ian Hopkinson
Thanks but the system that I'm integrating with is written entirely in Java. If I have to, I can drop back to the C++ raytracer that I wrote years ago. I'd like to avoid making something that's available in the community already, though.
Bob Cross
A: 

Have you taken a look at the Rings project? I don't know enough about ray tracing to judge whether or not Rings is implemented in the way you need it to be for maximum usefulness. The documentation and examples seem pretty good.

shadit
That certainly is a ray tracer. I'll have to dig more to see if it's more than shiny balls in a box.... ;-)
Bob Cross
Looking at the documentation, it seems like it might be easy to add in the behavior you need that's missing. I guess it's a question of how much needs to be added versus what has already been implemented.
shadit
+1  A: 

The RaPSor project appears to be a java based ray-tracing simulator. It actually stands for Radio Propagation Simulator and was developed initially to support radio signal propagation for things like projecting dead spots in the WiFi coverage in buildings.

Reading through some of the use case paper for it shows that it does ray tracing and can be extends to support acoustic ray tracing. The blog article that tipped me off refers to the idea of figuring out the acoustic sound field for a room, but I don't see why it needs to be limited to in-air propagation.

Also, it was built using the NetBeans project.

Jay R.