With a little help from the wonderful Matrix and Quaternion FAQ I finished the math library for the Paramatrix server. It is now possible to rotate all objects using Quaternions.
Yesterday I thought a little about animating objects directly in the 3D server. Animating using the 3D client/server network interface is possible, but probably too slow. I need to create some kind of an animation scripting language to be specified in Metatype, for which a specific computer language needs be designed. That language should implement time-based sequential and parallel statements, like “move object a from b to c in 500 milliseconds and then rotate it by 50 degrees in 300 milliseconds”. A view might then query the object’s state at a descrete time and the language interpreter will then try to apply the appropriate statements to compute the interpolated object translation and orientation.
For the readers not knowing, Metatype is a data-type definition language and a C++ code generator. Metatype may be used for the specification and implementation complex data protocols. Compared to other data definition languages, Metatype has one speciality: It supports the declaration and generation of discriminated unions. Update: included example for constructing unions.