Reference articles on history, science, culture and more
Encyclopedia

Bouncing Ball (computer program)

1951 computer animation

Bouncing Ball was an early interactive computer graphics program developed for the Whirlwind I computer at the Massachusetts Institute of Technology (MIT) in the early 1950s. Initially created as a physics demonstration simulating the motion of a bouncing ball, the program was later adapted into an interactive game in 1952 or early 1953 through the addition of a target hole in the floor of the display. Bouncing Ball is one of the earliest examples of animated computer graphics. It is one of two games known to have been developed for Whirlwind, alongside a blackjack program probably written between 1954 and 1959 (according to Guy Fedorkow).

01Simulation

The original bouncing-ball simulation was developed for the Whirlwind I computer, a pioneering real-time digital computer constructed at MIT for the U.S. Navy. Whirlwind I became operational in 1951 and was among the first computers capable of displaying real-time graphical output. The program was first developed by student Oliver Aberth in February 1951, prior to the computer's completion in April. It features a point of light moving across an oscilloscope display, first showing a plane designated as the ground, then as a bouncing point moving from the upper left. The movement is defined by differential equations using the mass, initial velocity, and coefficient of restitution set for the ball, as well as the gravitational constant of the simulation. Whenever the ball hits the ground, a sound plays.

The program was demonstrated to the public at an Open House Day in April, 1951, where the 'gravity' setting could be adjusted to show the trajectory of the bouncing ball on the Moon, on Earth, and on Jupiter. The program was first described in detail, with sample code, in the June 11 technical report Programming for Whirlwind I. Later reports attributed the program to Charles W. Adams, assistant professor of digital computers, with a development date of 1949.

Page from the programming manual for Whirlwind I, featuring a description and illustration of the 'bouncing ball' program
Page from the programming manual for Whirlwind I, featuring a description and illustration of the 'bouncing ball' program

02Game

After its demonstration, the Bouncing Ball program was used as a student exercise in classes by Adams. Sometime between 1951 and February 1953, when it was first documented, Adams and John T. Gilmore modified the program to add a small hole at the bottom of the screen for the ball to fall through, and to allow the user to turn a knob to adjust the frequency of the bounces. This was a substantial change to the program, taking it from about 32 words in length to around 300. After the modification, the members of the lab treated this interactive demo as a game by challenging themselves to set the frequency perfectly to hit the small hole in the floor.

The film Making Electrons Count, believed to be from 1953, shows Bouncing Ball in action, including the hole, with the commentator describing it as a simulation of the differential equations representing the motion of a ball.

03Legacy

Bouncing Ball is one of the first computer programs in the early history of video games, and is the first known game incorporating graphics that updated in real time. It was contemporaneous with Christopher Strachey's Checkers (1952), Alexander S. Douglas created OXO (1952), and Stanley Gill's Sheep and Gates (1952), all of which were also early mainframe games using a visual display. According to media historian Carlin Wing, re-creating Bouncing Ball became a standard programming challenge in the 1950s. He claims that by 1958, they were ubiquitous enough to be included in instruction manuals for analog computers such as the Donner Model 30, and may have inspired William Higinbotham for his creation of Tennis for Two (1958), one of the first computer games created solely for entertainment. Spacewar! (1962) was created at MIT by computer scientists who had direct experience of coding their own bouncing ball programs.

Watch videos about Bouncing Ball (computer program)Explainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Bouncing Ball (computer program), written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Images, from Wikimedia Commons:

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.