Fil Salustri's Design Site

Site Tools



Recursion is an important aspect of design processes. It means the repetition of a series of tasks at a different level of detail.

Fig. 1: This is an animated recursive Mandelbrot. Recursion is not to be confused with iteration, another important part of design processes.

A recursive act is one that requires the act itself to be completed again for the first instance of the act to be complete.

For example, in order to move 10 objects such that the objects are in the same order, one would start by moving one object and noting its position in the original structure. Now the problem is reduced to “move 9 objects such that the objects are in the same order.” One recurses until only one object is left. Now one can reconstruct the same order in a different location by “unwinding” the recursion.

Recursion happens in many different ways. The acronym “GNU” stands for “GNU is Not Unix,” which makes it a recursively defined acronym.

In mathematics, there are many recursive functions; one of the most well-known is the Fibonacci number sequence.

The Wikipedia article on recursion gives many other examples.

Fig. 2: The (recursive) design process spiral.

In designing, recursion is applied as follows.

  • We wish to design a system or product.
  • To design the system, we must design its subsystems.
  • To design the subsystems we must design the sub-subsystems.
  • And so on, till we reach parts, which end the recursion.

Here is how recursion can be used to describe the design process.

The process starts with project initialization, then enters the recursive spiral.

The first time through, one treats only the product as a whole; that is, one starts by treating the product to be designed as a single “black-box” system. In the course of carrying out the first pass of the recursion, one establishes the major product systems and then embodies those systems.

One then recurses, repeating the design process for each of the major systems. Each system starts as an embodied black box, which one then models as a collection of subsystems. On the next pass, each embodied subsystem is modelled as a collection of sub-subsystems, and so on, till one gets to a level of detail that one can handle with parts or off-the-shelf (or outsourced) subassemblies.

design/recursion.txt · Last modified: 2020.03.12 13:30 (external edit)