Almost all of the literature that develops and discusses the techniques of 3D graphics is written in a patois that is, at best, an uncomfortable combination of C++ and geometric linear algebra. This was necessary, but is unfortunate, because it tends to obscure the interesting themes of this subject by burying them in the details of implementation. Because of this, it has been difficult for anyone but seasoned programmers to have immediate access to the fruit of this new technology. And since the mathematics required to achieve realistic simulations of motion is difficult to implement at the level of C++, there has been little progress in creating expressive and versatile 3D simulations for the desktop.
Fortunately, this situation has changed. The OpenGL Architecture Review Board has, by abstracting and separating the issues of quality graphics performance from those of implementation on a particular platform (or language), taken a very important step towards making the creation of powerful graphics more accessible to everyone.
Creating powerful and convincing simulations still requires very careful attention both to mathematics, and to programming. But in the proper language environment, it is possible to make the necessary tools available at a conceptual level of abstraction that integrates the mathematics and the 3D graphics in a natural way, and encourages top-down planning and design.
MindScapes is built on an object-oriented paradigm that focuses on “actors” and their behaviors. These actors are “objects” that you may create and manipulate at a high level of abstraction. You determine their behaviors with “scripts.” These scripts are of course programs, but they may be developed incrementally, and may be tested interactively as you build your project.
This is important, because it means that your project does not have to be complete in order to work at all. You may focus attention on details as you get to them, easily testing and modifying behaviors while the project is running in order to get them right.
MindScapes inherits from LISP, Logo and from SmallTalk these insights into the programmer’s craft. The language that you use to create and manipulate the objects is called MathScript, and it contains (essentially verbatim) an interactive version of a large part of OpenGL, as well as a powerful language for creating mathematical objects and object hierarchies.
This means that your scripts can also be abstract, focusing on ideas above implementation details. And we hope that you will find in MathScript a direct route (if not a Royal Road) to translating your ideas into working simulations.
Mathwright PlayScapes is the program in which readers view your finished simulations. These simulations are called Projects and they are saved in special project files. You may design a hypertext Control Panel on each page of the project for various forms of input and output that readers will use to interact with your simulations.
These control panels can have the appearance and interactive functionality of web pages, but are much easier to design. You may also provide colorful, rich-text Instructions Pages that may contain pictures (especially snapshots of notable events in the interaction), videos, interactive spreadsheets, and any ActiveX controls you wish.
You may also supply a Session Record, which automatically records sequences of commands (and their responses) made at the Command Line as a guide for reader interaction, or for feedback from them.
Needless to say, it is not enough to have available pretty graphics to build dynamic and interactive environments that can demonstrate powerful ideas in mathematics and science. The underlying language that controls the graphics must be smart and flexible enough to enable you to transform your ideas easily into responsive and dynamic interactions.
MathScript is an extensible object-oriented computer algebra language (with over 265 built-in functions, programs, and commands) that is designed to build simulations. Except for the OpenGL part, it is the same MathScript in which Mathwright WorkBooks here at the Library have been written. It is an extensible language. You may create your own programs and commands within it, and even design your own language, if need be, to support your simulation.
As an interactive scripting language, it makes it easy for you to design and test your simulations step-by-step, in small, conceptually simple pieces. The earliest version of MathScript was developed by James White under the sponsorship of the Mathematics Association of America, in collaboration with hundreds of college mathematics and science teachers, during the five year tenure of the Interactive Mathematics Text Project (funded by IBM Corporation and the National Science Foundation).
Since MathScript has no difficulty with symbolic algebra and calculus, it will support models that require real-time solution of differential equations, or exact solutions of systems of algebraic equations, and will display the symbolic results in a legible 2-dimensional symbolic form. And as an object-oriented language, it will allow you to construct object hierarchies, even extending them at run-time, to simulate the orchestrated motion of articulated parts of complex 3 dimensional objects.
OpenGL is a powerful rendering language that will display your scenes and allow the user to interact with them in real time. Another aim of MindScapes is to enable you to learn and to experiment with this remarkable language. For that, MathScript contains 57 primitive OpenGL commands, all the constants, and the principal state variables in interactive form. This means that you (and your readers) may use OpenGL in essentially its original form (its syntax blends seamlessly with MathScript syntax) to experiment with geometry and graphics interactively.
And since MathScript is so tightly integrated with OpenGL, it can in fact be an excellent tool to learn and experiment with OpenGL itself. In its scripts, you will see the results of your graphics instructions immediately, however, without the need to compile them into C++. This is a great advantage for building simulations that must be fine-tuned over many incremental cycles.
But MathScript is also a highly flexible language that allows you to create your own commands, to build your own object hierarchies, and to create the mathematical objects that will support your simulation. What distinguishes MindScapes from other 3D Graphics environments is the fact that the "actors" in the scenes you create are dynamic. They may be moved individually either interactively (at the command line) or under the control of scripts that you write. They may be selected by the reader when she clicks on them, and may respond in appropriate ways with the full Euclidean group of motions. Further, the reader may navigate your scenes by flying through them in the first person, or by moving the entire scene itself. This makes possible a large variety of realistic experiments and simulations that it would be difficult to imagine supporting on a 2 dimensional canvas
.

- James E. White, Ph.D. , Library Director,
author of this website, Mathwright Author 2000,
Mathwright MindScapes, and Lava

 

(return)