The Beginner's Guide to Neverworld

by Jeffrey Huo

With the generous support of Andy Wilson (CS '97)1, Lars Bergstrom (CS '00) and Dr. Ian Horswill (Asst. Professor, Computer Science)1

In order to use Neverworld, you don't need:

All you do need is:

1

Andy Wilson and Dr. Ian Horswill are the primary authors of Neverworld and it's component systems.

credits



NEVERWORLD: AN INTRODUCTION

WHY USE NEVERWORLD?

Neverworld was created in order to make construction and viewing of 3D worlds easy for everyone to use. Before Neverworld was created, people who wanted to create a 3D computer model of something had to choose between a few difficult choices:

Neverworld is designed for two things: 1) to make building 3D models and worlds easy for everyone, 2) to let anybody view your models with nothing more than a web browser. If you can surf home pages on the web, you can learn to use Neverworld!

This instruction manual will teach you how to create your own worlds using Neverworld.

Just follow along these instructions, and you'll soon be creating your own rooms for others to enjoy. Have fun!

WHAT YOU NEED TO VIEW NEVERWORLD

Neverworld is a 3D world. In order to view Neverworld, you will need a web browser capable of viewing 3D VRML worlds. Usually, browsers are equipped with a "plug-in" that allows your web browser to view 3D worlds. The documentation that came with your browser, or the help function on that browser, should tell you how to tell if you are equipped to view 3D VRML worlds. In theory, Neverworld will work with any web/VRML browser (Microsoft Internet Explorer, NSCA Mosaic, Netscape 2.01 or higher, etc.) but we recommend using Netscape 3.0 with the Live 3D 1.0 VRML plug-in, since Neverworld has been most heavily tested using Netscape.

For those without Netscape, you can obtain it from http://netscape.com. If you need help with this, the easiest way to get help is to ask the person in your dorm or department assigned to help you with computer questions.

VISITING NEVERWORLD

Once you have installed a web browser that can view 3D worlds, open up your web browser, and go to

http://neverworld.cs.nwu.edu:7000

You will then get a screen titled "Neverworld login." In the space marked "user name", type in

guest

and in the space marked "password", put in your e-mail address. Then, click OK.

The next screen has a button marked "Main menu." Clicking on that button brings you to another window full of buttons. Click on "Go Home" (third button from top).

Now, a 3D world should load up for you. You will appear in a big room full of doors, gates, and other things. This place is a room in Neverworld called "The Grand Nexus." It is the Neverworld equivalent of Union Station: from here, you can go to many other rooms throughout the Neverworld Universe.

MOVING AROUND USING LIVE3D

The following instructions are for users of Live3D who are unfamiliar with how to navigate around in a VRML world. Moving around in a VRML world is very easy, so don't panic!

First, note the bottom left hand corner of your screen. You will find a menu bar with choices like "walk", "spin", "slide", etc. Note that "walk" is highlighted in green. This menu bar allows you to choose a method of movement in the 3D world, much like the stickshift of a car lets you choose whether you go forward, reverse, neutral, etc.

These commands are also summarized in Appendix B in the back.

Let's try moving around: roughly center the mouse in the center of the screen. To move, just hold down the mouse button, and then move the mouse in the direction you want to go. Moving the mouse up will cause you to walk forward; moving the mouse down will cause you to walk backwards. A few minutes of playing with the mouse will allow you to get the grasp of moving around.

Now, move the mouse to the lower left hand corner and click on the word "spin". The word spin should turn green. Now, hold down the mouse button and move the mouse around. You should be able to spin the image around. If you spin the image too far, just click the "view" button ( to the right of the "lamp" command) on the bottom left hand corner of the Live3D interface to return you to the position you entered the room at. A summary of all the mouse movements is available in Appendix B.

This 3D world also contains portals to other rooms. Try the following: without holding down the mouse button, move the mouse on top of a door on the screen. Note how a message comes up. Try clicking on it. You may be taken to another room. What you just clicked on is a portal to other places. Feel free to explore the world for a while, keep playing with the browser, and enjoy!

What happens if I get weird error messages instead of a room?

Occasionally, some of the rooms you reach may be broken. Just click on the "back" button on your browser to take you back to a room that works.

What do I do when I'm done traveling through Neverworld?

When you are finished, you need to leave Neverworld by logging out.

NOTE: Guests do not have the ability to create their own rooms in Neverworld. You must have an account on Neverworld to do so. Contact Andy Wilson at awilson@nwu.edu to get an account on Neverworld.



