The Virtual Reality (VR) user interface style allows natural hand and body motions to manipulate virtual objects in 3D environments using one or more 3D input devices. This style is best suited to application areas where traditional two-dimensional styles fall short, such as scientific visualization, architectural visualization, and remote manipulation. Currently, the programming effort required to produce a VR application is too large, and many pitfalls must be avoided in the creation of successful VR programs. In this article we describe the Decoupled Simulation Model (DSM) for creating successful VR applications, and a software system that embodies this model. The MR Toolkit simplifies the development of VR applications by providing standard facilities required by a wide range of VR user interfaces. These facilities include support for distributed computing, head-mounted displays, room geometry management, performance monitoring, hand input devices, and sound (audio) feedback. The MR Toolkit encourages programmers to structure their applications to take advantage of the distributed computing capabilities of workstation networks, improving the application's performance. In this article, the motivations and the architecture of the toolkit are outlined; the programmer's view is described; and a simple application is briefly described.