Panda3D for a dome theater?

Greetings all,
This is my first post to this forum. I’m a 3D animator with a special interest in creating content for dome theaters. I manage the digital dome system at the Renaissance Computing Institute at UNC-Chapel Hill.

We’re very actively looking for an interactive 3D engine that will allow us to craft interactive presentations for our dome system. The engine would have to support a “dome” rendering mode–essentially a fisheye rendering effect. Our dome is also tilted at about 30 degrees, so the navigation controls would have to accommodate that offset as well.

Can Panda3D be made to support these requirements? I would appreciate any feedback or info anybody might have. I also need to learn more about content creation for Panda3D (does it import from other apps, etc), and any pointers to that info would also be very helpful. Cheers,

Eric Knisley
Renaissance Computing Institute


I am sure you can hack up a dome mode some how - i am not sure how the fish eye rendering effect should work.

Content creation is done any 3d app you like there is exporters for good number of programs and importers for good number of formats.

Out of curiosity can you play games like Half Life or X Wing in a dome theater?

This has been done with Panda in the past. It hasn’t been touched in a while, so the code may have accumulated some cruft, but see this post:


I think we can say that any sort of image warping or distortion necessary to handle nonlinear projection can be accomplished in Panda3D. However, I think the algorithms needed would be highly depending on the layout of the projectors in the dome.

I haven’t been to the forums in a while. I wrote my own fisheye in the end using dynamic cubemap onto a front culled sphere with an orthographic lens looking at it: I can post it if your still looking…


Given that he only posted once a year ago, I’m guessing he isn’t still looking. However, I would love to see your technique for doing this.

For the record:
There are other such classes in “panda/src/distort”.

In the risk of being cheeky, I was wondering if anyone has a working example that utilises the FisheyeLens, to share.

Try this: