A virtual environment (VE) presents a complex problem with interesting nontrivial challenges for software development. The problems increase when considering VEs that are both distributed and shared among multiple participants. The majority of existing systems supporting large-scale VEs (LSVEs) are based on monolithic architectures, making maintenance and software reuse difficult at best. These problems have begun to be addressed by recent VE systems that employ software engineering principles in their design. Although modularity is addressed, many other issues remain unsolved, such as interoperability between different systems. The Java Adaptive Dynamic Environment (JADE) is presented as an alternative to the traditional approach for developing a core infrastructure for VE systems. JADE consists of a component framework along with a lightweight cross-platform kernel that permits system evolution at runtime and enables cross-system integration.