In this paper we describe the design and implementation of a multi-purpose object-oriented authoring system for interactive virtual environments and presentations, semi-interactive 3D visualization, and non-interactive photo-realistic animations. Its main design criteria are reusability and flexibility, especially in the support of a wide range of input and output formats. Input data may be provided from any type of event-oriented simulation system as well as from an interactive scene modeling tool. The primary output system is a Java-based VRML browser, but a concept of output driver channels allows the use of other rendering systems, such as off-line renderers for the production of photo-realistic video streams. Objects used in the system consist of both geometry and behavior, where the latter is defined in C++ and/or Java. Objects are provided in different abstraction levels and are stored in an animation element library for reuse in different application scenarios