Final Project: An Infinite Townscape

Devin R. Fensterheim
5 May 2005
Virtual Reality Laboratory
View project (Hardware enabled)
View project (Hardware disabled)

Overview

In this project, Virtual Reality Modeling Language is used to model a small town. VRML language capabilities, such as scripting, prototyping, and texturing were leveraged to create the model.
However, it was only the secondary objective of this project to simulate a virtual cityscape, although this is the most obvious result. Visualizations of this nature have applications within simulations (for instance, virtual driving tests), entertainment, etc. This basic world contains a basic, modularized framework for additional complexity. Effort was placed primarily into building this framework, and implementing smaller proofs of concept for future expansion.

Screen Shots

Figure 1: Overview The town consists of nine 50m by 50m regions. Each region has imposed over it a Proximity Sensor that detects when the user is positioned over it. The regions, which are tilable, are then rearranged to place the user in the center region, ad infinitum. This gives the illusion of an infinite terrain.

Figure 2: Ground View A ground view of the city shows several features, amongst them an animated stoplight and dynamic street signs. The street signs increment as the user navigates the city.

Figure 3: Night Mode In night mode, the street lights are illuminated, as are random windows of houses.

Directions

General Instructions

Walk mode is recommended, regardless of whether hardware is enabled. To allow freedom of exploration, there are no touch sensors, although the world is optimized for road travel. (The houses have no developed interior, for instance, primarily since there are an infinite number of virtual houses that would need to be furnished.) The simulation provides for lighting, and the headlight should be disabled by default.
It is recommended OpenGL or DirectX hardware rendering be used, if supported by hardware, rather than software rendering. Software rendering tends to distort the textures and cause excessive flicker.

Hardware Navigation

In hardware mode, navigation is provided automatically. Use the following movements to control motion:

Night mode

To toggle night mode using the glove, raise the little finger. In software mode, click the small red sphere in the top-right corner of the simulation.

Features

Some features of this city include:

Acknowledgements

In closing, I wish to particularly acknowledge the following individuals:
  1. Antonio Ramires Fernandes, author of the VRML Interactive Tutorial. The examples on this site were instrumental in getting through the nuances of VRML and building this project.
  2. Rick Carey and Gavin Bell, authors of the Annotated VRML97 Reference Manual. The node reference on this site was invaluable, particularly for scripting.
  3. I had originally intended to create a hardware counterpart for the simulation using a rotary encoder. Unfortunately, a cascade of difficulties in getting past the Java security model made doing so too complex given the time restraints. However, I would like to acknowledge Douglas Beattie Jr. for creating the Jnpout JNI library for parallel-port interfacing, which made adding this functionality almost possible.
  4. Finally, and most importantly, I wish to acknowledge Manjula Kuttuva for her guidance and assistance throughout the semester and on this project.