Ygdrasil IDE Ygdrasil IDE
A Single-Authored Desktop and Immersive Virtual World Builder

The Ygdrasil IDE is an integrated development environment for the Ygdrasil virtual reality development language that uses the same interface on the desktop and immersively. The interface solves a significant problem with typical VR world development. Developers are usually forced to return to the desktop to make design changes because desktop features are not available or they are more tedious to execute from within the virtual environment. The Ygdrasil IDE was developed to support an active group of researchers already using Ygdrasil and was evaluated in a classroom setting and with several expert users.

Desktop Ygdrasil Interface

The desktop interface includes features common to desktop 3D modeling and CAD software such as click-and-drag manipulation of the viewpoint via zoom, rotate and pan. The application allows users to build a virtual scene by positioning, orienting and scaling imported 3D models. A node hierarchy view allows activation areas and other interactive nodes to be combined with geometry nodes within a graph representation of the scene. Behaviors are built by routing events between triggering nodes and interaction nodes in a manner similar to VRML. The resulting scene representation is stored in a human readable text file that is interpreted at runtime by Ygdrasil.

Immersive Ygdrasil Interface

When executed in a fully immersive setting, the user stands within the scene with the application window floating nearby. Interaction with the viewing window happens via image-plane selection by occluding the desired selection with a cursor attached to the virtual hand. This technique allows the familiar menuing, click-and-drag viewpoints and object manipulations to take place in a manner analogous to the desktop setup. In addition to the familiar desktop functionality, the immersive interface uses 6 degree-of-dreedom hand tracking to implement viewpoint management and object manipulations using a technique called image-plane grab.

Immersive Ygdrasil Window Icons
Windowing functions such as minimize and maximize move the window near the feet and in front of the user respectively. Additional window icons allow the user to teleport to the viewpoint within the window and manage the relationship between the window and the scene within it. Unlocking the secondary scene from the window allows window movement to change the viewpoint into it. A home button registers the secondary scene with the primary scene to make the window effectively transparent. The window can then be moved over content in the surrounding scene, locked to the window and then returned to a comfortable working position.


Download the video here (MP4 30.1MB)
Ygdrasil IDE was developed as a proof of concept application for the Withindows Framework
A series of preliminary design sketches illustrating many aspects of the 3D interaction.
A paper presented at the 3DUI Symposium at VR 2008.
This research work was part of a full dissertation.


The Ygdrasil IDE addresses several problems common to immersive applications:

Typically a separate development effort is required to create both a desktop and immersive interface. The Ygdrasil IDE is the only known application that has been created for both environments with a single development effort. This means that users have access to the full functionality of the desktop app from within the immersive application. In the past, developers of content for virtual environments have had to go back to the desktop to make design changes.
Typical immersive applications attempt to leverage physically intuitive interactions at the cost of more bending, swaying and reaching by the user. By encapsulating all operations completely within the viewing window, users can move the window to a comfortable position below their hand and work for longer periods. The result is that interactions out in front of the user can be limited to those circumstances where their increased effort is more easily justified.
Typical immersive applications, while seeking to leverage the unique nature of 6 DOF inputs, force the user to learn a completely new interface. Moreover, access to immersive technology is frequently limited not only by time and resources but also by the fatigue associated its use. Users can be exposed to and learn the Ygdrasil IDE interface on the desktop and then concentrate on aspects of the application that are unique to 3D when using the system in an immersive setting. Presenting the same interface within the immersive environment is also likely to offer some resilience to the limited resolution common to such environments.
A common attribute of immersive applications is a reliance on first person perspective to increase the sense of presence in the virtual environment. One drawback of this approach involves global search and object manipulations. Searching an environment to gain an understanding is more easily accomplished from an overview position like the one available within the alternate viewing window. In addition, object manipulations are best done along the image axis relative to the user rather than along the depth axis. Alternate viewpoints in the viewing window allow the user to easily optimize the viewpoint without the need for cumbersome travel within the environment.

Global and Viewpoint Functions
An important ingredient to using the same interface in both environments involves the separation of global and viewpoint related functions. Functions related to the viewpoint presented in the window (i.e. zoom, pan, rotate) have icons and pull down menus on the viewing window. The remaining functionality such as object properties and global functions (i.e. file open, save) are accessed via context sensitive menus. Selecting an object in the scene and right-clicking brings up a menu of node properties either within or outside the viewing window (figure at right). A menu showing global functions comes up when no scene object has been selected.
When no object has been selected a), right-clicking brings up a global menu. Outside the window, the menu appears oriented towards the user at a fixed depth beyond the hand. When an object has been selected b), right-clicking brings up a menu for that object. Menus inside the window remain fixed to the window surface.
Global and Viewpoint Functions

3D Input Techniques
Interaction schemes in 3D typically rely heavily on direct 3D manipulation of objects. However, without haptic feedback, these additional degrees of freedom often create more problems than they solve. The Ygdrasil IDE uses 2½D constrained manipulation by default to introduce constraints, appropriate viewpoints and less fatigue. When 6 DOF input is available, objects can also be manipulated with a technique called image-plane grab. The user can also choose to simultaneously manipulate window rotation and zoom with hand gestures.

3D Object Manipulation 3D View Manipulation
Image-plane grab appears as an option along with constrained position, orientation and size manipulations during immersive sessions. Six degree-of-freedon manipulation of the window viewpoint occurs when clicking and holding the lock/unlock button.

User Evaluations
The development environment was used on the desktop for a full semester at the University of Illinois at Chicago in a class that teaches the Ygdrasil language. Prior to the introduction of the interface, students had used a text editor to create Ygdrasil scenes. The significant lab portion of the class allowed debugging and modifications throughout the semester. Several users already familiar with Ygdrasil used the interface both on the desktop and immersively to develop virtual worlds (Nojd, WOMB, study). Their response to image-plane selection was very positive, but the users found our implementation of the viewing window fatiguing. We used a picture window technique that allows the user to change their view into the window by moving their head (figure at right). Users reported that after setting up a view in the window, they were forced to re-acquire their original position after looking away at other content.

Picture Window and LCD Viewer Implementation
A picture window approach to viewing windows a) allows the user to view alternate content by changing their position relative to the window. An alternate approach that we are planning to implement b) behaves more like the LCD viewfinder on a digital camera.