Software Structures

Definition

A software structure is an artistic methodology defined by Casey Reas where a generative program is conceived and specified in natural language descriptions and visual diagrams before and independently of any machine code implementation.

Key Characteristics

  • Decoupled Architecture: Separates the foundational concept and visual relationships from specific programming languages, hardware substrates, or rendering frameworks.
  • Natural Language Specification: Utilizes written English and diagrammatic scores to leave space for interpretive ambiguity and diverse algorithmic realizations.
  • Multiplicity of Execution: Allows a single conceptual structure to yield dozens of varied visual manifestations depending on the draftsperson, platform, or environment.

Applications

  • Generative & Computational Drawing: Structuring generative art systems (e.g. in Processing, p5.js, openFrameworks).
  • Curriculum & Studio Pedagogy: Teaching computational thinking by asking students to write drawing instructions in plain text before implementing them in code.
  • Digital Preservation: Preserving the conceptual rules of an artwork independent of software obsolescence.

Mentions in Source

  • β€œThe work develops in the vague domain of image and then matures in the more defined structures of natural language before any thought is given to a specific machine implementation. I’m calling this type of program a software structure.” β€” {Software} Structures
  • β€œThere is a complete separation of the concept of the work from its perceptual manifestation.” β€” {Software} Structures