Designing computer programs in which rules written in a spatial programming language in some sense resemble the programmatic output that they will generate.
Most programs are written using collections of symbols. These function as abstract signifiers that do not in any sense resemble the output that they will generate. They are interpreted according to convention.
Spatial programs instead use icons, signifiers that are similar to the things that they are intended to signify and produce.
A symbolic program could be written such that
circle() is a function that generates a circular geometry on the screen. Alternatively, a spatial program might allow us to type
O, with this character clearly being circular in form.
The output is not necessarily visual. For example, in a music program
O could represent an audio loop. In this case, we would be using a spatial metaphor, where the sound "goes around in a circle" and "returns to a start position".
In some applications, the term "spatial programming" may offer more clarity than related concepts like "graphical" or "visual" programming. Most programming environments are visual, regardless of the nature of the signifiers. Similarly, "graphical" could refer to characters, pictures or icons, as all are still rendered on a graphical interface. Spatial — or iconic — programming highlights the distinction of there being a salient resemblance between input and output. These icons could be depicted as characters in a text editor or as draggable pictures on an interactive canvas, as long as they are similar to what they generate.