As there's no answer yet, let me give my own thoughs here. I have no experience on 3D development and don't know if these technology would work. For some side reasons, I prefer Panda3D.
Please note that I'm still open to accept other answers.
Why Panda3D?
- It is well-documented. This is always an import factor to choose technology.
- It's in Python, which is a plus for me.
- It's general-purposed (than Quake3). Panda3D can also be used on robotics simulator etc. which would be useful for me.
Why not Quake3?
- It runs on virtual machine (QVM). I'm afraid that it's hard to record data or access external device.
- At first I thought of Quake3 because it's at least a very classical code to read, but currently I realized that Quake3 can not do anything else except FPS-like game. If it worth reading, just read it, but not have to work with it.
- It's not that flexible to transform the rendering of graphics. It's a game engine for purpose, not a general graphics processing library.
Why not OpenGL?
At this moment I think the Panda3D is bottom enough. If it's proved to be not as flexible as I need, I would turn to OpenGL then.