CREATING WORLDS IN NEVERWORLD

HOW IS THE NEVERWORLD SYSTEM ORGANIZED?

When you log into the Neverworld server, you connect to a server that contains all of the different parts of Neverworld. Neverworld is composed of two parts:

When you create a room, and build a model inside that room, the room you create does not have to be connected to the Grand Nexus. In fact, that room does not have to stay in the Neverworld Universe. You can export the file that describes your room, save it to disk, copy it onto your own hard drive, and open up just the room without logging back into Neverworld.

THE THEORY BEHIND NEVERWORLD ROOMS/MODELS

So, now you've seen some of the incredible places built in Neverworld. Don't be intimidated by the apparent complexity of the scenes. Everything in Neverworld is based on very easy to learn concepts.

Do you remember playing with blocks when you were a kid? In order to build a house or a castle, you stacked cubes, cones, long and short blocks, etc. one on top of the other. Even though the blocks themselves were simple, you could design really complex structures by combining the blocks in complex ways.

Now, imagine that you can make blocks of any color or size. Suppose that you can hang these blocks in mid-air, if you choose. You can even stick them inside of each other, so that you could have blocks poking out of other blocks. This is the way everything in Neverworld is built.

Now, when you played with blocks as a kid, you and the blocks weren't just floating in the middle of space; you and the blocks were in a room. The same idea holds in Neverworld. You have to create a room to keep all of your blocks in. Then, you need to put yourself in the same room. After that, you can begin stacking blocks.

Also, in Neverworld, you can create portals between rooms. That way, you can build two rooms, and then build a portal between the two rooms. So, when someone clicked on a particular block or door, he/she would be transported to the other room.

This can be useful for a number of reasons. You could build your model in such a way that if someone clicked on a part of that model, she/he would be taken to a room with a blown-up copy of that part. Or, if you were modeling a building, clicking on a particular building took you to a model of the inside of that building.

Some of the rooms are connected to the Grand Nexus. Others exist in isolation. Whether or not the rooms you create will be connected to the Grand Nexus is your choice. Connecting your room to the Grand Nexus enables anyone visiting Neverworld to view your room, which may or may not be what you had in mind.

CREATING YOUR OWN WORLDS IN NEVERWORLD: NUTS AND BOLTS

Actually creating a room in Neverworld means typing a few lines of code into the Programmer Interface. Basically, you tell the computer to:

Let's take a quick peek at what the code for a room actually looks like. Don't panic: we'll go through this in much more detail later. We just want to show you what a room in Neverworld looks like.

The following code tells the computer to create a spherical room, put you into that room, and then put a red cube 1 meter on a side in the room with you.

(define-object bigroom (supporting-object) ( ) )

(define-method (shape bigroom)

(separator

(sphere 30)))

This first paragraph tells the computer to create a spherical room 30 meters in diameter.

(move (user) bigroom)

(set (position (user)) (v 0 1 5))

These commands tell the computer to put the user into the room, at the coordinates x=0, y=1, z=5.
(define-object redbox (thing) ((location bigroom)))

(define-method (shape redbox)

(separator

(material 'diffuse (c 1 0 0))

(cube 1 1 1)))

These commands tell the computer to create a red cube 1m x 1m x 1m.

At this point, you probably have lots of questions. Don't worry about trying to understand what all of the words mean right now: we'll explain everything piece by piece.

There are a few rules a Neverworld program obeys. First, note that all of the commands are enclosed by parentheses. For every opening parentheses "(", there must be a closing parentheses ")". Occasionally, there are sets of parentheses that don't have anything in them: even though there is nothing between them, they are still important parts of the command, and have to be left in place.

Second, let's take a quick overview of the way the commands are set up. (Don't worry: we will go over all of these commands in greater depth later.)

For the following summary, words in bold are the commands themselves. The items in italics are various details which you substitute in.

(define-object objectname (type) (options) ) define-object tells the computer to create an object called "objectname" of type "type". Type can be:
  • supporting-object for rooms,
  • thing for things like shapes,
  • portal for portals between rooms.

The options are various options, depending on the type of object.

(define-method (shape objectname)

(separator

(option 1a)

(option 1b))

(separator

(option 2a)

(option 2b)))

If define-object told the computer what the object was, define-method tells the computer what the object looks like.

Inside the first set of parentheses is a command called the separator command (highlighted in red) The separator command groups together a block of commands into one group. That way, you can create groups of commands to describe different parts of the same shape.

