Usability of Panda3d for non-game application?

I want to make a 3d audio spectrum analyzer. The idea is that the end user will be able to see a bar graph style spectrum as well as a 3d model of the bar graph, but with different slices over time. I believe this would mean a simple heightmap and camera scene, with the heightmap being updated every frame.

My biggest issue with Panda is that I am fairly certain the event manager will be problematic. I will be running lots of math, and the analyzer may run slightly slower than real time. I think launching a new thread to run the ‘game’ and GUI and having the manager read from a queue would circumvent this.

Still working this out, but does anyone know whether I could do this with Panda3d?

It’s not clear to me where the information for updating the visuals is coming from, but either way I can tell you that in some experiments I’ve done many years back Panda3D is pretty good for realtime network conversations as well as realtime updates of the information on-screen.
I can only suggest building a prototype and see if you run into any issues.

I am not sure why you think the event manager will be a problem. Panda3D does not impose a requirement for you to use events, or tasks, or any mechanism for messaging or workload scheduling in particular. Panda3D will work just fine if you run your code in a thread, assuming you set up the usual inter-thread communication safeguards (like locks and such). I do seem to recall that Panda prefers to have its main loop on the main thread, though.

Some parts of the Panda API will work better with threads than others, but I don’t see anything that would hinder working with heightmaps from a thread (though that depends on the precise mechanism by which you render the heightmap, of course).