what is materialworlds?

Materialworlds is a real-time simulation environment for personal computers that runs a growing set of specially written simulations.
Unlike a video or animation, which merely replays a preset sequence of images, the objects in a simulation interact with each other as you watch. Viewers can participate too, as games players and experimentors, changing the view onto the simulation or the speed at which it runs, or actively changing the course of the simulation - by tweaking a control or pulling an object with the mouse.

Materialworlds simulations are set into web pages - providing a flexible format for organizing the text, controls, live graphs and multiple views that are available for constructing a simulation. Web authors can modify the presentation of existing simulations, or select elements of existing simulations in building new web pages.
And of course web pages don't need to be viewed on the web - they can be located on a CDROM or installed on a PC or local network.

A common educational thread runs through our diagram-style simulations. The 3D view of a pool/snooker game, for instance, is accompanied by a plan view showing the balls' velocities and the forces on them.
The aim is to encourage an understanding of how physical systems work by seeing forces in action; with materialworlds simply and automatically displaying properties that in the real world could only be measured with some difficulty.

how do simulations work?

All materialworlds simulations are run by the same materialworlds simulation engine.
This reads the simulation data file (which can be just a few kilobytes in size) which specifies the starting state of all objects in the simulation, and how the simulation should be run and displayed.
The simulation engine then simply lets the objects interact with each other, and displays what happens. Nothing "knows" what is going to happen before it does, events just unfold from the initial state of the simulation according to the properties of the objects and the laws that they obey.
Without intervention from the viewer (or any randomness in the laws) the same things will happen every time the simulation is run.
Because simulations can take a substantial slice of the computer's attention, materialworlds lets just one of them run at a time. So if there are different simulations visible on a webpage, only one will be running at any one time. To activate another, just click on it.

what's the difference between a simulation and an animation?

Simulations automatically produce realistic behaviour (provided the laws that objects obey are realistic). In animations this depends the skill of the animator (if realism is desired).
Simulations can carry on forever as objects continue to interact.
Without user interaction, what happens in a simulation depends only by its starting state. With animation, on the other hand, things can be "made" to happen, irrespective of their being realistic. But if simulations allow user interaction, or contain "intelligent agents", they too can be guided towards certain outcomes.

special features of materialworlds web page simulations

simulation toolbar
The main simulation view window has a configurable toolbar. Usually this contains Rewind-Pause/Play controls - letting viewers pause, reactivate or return to the beginning of a simulation.

multiple views
Materialworlds supports multiple views of a simulation as it runs. A single simulation might display 3D perspective views from different viewpoints and 2D views in different planes; with arrows showing the forces between objects and their velocities.

controls and user interaction
Sliders, check boxes and radio buttons on the web page can be used to control how the simulation is viewed, the speed at which it runs, and even to alter the properties of objects as the simulation runs.
The viewer can also interact directly in the 2D views of many simulations - by pulling at objects with the mouse and using keyboard commands to copy, paste or delete selected objects.

graphical data displays
Materialworlds can draw several types of separate real-time graphical display:
Graphs of several parameters against time, with frequency or periodic time measurement.
Phase space diagrams of parameters against each other; displaying a system's various "attractors".
Distribution displays (eg. the numbers of objects possessing energy in different ranges).
Kinetic and potential energy displays (showing the exchange between kinetic and potential energy, and the changes of total energy).

what computer do I need to run materialworlds?

A Windows PC (Windows 95/98/NT/2000) running InternetExplorer (4 or later).
The faster the better, but older computers should still work - if slowly.

Colors: high color (16 bit) or true color (32 bit) prefered. Materialworlds will still work with 256 or 16 colors, but some webpage colorschemes won't look right.

If in doubt - just try materialworlds out - as it's free to download and install.

InternetExplorer is required because only it supports the ActiveX Documents and Controls that make it relatively easy to incorporate Windows programs into web pages.
Getting materialworlds to work on other browsers would entail extensive low level replication of Microsoft's operating system - and we'd prefer to spend our time developing simulations and experiments.

can I create my own simulations and simulation web pages?

