In the Math, Computer Science, and Physics Department at Wartburg College, we have been developing techniques for stereoscopic visualization/virtual reality using readily available, commodity hardware and highly-accessible software. Our goal is to make this technology feasible in virtually any classroom setting. This page contains links to some materials related to the project. Comments or questions should be directed to John Zelle or Charles Figura.
We are using the Python programming language to develop our visualizations. Python is a very high-level, cross-platform scripting language, making our applications easy to program and highly portable. Most programs run unchanged on Linux and Windows, the two major platforms we use at Wartburg. They should also run on Macintosh, but have not been tested there.
This is a Python program designed for displaying paired stereo images, and it handles a variety of input and display modes. Its main use is for the display of paired left/right stereo images using our simple passive stereo display setup (see overview paper). For example, displaying a VR view of the surface of Mars is as simple as downloading a couple of images from NASA and running dimg.py twpk_l.tiff tnpk_r.tiff The program also has the capability to combine images into red-blue and red-cyan anaglyphs, create interlaced left/right images (for inexpensive shutterglasses), convert an anaglyph into separate b/w left-right pairs, and save images in "pickled" form for quick loading.
Requires: Tkinter and Python Imaging Library (PIL)
This program is similar to dimg.py, but whereas dimg resizes the images to fit the display, panner allows larger images to be panned and zoomed. It is particularly useful for panoramic landscapes. Panner is only designed for use with passive stereo display ala SVEN and does not have all of the bells and whistles found in dimg.
Requires: Tkinter and Python Imaging Library (PIL)
This is a Python package to render a subset of VRML 97 into a variety of stereo modes including side-by-side display suitable for SVEN. It was written as a student project by Luther Blake and Adam Goerdt. It is a bit rough around the edges and by no means complete, but still a very useful program for displaying VRML models. It supports most of the VRML 97 primitives, scene navigation, and texture mapping. The zip archive includes documentation files and some example VRML models (including the temple shown here).
Requires: PyOpenGL and Python Imaging Library (PIL)
VPython is a remarkable Python module (visual) that makes it very easy to create 3D models. Here is a synopsis from the VPython website:
A program can create 3D objects (such as spheres, curves, etc.) and position them in 3D space. Visual, running in a separate thread, automatically updates a 3D scene many times per second, to reflect the current positions of the objects. The programmer does not need to deal with display management, but can focus on the computational aspects of the program. The user can navigate in the 3D scene by using the mouse to zoom and rotate while the program is running.
We added a passive stereo mode to VPython for use with SVEN. This stereo mode is now part of the standard VPython distribution which can be downloaded from the VPython homepage. VPython supports a number of stereo viewing modes. Turning on stereo for SVEN requires only one or two lines of code. You can find details on the VPython stereo mode here.
Algol.py is a tool for illustrating simple two-body bound orbits, particularly for close binary star systems. Key features of the routine are the representation of Roche lobes for close systems shown either as closed surfaces or as wireframes. The user may specify all key system features, such as stellar masses, spectral and luminosity classes, periapsis separations and orbital eccentricities. It's a good thing that close binary orbits circularize quickly, as lobe calculations for eccentric orbits slow animation drastically even on fast machines. Current default parameters are set for the Algol eclipsing binary system. To be added soon: ability to save/load particlar system arrangements Requires: VPython
This is a simple python program designed for illustrating the shape of magnetic field lines near and around a planetary or stellar body. The star/planet may be animated about a rotation axis at some offset angle to the magnetic axis, ilustrating the non-coincidence of magnetic and rotation axes. As a bonus, crude Van Allen belts or pulsar emission cones may be displayed. Magnetosphere.py was designed for use with the SVEN projection system but can be used in monoscopic mode. Requires: VPython
- Paul Bourke's Stereographics Site
- This site contains a wealth of information on 3D visualization and projection.
- Reel-3D Enterprises, Inc.
- Good source for 3D supplies such as glasses and screens.
- Mars 3D
- Guide to 3D anaglyphs from the latest Mars missions, Spirit and Opportunity.
- Da-Lite Company
- Da-Lite is one company that has a number of projection screen models suitable for use in polarized passive stereo displays.