Now, let's return to the canvas of an HTML page and ask how the palette is applied to the canvas. It works this way. On each web page, you may insert a rectangle (we call it the portal) that blends in with the page and appears to be a part of it. That rectangle can have any size and position within the page, but it really represents an additional dimension.

Now you may well ask: "How do you create this portal?" That is the interesting thing. The portal itself is created in a separate computer program called Mathwright32 Author and then "inserted" bodily in the web page. In fact, the authoring program will create the web page with the portal in it, if you like, and then you can add the HTML decoration later.

There are two steps in creating the portal. On the one hand, there is the screen design for each page. This is all point-and-click -- or WYSIWYG: "What you see is what you get." You choose the page color (from 16 million possibilities) or a background picture that can carry hotspots. And then you simply *draw* the various screen objects such as text fields, graph windows, labels, sliders, hotspots or buttons, and so on, on the page. These provide the basic input or output or both. At this time, you decide whether the portal should be a fixed-pixel size, or whether it should be re-sized to appear the same in all popular screen resolutions, such as 640x480, 800x600, 1024x768. For embedded microworlds such as *Transformations of a Function* or *Epicycloids*, this can be an important design decision.

Of course, the other essential part of your work is to "script" these objects. This determines the dynamics of your Microworld -- its **behavior**. The language that you use to do this is neither HTML nor Java. It is the high-level mathematical scripting language that we mentioned earlier called *MathScript,* which "understands" the array of mathematical object types and their transformations, presentations, and comparisons outlined in the preceding section. This is the most important sense in which Microworlds differ from generic Java applets. Mathematical objects and notations enjoy first-class citizenship in MathScript. To integrate a function, you simply say: Integrate. To graph a function, you simply say: Graph. And to define a function, you write something like f(x,y) := (x+sin(x-y))^2.

The scripts for screen objects are generally not such simple commands. They can be as rich as you like, with all of the usual control structures (loops, conditionals, recursions, and so on). And this means that the only real limits on the expressive power and range of your story will be your imagination.

The language is extensible. You may create your own commands, functions, and programs for each book. Finally, once the reader has the ActiveX Control installed, the entire language will always be immediately available for each book. There is never a need to download new Java Classes. In this sense, the Control contains an all-in-one pre-built class library for mathematical web books. Authors can focus on the mathematical design of their web pages and need not be distracted by the questions of compatibility of components or the availability of those components to the reader.

Another important consideration is the Open Source nature of our materials. The Mathwright Library is a collection of over 190 workbooks and roughly 34 Microworlds. The microworlds and the workbooks are contributed by their authors as "ClipMath" for future authors to extend and modify. All of the microworlds we have demonstrated in this paper and all of the Project WELCOME microworlds (see below) depend, to some extent, on earlier work. For example, the *Epicycloid* microworld began with an idea of Mike Pepe, was extended in a Project WELCOME microworld by author Sam Masih, and finally, a single modified page of the latter is what you saw in this article. All microworlds come with all source scripts, so that authors may use them (or parts of them) as the starting points for new books. This greatly reduces the effort needed to build microworlds and Interactive Web Books.

We realize that a browser is not necessarily an ideal place to think hard about mathematics. So authors may give readers the opportunity to download and read any Microworld with our free Java Mathwright32 Reader, which is an application that runs independently of the browser. Thus, students may read your Microworlds off-line if they choose to, without having to be connected to the web at all! You would have to zip up the Microworld so that your readers can download it from your web site if you wanted to offer this option. You will see some examples of this at the Project WELCOME web site.

Finally, let us take a look at Project WELCOME, a rather unusual faculty development project of the Mathematical Association of America. We invited faculty at selected Historically Black Colleges and Universities (HBCUs) to collaborate with experienced Mathwright authors to create a collection of web documents that can support certain entry-level mathematics courses at the home institutions. Although the four "novice developers" came with very little experience with web pedagogy, and essentially no knowledge of Mathwright, they have created 22 Microworlds so far, ranging from 4 to 25 pages each, and comprising over 200 interactive mathematical web pages. Their work represents the debut of this new web technology, which was, in fact, created for Project WELCOME.

Ready to take a look? Well, hop on the bus!