VPython models in introductory geoscience classes
From GeoMod
Contents |
Introduction
Introducing VPython
The VPython module of the Python programming language provides an easily learned, object-oriented programming language that produces interactive, 3d visualizations. It was originally designed as an aid for undergraduate physics classes (Chabay and Sherwood, 2006; Scherer et al., 2000]]); the physics textbooks "Matter and Interaction" (Chabay and Sherwood, 2007a,b) are designed around VPython programs that demonstrate mechanics, thermal physics, electricity and magnetism. However, the relative easy creation of interactive, 3d models in a patent unencumbered environment offers substantial potential for the application of this technology to geoscience education. The models described in this paper, as well as modules (classes) developed to facilitate the creation of distributed numerical models are available on the website http://lurbano-5.memphis.edu/GeoMod/.
The Python language itself is being increasingly used by Earth Scientists, particularly those who create script extensions for ArcGIS. It is also a high-level, cross-platform (Windows, Linux and Mac) language with significant numerical capabilities into which low-level, computational efficient code can be incorporated. Without these low-level additions, Python is somewhat limited in its application to computationally intensive research problems, however, this does not pose a significant problem for educational applications. Python and VPython are currently being used as the core language in a class that introduces numerical methods to Earth Science graduate students (online syllabus at: http://lurbano-5.memphis.edu/GeoMod/index.php/Introduction_to_Modeling). This paper discusses the use of VPython models as demonstration aids in introductory, undergraduate Earth Science classes.
VPython models in the context of good diagrams/animations
Tversky et al., (2002) describe two principles for good diagrams/animations, congruity and apprehension, and go on to explain why animations frequently violate them both. The Congruence Principle refers to the need for the structure and content of the animation to match the structure and content of what it represents. As a 3D visualization environment which facilitates transient motion, VPython models can be well suited for the illustration of dynamic, 3D behavior. Tversky et al., (2002) however found that even well congruent animations would often fail as good illustrations because they tended to violate the Apprehension principle, which refers to the need for the structure and content of the visualization to be readily perceived and comprehended; animations are frequently too complex and too fast for easy comprehension.
The requirement that VPython be an easy programming language for the creation of 3D objects has necessarily limited the complexity of the 3D rendering, however, the most significant advantage of the language is its ability to allow interactivity. Tversky et al., (2002) found that animations that succeed tend to use interactivity to overcome the congruity and apprehension issues. They suggest that users' ability to control the view (starting, stopping, replaying, zooming and changing the speed) allows for selective focusing, reviewing and reanalysis of the information in the model. Zooming and perspective changes are incorporated into all VPython renderings, however, well designed VPython models can also permit direct interaction with the simulation, and thus the ability to influence events.
Model taxonomy
We suggest that by providing 3D dynamism, enforcing simplicity, and in particular, offering interactivity, VPython models are well suited to the creation of good diagrams/animations. Based on our observations and experience using a variety of VPython models, we propose a taxonomy for describing models of different levels of interactivity. We describe;
- trivial/observational models that are dynamic but offer no interactivity other than the capability to view the model from different perspectives;
- simple models that tend to have a single interactive control that influences the behavior of the model.
- complex/sophisticated models with a multiple controls that can interact to produce complex behavior in the model.
- game-like/fully realized models that include elements that include interactive elements that are particularly aimed at increasing students' affective responses to the models.
Applications
Instructors have used VPython models in demonstrations for large lecture sections (eg. Urbano and Houghton, 2006) and models have been made available for direct use by students in smaller laboratory sections.

