VR is already evolving away from single user small-scale demonstrators, and inexorably toward sophisticated environments in which many geographically distributed users can perform a diverse range of activities. There will therefore be a pressure to make such environments increasingly general purpose and dynamic in their support of applications, paralleling perhaps the historical evolution of conventional operating systems. It is from speculations about the nature of such a future large-scale VR system that the AVIARY project has developed. AVIARY provides multiple worlds, each with its own set of laws, that may be tailored to suit particular application domains. The overall structure enables a coherent relationship between worlds to be maintained, which is important both for purposes of code reuse, and to aid users in navigating the system. A prototype implementation exists that addresses underlying implementation issues in the AVIARY model, and, in particular, distribution across heterogeneous processor networks, dynamic management of objects and message types within the system, the separation of graphics processing, and the management of spatial extent. Implementations of the prototype have been tested on a Transputer array, and a heterogeneous network of Sun and Silicon Graphics workstations. The system is currently being ported to a 2.4-Gflop KSR-1 parallel supercomputer. This paper reviews approaches to distributed, multi-application VR systems, presents pertinent elements of the AVIARY design, and describes the prototype implementation with particular attention given to the issues of distribution.