While hardware issues are important, it is ultimately the software that will determine the success of virtual environment applications. One important new area of virtual environment software research is in 3D interaction: how should such applications behave interactively and what software architectures should they use? Since user input is relatively low-bandwidth, future solutions to these problems will have enormous processing power to draw upon. Recently, several developments have emerged in various fields which hold great promise for advancing 3D interaction research. Examples are: object-oriented frameworks, incremental hierarchical constraint solvers, automatic recognition of hand gestures, inverse kinematics algorithms, and physically-based models of rigid or deformable objects. Because of the complexity of developing 3D interaction software, reusable software libraries are clearly needed. While some virtual environment software libraries are currently available, there are no higher-level toolkits available which incorporate these newer ideas, are publicly available and written in a standar d object-oriented language. This research project will investigate what form of software architecture a modern, high-level 3D interaction toolkit should take, build an implementation of one in C++, and make a documented version publicly available for researchers and developers of virtual environment applications. Such a high-level software framework would serve as a catalyst for researchers developing highly interactive virtual environments in the sciences, medicine, engineering and industry.