List of my modules...
Module: Smooth_Camera_Path
Description:
From a choppy camera path, allows a smoother animation by using a Hermite Spline interpolation1-2.

Three keyframe animation. On the left is the default camera path, in which you can observe an acceleration of the camera position when it arrives at the middle keyframe, with a sudden change in velocity and direction.
NOTES:
- Implementation based on online description 3.
- In some cases the viewpoint in between two keyframes will change significantly in the smoothed path, because the method supposes a linear interpolation of position and orientation as input, but Avizo doesn't do it that way. When manually rotating the camera around with the mouse, the camera describes an circular arc around the focal point (defined internally by camera orientation and focal distance). A camera path interpolates in the same way, using position, orientation, and focal distance to simulate some 'arcoid' trajectory. I say 'arcoid' because if the focal point changes then the trajectory is a blend of circular and linear trajectory. See the following section for an example.
Avizo camera trajectories
The following example shows two camera paths with two nearly identical keyframes, the first pointing towards the origin down from Z, the second pointing towards the origin down from Y. The only difference is the focal distance of the second keyframe. This is the code to set the camera :
# Keyframe 1
viewer setCameraPosition 0 0 1
viewer setCameraOrientation 0 0 0 0
viewer setCameraFocalDistance 1
# Keyframe 2
viewer setCameraPosition 1 0 0
viewer setCameraOrientation 0 1 0 1.57
viewer setCameraFocalDistance 10
The following figure shows two paths, one with D = 0.1, and one with D = 10.

Two camera paths with two identical keyframes, except for the focal distance of the second keyframe (left: 0.1, right:10).
Connections:
Path
[required]
The camera path, an instance of HxKeyframeCameraPath.
Ports:
Tension

Tension adjusts the lengths of the tangents of the spline at the keyframes. A value of 1 means zero length, the camera will effectively drop to 0 velocity at each keyframe. A value of -1 means double length, the camera will act as though thrown out of each keyframe and will slow down to arrive at the next.
Bias

Bias of the tangent directions. With the default 0 value, the tangent is a centered difference between previous and next keyframes. With a bias of 1, the next keyframe is ignored. A bias of -1, the previous is ignored. The idea for keyframe i is summarised in the following equation: tangent(i) = (x(i+1)-x(i))*(1-B) - (x(i)-x(i-1))*(1+B).
Continuity

Continuity of the tangent directions along the direction the camera is going. A value of 1 means that when the camera arrives at a keyframe it is in the direction of the next keyframe, and a value of -1 means it arrives opposite to the direction of the previous.
Time

Time port that should be identical to the input time port, but is a different instance, i.e. when moving this one, the input time does not change (no conflict in camera positioning). The actual computation of the camera position is performed when this port is updated.
Commands:
Additional options can be accessed when typing in the console Smooth_Camera_Path COMMAND_NAME.
verbose
Displays debug information. Retype to hide info.
References:
1 Foley, van Dam, Feiner and Hughes (1996). Computer Graphics Principles and Practice, 2nd ed., ISBN 0-201-84840-6.
2 Shoemake, Ken (1985). Animating Rotation with Quaternion Curves. In Computer Graphics, 19(3), July 1985, ACM SIGGRAPH, New York (Pages 245-254).
3 http://www.hugi.scene.org/online/coding/hugi%2012%20-%20cosplqua.htm