Index of /alice/

What is Squeak-Alice?

Alice ( is an authoring tool designed to allow people
without programming experience to build interactive 3D worlds. The Stage 3
Research Group (Randy Pausch director) started the Alice project at the
University of Virginia, and is continuing their work at Carnegie Mellon
University ( Squeak-Alice brings the ideas and
the ideals of Alice to Squeak, with the goal of introducing even more people
to 3D graphics and allowing them to author in the medium.

How do I create Wonderlands?

You create a Wonderland by evaluating:

Wonderland new.

This creates a new Wonderland, along with a camera window looking into the
Wonderland, a few controls, and a scripting editor.

How do I add Actors to my Wonderland?

Currently Wonderlands prefer to create Actors from Alice .mdl files.  As a
service to the community, the Alice team has agreed to make their models
available to Squeak users.  The model library can be downloaded from:

To add a model, you evaluate the following in the script editor:

w makeActorFrom: 'path/to/actor.mdl'

ex. w makeActorFrom: 'C:\Program Files\Squeak\Actors\Animals\bunny.mdl'

This creates a WonderlandActor instance for the actor and adds it to the
Wonderland.  By default actors are named using the name of the model file;
in our example the first actor we create with this model file will be named
bunny, the second bunny2, etc.

Actors are hierarchical objects, which means that they are made up of
different parts. In the Actors pane of the script editor you can see a list
of the actors currently in the Wonderland and the parts that make up each
Actor.  To access the parts of an Actor you use the name of each part of the
Actor from the top level part down to the part you want.

Thus, to access the bunny's left arm you'd use:

bunny body leftArm

What can Actors do?

Actors have a number of built-in primitive behaviors. The most commonly used
behaviors are:

move - moves the actor in the specified direction
moveTo - moves the actor to a specified position
turn - turns the actor in the specified direction
turnTo - turns the actor to a specified orientation
roll - rolls the actor left or right
pointAt - points the actor at the specified actor
resize - changes the size of the actor
place - place an actor relative to another actor
standUp - causes the actor to stand up
destroy - destroys an actor

Each of these behaviors can be used in different ways and with different
levels of control.  One of the bumperstickers from Alice is "controlled
exposure to power"; the simple commands you learn first can also be used in
more powerful ways.

Some useful combinations are:

bunny move: forward
bunny move: forward distance: 2
bunny move: forward distance: 1 duration: 4
bunny move: forward distance: 1 duration: 2 asSeenBy: camera

bunny moveTo: { 0. 1. 0} duration: 2
bunny moveTo: {0. 0. 1} speed: 4
bunny moveTo: {asIs. 0. asIs}

bunny head pointAt: camera
bunny head pointAt: camera duration: eachFrame

For other combinations (until I've written the Squeak-Alice active essay)
look at the WonderlandActor class.

Composing animations

Right now there are two ways to compose basic behaviors to build more
complex behaviors. They are:

- doing component animations in parallel

ex. 	w doTogether: { bunny move: forward. bunny turn: right }

- doing component animations in order

ex. 	jump := bunny move: up.
	fall : = bunny move: down.
	hop := w doInOrder: { jump. fall}

You can also start and loop these animations.

hop start
hop loop: 2
hop loop
hop stopLooping

What are Cameras?

Cameras are a special type of Actors.  Although they have all the behaviors
that Actors do, they also provide windows into the 3D world.  You create a
camera by evaluating:

w makeCamera

The first (default) camera is named camera.  Subsequent cameras are named
camera2, camera3, etc.  Each camera displays into a camera window.  These
windows are named cameraWindow, cameraWindow2, etc.  You can also animate
these windows.  Try:

cameraWindow move: right distance: 200

Moving the Camera Around

There are two ways of moving the camera around.  One is to type commands for
it in the script editor.  The other is to mouse around using the camera

cameraWindow showCameraControls

Click in the controls morph and drag.  The controls currently work as

no modifier keys: move forward/back, turn left/right
shift: move up/down, move left/right
ctrl: turn left/right
shift + ctrl: turn up/down

Blending 2D and 3D

One of the goals of Squeak-Alice is to explore using 2D and 3D elements
together.  To blend the 3D world with the 2D desktop try the following:

ground hide
camera turnBackgroundOff

Work in Progress

Squeak-Alice is a work in progress that's only a few months old.  Although
it draws heavily on Alice for inspiration, there is some new functionality
that has not yet been fully user tested, and any bugs are completely my own.
You can direct questions, comments, bug reports, and complaints to yours
truly at:

I also encourage you to try out the Alice authoring tool yourself; you can
download the authoring tool and web browser plug-in free from  There's also an Alice tutorial on the web site, and
although the syntax is different most of the concepts are the same.

NameLast ModifiedSizeType
Parent Directory/ -  Directory
Objects.zip1999-04-11 23:004.0MFile
README1999-04-11 23:005.3KFile