3D Local File System Navigation















By Nicu Cornea and Ju Hyun, You





1. Description

    We developed a local file system navigator where directories and files in the file-system are represented by various objects in the virtual library. The Java3D scene graph hierarchy is in fact very similar to the hierarchy of a file system. They both have a tree structure, with leaf nodes representing files in a file system and geometry nodes in a scene graph, while intermediate nodes in the tree are transformations in a scene graph and directories in a file system.
   
    In the virtual world we need to represent both the files and the directories with visible objects and allow the user to navigate the file system in an intuitive way. For this, we chose a virtual library model, with virtual rooms and virtual books. Each room in the virtual environment represents a directory in the file system. In the file system, directories can contain other subdirectories and files. In the virtual world, subdirectories are represented by doors leading to other rooms; books inside the room represent files in the current directory.
   
    Each room has a round shape. Doors are labeled with the name of the subdirectory they lead to. Books are also labeled with the name of the corresponding file. The user can navigate in the virtual environment using the 5DT Data glove. Several gestures are recognized and interpreted based on the context. For example, navigation is performed using 5 different finger configurations for going forward, backwards, turning left or right and stopping. There is an additional gesture interpreted as an attempt to grab one of the books in the room. Grabbing a book will show information about the corresponding file, such as a small sample text from text files and the image in image files (.jpg).

    Interaction with the objects in the room is performed through Java3D behaviors. They are responsible for opening the doors in the room when the user approaches them, or activating the books. The active book is the book to which the grab action applies. While developing this project we used many of the features of Java3D, such as: virtual camera control, behaviors, complex scene graphs, interaction using input devices (data glove, keyboard and mouse), texture mapping, file system interfaces, sound control and many others.




2. How to navigate

    To explore the virtual world, we use the 5DT Data Glove. Each of five gestures are interpreted as a different command to the system (see images below).


  Go Forward         Go Back         Grab the book         Turn Right           Turn Left              Stop



3. Screen Shots

 
figure1: Two rooms and the books inside the room





figure2: Books inside the room


figure3: Open the door and the room is created


figure4: New room which has the doors(sub folders) and the books(files)


figure5: The door


figure6: The selected book


figure7: Non text file is selected!


figure8: Text file is selected!!


figure9: Image file is selected!!


4. Implementation Details

  • Gestures on the 5DT Data Glove interface are recognized by using five combinations of different thresholds for the five finger angles.
  • Since it is not possible to construct all the rooms corresponding to the entire file system tree at once and still have a round shape for each room, the rooms are created dynamically as the user navigates through the virtual world. As a consequence, at any point in time, at most two rooms exist: the current room where the user is located, and the room that the user is about to enter. Luckily, the doors leading to the other subdirectories are closed so the illusion of a complete universe is maintained (unless the user decides to pass through a wall to explore "the other side"). A disadvantage of this approach is reduced system response time when the user is about to enter a room with many subdirectories or files because many objects (doors and books) need to be created on the fly.
  • Doors and books are activated by individual behaviors, activated by proximity sensors. The spacing between books and the size of the books had to be kept large to allow easy access to a specific book.
  • Collision detection for the purpose of preventing the user from passing through walls is not implemented.