Algorithmic Textiles Design: Algorithms and Fabrication (notes)
Where does code come into play in fabrication? Well, there are probably lots of taxonomies out there, but for the purposes of discussion in this class we will divide this space into two areas: "Engineering" code and "Artful" code.
- "Engineering" code is code that is testable, and can be objectively correct.
- "Artful" code is code that is critique-able, and can be subjectively correct.
I want to highlight this division because we are going to be writing both sorts of code in the class -- possibly inside the same project -- and when we talk to each-other about the code we are making we need to be aware of this difference, because it will influence the kind of feedback we give each-other.
We can come up with further sub-categories within these larger sets, and fill them with some examples -- again, not an exhaustive or exclusive categorization, but a useful way to guide our thinking and ideation:
- Engineering Code:
- Assistant Code:
- Performs optimization so that fabrication jobs run faster.
- Automates low-level tasks.
- Converts data formats.
- Iterates/repeats.
- Extends your artistic ability by doing simple tasks for you.
- Inverse design / CAM -- develops machine motions or structures based on user-specified targets.
- Visualization Code:
- Shows you what a machine might make.
- Validates patterns (checks for machine errors).
- Simulates physics.
- Driver Code:
- Runs the machine.
- Recovers from errors.
- Performs safety checks.
- Assistant Code:
- Artful Code:
- "Generative" code:
- Might use randomization.
- Makes something different or unexpected.
- You give up some direct creative control (though you are still in charge)
- Is a [second-class] collaborator.
- Extends your artistic ability by performing more complex or random tasks for you.
- Might require curation of its output.
As the class progresses, we'll be referring back to this taxonomy to try and make sense of the code we're considering. We might even come back and try to add real examples to each category.