CHI '95 ProceedingsTopIndexes
DemonstrationsTOC

Kidsim: End User Programming Of Simulations

Allen Cypher and David Canfield Smith


Advanced Technology Group
Apple Computer, Inc.
Cupertino, CA 95014
cypher@apple.com, dsmith@apple.com

© ACM

Abstract

KidSim is an environment that allows children to create their own simulations. They create their own characters, and they create rules that specify how the characters are to behave and interact. KidSim is programmed by demonstration, so that users do not need to learn a conventional programming language or scripting language.

Keywords:

end user programming, simulations, pro- gramming by demonstration, graphical rewrite rules, pro- duction systems, programming by example, user programming.

Introduction

KidSim is an environment that allows children to create their own simulations. There already exist drawing programs that allow children to create pictures of characters, but in order to create interesting simulations, children must also be able to create behaviors for their characters. This is traditionally a complex process, since it amounts to creating programs, and traditional programming languages are complex and abstract.

KidSim enables children to specify how characters are to behave and interact by providing a special graphical interface for specifying the spatial relationships between characters. In addition, KidSim provides a graphical interface for creating, testing and manipulating properties, which maintain information about the character. User interaction in KidSim is based on several Programming by Demonstration and Direct Manipulation techniques. These techniques allow users to create behavioral rules by demonstrating what the character is to do in a specific situation.

DEMONSTRATION

In this demonstration, we will show how KidSim can be used to create novel characters and to specify the behavior of those characters.

We will create characters, draw a variety of appearances, define some properties, and create behavioral rules based on these appearances and properties.

For instance, when a character that is facing to the right encounters an obstacle to its right, we can create a rule to specify that the character is to change its appearance so that it faces to the left. Also, we can create an energy level property, and make a rule that decreases the character's energy level by 1 every time it takes a step. A rule can also indicate that the character is able to move only if its energy level is greater than 0.

SAMPLE SIMULATIONS IN KIDSIM

KidSim has been used by children and adults to create a wide variety of simulations. We will demonstrate various simulations built in KidSim, to show the range of capabilities of the tool and to show what people of different ages are able to accomplish with it.

KidSim has been used to simulate fish in the ocean, creatures in a 2-dimensional world, melting ice, PacMan, Conway's game of Life, a blocking-strategy game, and a variety of maze and adventure games.

The FIGURE on the following page shows a KidSim screen, with a simulation of fish in the ocean. The simulation itself appears in the upper left. On the right, the user has opened two notebooks, one for a clown fish, and the other for a shark. The upper notebook is open to the Rules page, showing rules for eating, mating, and swimming. The lower notebook is open to the Properties page, showing the character's name, and the user- created properties of energy level and hunger. At the bottom of the screen is the Rule Editor, which is displaying the swim rule. This rule states that if a clown fish has an empty space to its right, and if its energy level is greater than 0, it will move one square to the right.

FIGURE 1 No caption given.

For more details and references, please see the paper "KidSim: End User Programming of Simulations" in the conference proceedings.