Among the options that can go inside of the separator that can tell the computer what the object looks like are:

(material 'diffuse (c r g b)) This commands tells the computer what color the object is. The color is determined by a combination of red (r), green (g), and blue (b).
(translate x y z) This command moves an object over a certain number of meters x, up a certain number of meters y, and a certain number of meters in the z direction.

Directions in Neverworld are in terms of x, y, and z vectors. +X is in to the right of your screen, +Y is going up toward the ceiling, and +Z is going into the screen.

(cube x y z)

(sphere radius)

(cone radius height)

These are some of the various shapes that Neverworld can create.

CREATING YOUR OWN WORLDS IN NEVERWORLD: GETTING STARTED

While anybody can visit Neverworld as a guest (as you yourself did earlier), you need to get a special account on Neverworld, just like you needed an account to send and receive e-mail. In order to get a Neverworld account, write Andy Wilson at awilson@nwu.edu.

Once you have obtained a Neverworld account, go back to the login screen on the Neverworld homepage at

http://neverworld.cs.nwu.edu:7000.

You will be prompted for your user name and a password again. This time, type in the account name you received from Andy. If this is our first time logging in, you will not yet have a password, and can leave the password field blank. When you have entered the required information, hit OK.

NOTE: Neverworld is currently not a secure server. Thus, it is theoretically possible for someone to "sniff" or steal your password as you enter it. DO NOT use any password you use on any other machine or server as your Neverworld password, and do not use your Neverworld password as a password on any other machine.

The next screen allows you to examine the Neverworld preliminary documentation, and a button marked "Main menu." Clicking on that button brings you to another window full of buttons. The important ones are as follows:

Go home: Clicking on this will take you to the grand nexus of the current Neverworld Universe. Here you can browse the work of others as we did earlier.

Programmer interface: Clicking on this button brings you to the window where you do the actual programming.

Get / Send messages: These enable you to get or send messages to other users of the Neverworld Universe.

Change password: This button allows you to change your password.

Logout: Logs you out of Neverworld.

After you change your password, click on the button marked "programmer interface" to begin creating your own worlds!

UNDERSTANDING THE PROGRAMMER INTERFACE AND THIS MANUAL

The next part of the manual will lead you step by step through creating your first world in Neverworld. Along the way, we will show you how to create rooms, how to create all of the basic types of blocks, how to move them around, and how to make portals between rooms.

The programmer interface is the most important part of the Neverworld interface. The programs you will write to create your 3D models will be entered in the big text box on the page. After you finish writing the code for a room, then you click the button "Run this code." We will cover the purpose of the buttons on the rest of the page later.

Text that is meant to be typed into the computer will appear in courier font like this sentence, as well as be surrounded by a text box.

In the portions of code used as examples, the program lines will be numbered, so that they can be referred to in the text.

items in bold are the programming keywords,

words in italics are user-inputted names or values.

Rather than entering a completed program all at once, you will be asked to type in a chunk of code. Then, we'll explain it in detail, and then we'll add on another chunk of code. We will build up our programs once piece at a time, and after we have covered all of the parts, then we will run it and see what it looks like. So please have patience!

CREATING A NEW WORLD: A WALKTHROUGH

CONSTRUCTING A ROOM

The first thing you need to do is to create a room to build everything in. First, type in the following chunk of code into the window of the programmer interface. For now, don't worry too much about what all of this means. The spacing is not important.

(define-object bigroom (supporting-object) ( ) )

(define-method (shape bigroom)

(separator

(sphere 30)))

Now, let's go through each line and what it does:

1. (define-object bigroom (supporting-object) ( ) )

  1. (define-method (shape bigroom)

3. (separator

4. (sphere 30)))

In line 1, the define-object command tells the computer to create a room called bigroom. However, the computer still doesn't know what size or shape the room will be.

In lines 2-4, the define-method command tells the computer that bigroom is a sphere with a radius of 30.

Rooms do not necessarily need to be spheres. By substituting other shapes (like cube or cylinder ; more on this later) the room can be different shapes as well.

This command also gives us a chance to review two other important points. First, note that, just like in mathematics, there are the same number of open parentheses as close parentheses. Second, note the separator term encloses the sphere command in line 4. Again, note the way the separator term (in red for this illustration) separates off a chunk of text. Everything between the separator command and the end ")" describes the details of the object we are building, namely, the sphere.

PUTTING YOURSELF INTO THE ROOM

Now we've created a room, and told the computer what the room looks like and how big the room is. However, none of this does us any good, because we aren't in the room, yet. We won't be able to see anything until we go into the room. So, type the following into the programmers window below the previous section:

(move (user) bigroom)

(set (position (user)) (v 0 1 5))

Let's go through these commands line by line.

  1. (move ( user ) bigroom)
  2. (set (position (user)) (v 0 1 5))

In line 3, the move command moves the user (you) into the room called bigroom. It doesn't tell the computer where in that room to put you, yet.

In line 3, the computer put you into the room called bigroom. Now, in line 4, the computer places you at a position x=3, y=0, z=0 from the center of the room.

Directions in Neverworld are in terms of x, y, and z vectors. +X is in to the right of your screen, +Y is going up toward the ceiling, and +Z is going into the screen.

BUILDING OBJECTS IN THE ROOM

So far, all we have is a room. We still don't have anything in there. Let's start out by putting a red cube in the center of the room.

Neverworld creates objects in a room sequentially. Unless told otherwise, it places the first object you create at the center of the room, at the coordinates 0, 0, 0. After that, it moves to the next location, creates the 2nd object, moves to the next location, creates the 3rd object, etc. all the way until the end of a "paragraph." A "paragraph" of code are the commands between the separator command and the parentheses that ends it, as in the example below:

(define-object objectname (type) (options) )

(define-method (shape objectname)

(separator

(option 1a)

(option 1b)))

After the end of the paragraph, the computer resets to the coordinates 0, 0, 0.

Now, remember that the computer draws the first object at the very center of the room (0, 0, 0) unless it's told otherwise. So, the very next thing we create will be created at the center of the room. Let's try it now.

Type in the following into the programmer window below the previously typed text:

(define-object redbox (thing) ((location bigroom)))

(define-method (shape redbox)

(separator

(material 'diffuse (c 1 0 0))

(cube 1 1 1)))

Let's go through this line by line again as well.

5. (define-object redbox (thing) ((location bigroom)))

6. (define method (shape redbox )

7. (separator

8. (material 'diffuse (c 1 0 0))

9. (cube 1 1 1)))

Again, define-object (in line 5) tells the computer to make an object called redbox inside of the room called bigroom. thing tells the computer that your object is a thing, instead of a room or a portal. location tells the computer where the object is. The computer still doesn't know what the object called redbox is yet, though.

The define-method command in line 6 tells the computer that everything between the separator and the ending ) (i.e., lines 7-9 in the example) describes what the shape redbox is. Remember, for every opening parenthesis, there must be an equal and opposite closing parenthesis.

Now, let's look at what was actually between the separator and the ending ")":

8. (material 'diffuse (c 1 0 0))

Before you create an object, you have to tell the computer what material to make the object out of. In this case, 'diffuse (c 1 0 0) means that the object will be red. For now, don't worry about what 'diffuse means. 'diffuse is an advanced option that is covered in other documentation (see the last section of this manual for details.)

The color is determined by combining red, green, and blue, to make other colors. Every color in the Neverworld universe is encoded by calling it (c r g b), where the amount of red ( r ), green ( g ), and blue ( b ) is a number between 0 and 1. Thus, pure red is (c 1 0 0), all white would be (c 1 1 1 ), a 50% gray would be ( c 0.5 0.5 0.5 ), etc.


9. (cube 1 1 1)

After telling the computer what color material to make the object out of, it's time to tell the computer what shape to actually draw. The cube ( 1 1 1 ) command tells the computer to draw a cube that is 1 m x 1 m x 1 m. Other available commands are:

(sphere radius )(cone base-radius height ) (cylinder radius height )
(sphere 1 ) draws a sphere of radius 1. (cone 1 2 ) draws a cone of base radius 1 and height 2 (cylinder 1 2 ) draws a cylinder of radius 1 and height 2.

TAKING A LOOK AT WHAT YOU'VE DONE

You should now have the following in your programmer interface:

(define-object bigroom (supporting-object) ( ) )

(define-method (shape bigroom)

(separator

(sphere 30)))

(move (user) bigroom)

(set (position (user)) (v 0 1 5))

(define-object redbox (thing) ((location bigroom)))

(define-method (shape redbox)

(separator

(material 'diffuse (c 1 0 0))

(cube 1 1 1)))


Now, we can run the program that we have written. First, click on the button "Run this code." The screen will refresh, and then the program interface window will be blank, and your code should appear as a big mass of text.


If you mistyped something, you might get an error message: please see the section in the back on error messages (Appendix A) for more help.

Now, click on "Show viewpoint". This takes us to the VRML window. If you have typed in everything properly, you should see a red cube in front of you. Congratulations!

You may be wondering where the border of the room is. Remember that the block is only 1m on a side, and the room is 10m in radius. The edge of the room is too far away to see from your current position; if you walk to the edge of the room, you can leave it completely. From the outside, the room looks like a sphere, just like we defined.

DRAWING MORE OBJECTS

In order to add more objects, we need to return to the programmer interface. Click "back" on your browser, and you should be back to a programmer interface with a blank text box. You will type your new code into this text box, and the computer will add your new code to your old code automatically.

The next thing we can do is to add some more objects. In the now blank window, type in the following:

(define-object greensphere (thing) ((location bigroom)))

(define-method (shape greensphere)

(separator

(translate -3 0 0)

(material 'diffuse (c 0 1 0))

(sphere 1)))

(define-object cone-and-cylinder (thing) ((location bigroom)))

(define-method (shape cone-and-cylinder)

(separator

(translate 3 0 0)

(material 'diffuse (c 0 0 1))

(cone 1 1)

(translate 0 3 0)

(material 'diffuse (c 1 1 0))

(cylinder 1 1)))

and then:

You should now see a green sphere on the left of your red cube, a blue cone on the right, and a yellow cylinder above the blue cone. How did this happen?

First, note the addition of a new line of code on the fourth line of the new program:

(translate -3 0 0 )

This moves your cursor 3 spaces in the -x direction from the origin. Remember, we first created the room around the point 0,0,0. Then, without moving, we created the red cube. Now, we move (translate) 3 spaces to the right, and then go on to choose the color with the material command and choose the shape with the sphere command. After the last ) that ends the separator command, the cursor returns to the origin.

Now, note the other chunk of code:

1. (define-object cone-and-cylinder (thing) ((location bigroom)))

2. (define-method (shape cone-and-cylinder)

3. (separator

4. (translate 3 0 0)

5. (material 'diffuse (c 0 0 1))

6. (cone 1 1)

7. (translate 0 3 0)

8. (material 'diffuse (c 1 1 0))

9. (cylinder 1 1)))

We create a group of objects (called cone-and-cylinder) in the same way we created a single object (like greensphere). After the separator command, the command (translate 3 0 0 ) (line 4) moves us 3 in the +x direction from the origin. We then create a blue cone (lines 5-6). After that, the next translate command moves the cursor 3 units in the + z direction starting from the current position, not from the origin. Since we have not yet closed the separator with a ")", the cursor is still at the position 3, 0, 0 where we drew the blue cone. Therefore, the (translate 0 0 3) (line 7) command moves the cursor from 3, 0, 0 to 3, 0, 3. After the ) that ends the separator paragraph, the computer resets the location back to 0, 0, 0

CREATING A PORTAL TO SOMEWHERE ELSE

While being able to create large numbers of objects and forming them into useful models is cool, it would also be nice to be able to build other rooms and connect them together with portals. For this purpose, lets create another room.

(define-object smallroom (supporting-object) ( ) )

(define-method (shape smallroom)

(separator

(sphere 10)))

(move (user) smallroom)

(set (position (user)) (v 0 1 5))

Again, the define-object command creates a room called smallroom, the define-method command tells the computer what the room called smallroom looks like, and the move and set commands put the user into the room called smallroom. We have seen all of this code before.

Now, into the center of this room, we will create a cyan slab that will act as our portal back to bigroom. To do this, type in the following below the text we just typed in:

(define-object slab (portal) ((location smallroom)

(position (v 0 0 0))

(destination bigroom)

(destination-position (v 0 1 5))))

(define-method (shape slab)

(separator

(material 'diffuse (c 0 1 1))

(cube 1 4 1)))

Now, to view our finished portal,

So how did this work? Let's take a look at the code:

1. (define-object slab (portal) ((location smallroom)

2. (position (v 0 0 0))

3. (destination bigroom)

4. (destination-position (v 0 1 5))))

5. (define-method (shape slab)

6. (separator

7. (material 'diffuse (c 0 1 1))

8. (cube 1 4 1)))

Here, we use define-object to define a portal called slab.

Even after all of this information, we now know where the portal is and where it goes, but we still don't know where the portal itself looks like! That again is the job of the define-method command (line 5).

These commands are quite similar to the commands we used to create the room with a red cube in it. Note that the portal (slab) itself is the shape being defined.

SAVING AND RELOADING THE ROOM ON NEVERWORLD

Everything that you do is automatically saved by Neverworld. To reload, just

For example, if you now, into the blank programmer interface box, type

bigroom

SAVING AND EXPORTING YOUR ROOM AS A FILE

In order to view your finished rooms, you don't need to log into Neverworld. You can convert the model into a file, which you can then save onto a disk. After that, you can carry that disk to another computer, load the file with a 3D VRML browser (like Netscape), and view your model without ever logging into Neverworld! This is very useful when the location you are going to has poor or no Internet connections, or if you want to use the file on a portable computer without a network connection.

Exporting your room to a file is very simple.

Opening up the file on some else's computer is equally as easy: just

DELETING OBJECTS

Deleting a chunk of code does not delete the object from the room! In order to remove an object from a room, you must both

1) Delete the segment of code that corresponds to the object.

Find the segment of code that has the define-object objectname and delete both the define-object and its define-method section.

2) Enter the following command into the programmer interface:

(destroy-object! Objectname )

and click "Run this code." The object is now gone.

USING THE OBJECT CONFIGURATION MENU

There is another way to edit objects other than the programmer interface. By clicking on "Configure object", (steps 1-3 in Appendix A) you can bring up an entire menu of possible parameters. By clicking on the hypertext links on the left hand side, nearly anything can be changed. More on this will be covered in more advanced documents.

WHERE TO GO FROM HERE

This manual has only scratched the surface of what is possible with Neverworld. More advanced documentation, and answers to more advanced questions can be found at

http://rodan.cs.nwu.edu/neverworld/docs.

More advanced options include:

Also, other options include taking one of the courses or seminars periodically offered by the Northwestern Computer Science Department. For more information or questions about Neverworld, contact


Lars Bergstrom

l-bergstrom@nwu.edu

Ian Horswill (Asst. Professor, CS)

idh377@nwu.edu

Andy Wilson

awilson@nwu.edu

Again, welcome to Neverworld!

APPENDIXES:

APPENDIX A: COMMON ERROR MESSAGES:

Locations where Error Messages Appear:

Errors can appear in one of two places:

  • When you punch "Run this code", you get an error in a large black heading.
  • When you punch "Show Viewpoint, and you get a full page error.

Error Messages Explained

The following are some common error messages, what they mean, and what you can do about them.

Execution errorUsually caused by a misspelled command. Check the spelling of your keywords.
Undefined variable: supporting If you accidentally forgot to put a dash in supporting-object, you get this error. Put in the dash.
Undefined variable: (some other word) If you get the undefined variable error and it's not supporting, then your problem is that you probably misspelled the variable name either right after the define-object or the define-method commands. Check!
Undefined variable: unquote Remember, vectors in Neverworld do NOT have commas in between the coordinates! If you wrote (v 0, 0, 1) instead of (v 0 0 1), you'll get this error. Look for the commas and fix them.

After You Have Corrected the Error


Okay, I corrected the error: but when I run the thing, but I see this huge <ouch> instead of the shape that is supposed to be there. What do I do now?

Even though you corrected the error, inside the program, this <ouch> you seen on the screen indicates that the computer thinks something is wrong, even though it has already been fixed. You need to reset the error counter manually, so that the computer again thinks everything is correct.

Do the following:

  1. Click the "back" button on your browser until you get back to the programmer interface screen.
  1. Just above the "Run this code" button, you'll see a hypertext link to the right of the Result: on top of the programmer interface text box. Click on it.
  1. Click on the "Configure object" button.
  1. Look in the left column for the "last-render-error" hypertext link. Click on it.
  2. Type #f in the text box and click Set.
  3. Click on the button marked "programmer interface".
  4. Click "Show viewpoint" again. Now, the ouch should be gone when the program is rerun, and whatever was missing should be there now.


APPENDIX B: MOUSE MOVEMENT COMMANDS IN LIVE 3D

Holding the mouse button down and:Moving toward the top of the screen Moving toward the bottom of the screen Moving the mouse leftMoving the Mouse right:
While in walk modeMoving forward Moving backwardTurning left Turning right
While in spin mode


Turn the object clockwise Turn the object counterclockwise
While in slide modeLower the object Raise the objectSlide the object right Slide the object left