You can modify existing simulations, and create your own simulation web pages (although you'll find it easier to modify an existing web page). See materialworlds editor and webpage tutorial.

interpreting and interacting with materialworlds

In addition to the special controls that you may find in particular simulations, materialworlds has a set of standard controls and mouse interactions that are available in most simulations:

Arrows are often used in 2D views to show the size and direction of force, velocity and acceleration. Very short arrows are drawn just as a straight line, without an arrow head.
Red arrows show the strength and direction of the forces on an object. 
Thin headed arrows show the individual forces that combine together to give the triangle headed resultant force.
A blue arrow shows the speed and direction of an object's velocity. Unless a simulation prevents it, you can change an object's velocity while the simulation is paused by pulling the velocity arrowhead with the mouse.
A green arrow (displayed in some simulations) shows an object's acceleration.

In some simulations you'll see a bar across an arrow. Beyond a certain length - indicated by this bar - the arrow grow logarithmically; so that a doubling in force or velocity is shown as a fixed increase in length beyond the bar. This allows a much greater range of magnitudes of force and velocity to be displayed side-by-side on the screen.

In some simulations the bonds between objects are colored to indicate if the bond is compressed or stretched.
At its rest length a bond is black; compressed slightly it turns red and at greater compressions yellow. Stretched bonds turn first dark then light blue.

Pause and Play controls let you stop the simulation at any moment to take a closer look; Rewind takes the simulation back to its initial state; Leave tracks shows where objects have passed.

The mouse can be used to interact with and edit simulations in most 2D views.
While the simulation is playing, you can grab hold of an object and move it around with either the left or right mouse button.
Using the left button has the effect of dragging the object around with a piece of elastic; the object is still affected by interactions with other objects.
Moving an object with the right button stops it being affected by other objects and also sets its velocity to zero.

While the simulation is paused, both left and right buttons have the same effect - selecting the object and moving it about - both without changing its velocity. Holding down the Ctrl key causes selected objects to be copied rather than moved.
Multiple selections can be made by Shift clicking, or dragging out a rubberband over a group of objects.
The selection can be cancelled by clicking in empty space.
While moving or copying a stationary object, keep an eye on the shape of the mouse cursor to make sure you're not editing its velocity by mistake.

scrolling graphs
Materialworlds uses scrolling graphs to record how one or more variables change with time.
"Now" (in the simulation's time) is at the graph's origin (on the right where the two axes cross) and the vertical position of the curves at increasing distances to the left of the origin represents the state of variables at times further and further back into the past.
To the right of the origin is the future - which isn't drawn because it hasn't happened yet.
As time moves on, the graph scrolls to the left, recording the most recent events and loosing the record of more distant events off to the left.
In some simulations the graph is set up to draw a vertical line whenever a particular condition occurs (for example; when a pendulum passes through its rest point) and display the time between (or frequency of) these occurances. This provides an automatic time measurement of periodic behaviour - like that of a pendulum or orbiting satellite.

keyboard commands
The standard keyboard commands Ctrl+C and Ctrl+V can be used for copying selected objects, then pasting what's been copied.
These work whether the simulation is running or paused. The Delete key deletes selected objects.
Beware...if you paste objects into the same space as already existing objects, they'll fly apart violently.
Shift+Ctrl+S saves a copy of the active web page simulation - including any changes you've made. Make sure you save it under a different name and/or location - else materialworlds will crash.


What should I do if a view or graph doesn't display properly?
Click on it, or resize the browser window.
or if this doesn't work...
Press refresh
or if this doesn't work...
While holding down Ctrl + Alt keys, press Delete ONCE.
select "Matwrld" in the dialog that pops up, and press the "End Task" button.
(if another dialog pops up with the message "The program is not responding...", select "End Task" in that too).
Press refresh (on your browser)

This technique of closing down materialworlds, then pressing Refresh to reload it, can be used if the program occasionally misbehaves in other ways. But if you encounter a recurrent problem, or one that can't be fixed like this, do email us the details.

Switching between browser windows... or the unrequested running of the materialworlds editor.
Some strange behaviour can result from trying to have the same simulation open at the same time in different browser windows. Try to avoid this.

Any unanswered questions? Write to us at support@materialworlds.com