The Hoot-Nanny, or Magic Designer as it is sometimes called, is a toy that was manufactured in Chicago by Howard B. Jones in the early 1900s. Using a system of gears and linkages, it moves a pencil around on a circular piece of paper to produce interesting and sometimes quite elaborate designs. The Hoot-Nanny simulator is a JavaScript simulation of the Hoot-Nanny toy.

In both the toy and the simulator, you can change one or more of several adjustments to produce different designs. On the toy, these are of course physical adjustments. On the simulator, you make the adjustments by specifying numerical values for the various simulator parameters. In order to understand the simulator parameters, it's helpful to have a mental image of the physical device. Here is a picture of the actual toy:

To use the toy, you put a piece of paper on the big black gear in the middle and then turn the little crank. This turns the big gear, which then turns the two smaller gears on the left. The two pins sticking up from the smaller gears make the long arms wiggle the pencil around in various ways while the paper rotates beneath it. That's what makes the designs.

There are basically three adjustments possible on the toy which can be set in myriad ways to produce a corresponding myriad of (mostly) different designs. These three adjustments are:

- The angular distance between the two small gears. This is controlled by the lever on the right side of the device.
- The positions of the two pins on the small gears. Each pin can be placed in one of eight holes in the corresponding gear.
- The lengths of the two pencil arms. These are set according to which of the arm holes are used to engage the pins.

The simulator has several more adjustments than the toy, as shown in the box to the left. Some of these correspond with the physical adjustments provided by the toy, while the others are possible in the simulator only.

**Angle Between Gears**This parameter specifies the angular distance between the two small gears, in degrees. The simulator accepts any value, but note that settings of this parameter that differ by exact multiples of 360 degrees will give the same design.- Length of Arm A and
**Length of Arm B**These parameters specify the lengths of the two arms, in arbitrary units.

**Radius of Pin A Circle**and**Radius of Pin B Circle**These parameters specify the radial distances from the centers of the two small gears to the corresponding pins, in arbitrary units. In the toy, the values possible for these adjustments are constrained by the locations of the holes in the gears. The simulator imposes no such restriction.**Angle Between Pins**At any time during the simulation, the bearings from the centers of the two small gears to the corresponding pins will differ by a constant angle. This parameter specifies that angular difference, in degrees. In the toy, the values possible for this adjusment are constrained by the locations of the holes in the gears. The simulator imposes no such restriction.

**Radius of Gear A Path**and**Radius of Gear B Path**These parameters specify the radial distances from the center of the big gear to the centers of the two small gears, in arbitrary units. These distances are fixed in the toy by its physical construction.**Number of Sides**The toy always produces designs with six-sided symmetry (like a snowflake). In the simulator, this parameter specifies the "sidedness" of the design. This parameter is usually specified as integer value, although non-integer values can sometimes produce interesting results.**Number of Traces**This parameter specifies how many times the simulator will run when the Draw button is pressed. This parameter is rounded up to the next higher integer value before use. On the first run, the simulator uses the parameters specified in the "Initial" column. For the second and subsequent runs (if specified), the simulator adjusts all of the parameters by the values specified in the "Change By" column so that a different design is produced each time. You can set the "Change By" values to anything you want, but you will get better results if you set only a small number of them (leave the others at zero) and if you set them to relatively small values compared with the initial values.**Step Size**This parameter specifies how far the simulator should turn the crank before calculating and drawing a new point in the output. If the step size is too small, the output will be smooth, but the simulation will take a long time. If the step size is too large, the simulator will run quickly, but the design may appear jagged and/or contain extraneous lines. So the trick is to set the step size as large as possible for the best performance, but not so large that the design appears jagged. A value of 1 is usually a good place to start.**Animate**If this checkbox is checked, the simulator will run slower than normal and will display each point on the screen as it is calculated. This lets you see the drawing as it develops. If the checkbox is not checked, the simulator will run as fast as it can, but the drawing will not appear until after it has been fully calculated.