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.
Related Concepts
Related Entities
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