Using CAVE it is possible to automatically create natural looking camera motions in virtual environments using your own 3D application and collision checking tools. It can be used to steer the camera in a 3D environment between a given start and goal configuration, no matter what kind of 3D software is used. You just specify a start and goal configuration for the camera motion. The output is a fluent camera motion from start to goal that can be used by your application to steer the camera.

How does it avoid obstacles?
Of course, you want the camera to avoid obstacles. For this, you provide CAVE with a connection to your collision checker. This collision checker implicitly tells CAVE what the scene looks like because CAVE can now use the collision checker to avoid obstacles.

How does it create a motion
CAVE first needs to create an (internal) map of the environment, this can take a few seconds. All camera motions are then created using this map. This means the map is re-used for every motion. It can even be saved to disk. Creating the camera motion itself only takes a few tenths of a second. All you have to do is provide CAVE with the start and goal configurations of the camera. CAVE returns the amount of time the motion takes. Next you can ask CAVE the configuration of the camera at a specific time and in that way perform the motion.

How do I use CAVE?
CAVE is provided as a DLL. Just create an instance of the CAVE class, and all the CAVE procedures can be used in your own program. More information can be found in the documentation.