The Anishinaabe built some structures using only a single arc: snowshoes, bows, lacrosse sticks, dreamcatchers, cradleboards, and basket rims. They also built more complex structures containing many arcs, such as the wiigwaam, longhouse, and canoe. These often change their height and width in very orderly ways as you add each arc. In computer science this orderly list of instructions is called an "algorithm." The repetition of these instructions is called "iteration," and the values that change in each iteration, such as arc size and shape, are called "variables."

Darrick Baxter, an Ojibwe software developer who created his own language app, suggests that the term “variable” would translate to “Daa-aanjisemagan,” which means “thing that could change.” Iteration is even easier, it simply means repeat (“naabinootaw”).

Using the software on this website, you can create 3D simulations of these traditional "anishinaabe algorithms" as well as create your own designs.

The wiigwaam has arcs along two axes, east-west and north-south. Saplings are placed on either side and lashed in the center. The open square at the top forms the smoke hole. Often wiigwaams are hemispheres, which offers the maximum volume for a minimum surface area (preventing heat loss).

The Lenape longhouse also has arcs along two axes, and its layout is a long rectangle (up to 150 feet!) with semi-circular ends.

Anishinaabe Algorithms

An algorithm is just a list of instructions telling you what to do, like a recipe. Let’s take a look at a specific Anishinaabe algorithm for building a canoe. What is the daa-aanjisemagan—the thing that could change—for the canoe? Canoes only have arcs across one axis, and those arcs have to change width as you move from the bow. So the algorithm first has to set the starting with of the first arc. Lets say that's about 6 inches. Then we can increase the width, by about 8 inches, each time we naabinootaw (repeat). We can translate that traditional algorithm into a programming language: