Skip to content

spacetypeco/generative-typography-FA20

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 

Repository files navigation

Generative Typography

  • Type@Cooper Public Workshop Fall 2020
  • 6:30–9:30pm, Thursdays, Oct 8th to Dec 17th
  • Instructors: Lynne Yun, Kevin Yeh
  • Course Discussion: Slack

Course Description

Since the invention of written language, typography as a practice has existed and adapted to the many forms of human expression — from being cast in metal to being manipulated within photographic mediums. Recently, the ability to engage in visual coding through the browser has become easier than ever, opening the doors for creatives to generate and digitally manipulate font structures and layouts to create new and exciting compositions.

This class will focus on generative design as it pertains to typography and letterforms. We will explore the building blocks of algorithmic art and apply those tools to manipulate digital type, which is, at its core, a series of data points. In addition to visual coding, the class will engage in critical discussions about the computational nature of creation. How does this differ from historical methods of typographic exploration, and what can we take from the past to build upon it? How do we create generative designs that are meaningful as opposed to frivolous?

P5.js will be the main programming library for the course, and students who are new to programming are welcome. Techniques covered in this course will include building visual compositions with code, manipulating pixel and vector data, and implementing them in real-time applications, such as computer-assisted handwriting and animation.

Learning Outcomes:

By the successful completion of this course, students will have:

  • Comfort in Javascript programming
  • Confidence in the P5.js environment
  • Critical reasoning as it applies to computational making
  • Familiarity with technological advances in typography
  • An understanding of digital structures for various data types (images, font files, etc)

Class Format

In the first half of the workshop, weekly lectures will tie together typographic and programmatic concepts, and browser-based projects will be assigned with specific goals.

Lots of in-class time will be devoted to working on projects, building programmatic skills, and discussing readings and concepts related to generative typography. You should expect to spend time outside of class gaining additional background and practice with the topics covered by the projects.

In the latter half, you will apply generative form-making tools as part of your design process in a self-selected medium, such as an interactive website, animated sequence, or dynamic branding identity. We'll hold 1:1 critique sessions to support your creative and technical process.

Throughout the course, we'll be available during class and on slack for all your questions, concerns, and ideas — along with your peers.

Initial Weekly Format

Time Description
6:30pm – 7:15pm Discuss Homework
7:15pm – 7:45pm Reading Discussion
7:45pm – 8:15pm Conceptual Lecture
8:15pm – 8:30pm Break
8:30pm - 9:30pm Technical Demo & Q/A

Course Outline

Subject to adjustment.

Week Topic Recordings & Sketches Assignments
1 Introductions, Overview, and Conceptualizing Programs Recording
Sketch Collection
Interactive piece
+ Readings
2 Art, Data, and Grids Recording Grid-inspired composition
+ Readings
3 Transformation Recording Static or kinetic typography composition
+ Readings
4 Glitch Art Recording Glitch Art-inspired composition
+ Readings
5 Movement and Animation Recording Mini Project Ideation
6 Mini Project - Ideation and Planning Recording Mini Project Draft
7 Student Presentations Final Project Ideation
8 Final Project - Ideation and Planning Final Project Draft
9 Final Project - Troubleshooting Final Project Progress
10 Student Presentations 🎉

Topic Sections

Section 0: Before the First Week

Section 1: Overview and Conceptualizing Programs

Class materials: Grid paper

6:30pm 👋 Roundtable Intros & Housekeeping

7:00pm 👩🏻‍💻 Semester Overview

Talking to Machines

  • Language as a Code System
  • Language is Image, Paper, Code & Cloth by Francesca Capone excerpt
  • First human computers

Type as Machine-Readable Data

  • Font as String
  • Font as Image
  • Font as Vector Coordinates

Thought Exercises

*~ Break ~*

8:15pm 👨🏻‍💻 Technical Demo

What is a Program?

  • Programming as Language
  • What is JavaScript?
  • Learning JS and p5
    • Reading documentation
    • Searching for answers

How Do I JavaScript?

  • Web Browsers and the JavaScript Console
  • Primitives and Conditionals
  • Mental Modeling
  • Debugging: Finding errors and their causes

Anatomy of a P5.js Sketch

  • Drawing Things!
  • The Execution Loop
  • Mouse Interactivity
  • Reading external images and fonts
  • Randomness

✏️ Week 1 Homework

Assignment

  • (beginner) Make an interactive brush tool
  • (intermediate+) Make a mini drawing program. Think about how people could swap between different kinds of brushes, change canvas color, etc.

Watch Video Tutorials

Readings

Note: Please be prepared to take a thought to bring back for discussion next week. (e.g. a quote that resonated with you, an opinion that you disagreed with, etc.)

(Optional Video Tutorials)

(Optional Readings)

📚 Technical Resources

p5.js tutorials:

Video-based: p5.js basics with Coding Train (Dan Shiffman): Code! Programming with p5.js

Text-based: tutorials via Allison Parrish

Official Documentation:

Practical Javascript:

Programming:

(for those who like to learn conceptually)

Additional Resources

Section 2: Art, Data, and Grids

6:30pm ✏️ Discuss Homework

7:00pm 📖 Class Reading Discussion

7:30pm 👩🏻‍💻 Early Generative Mediums & Artists

Generative Type Designers

  • MetaFont & Knuth
  • Hershey Fonts

*~ break ~*

8:00pm 👨🏻‍💻 Technical Demo

  • Automation and Repetition (Loops!)
  • Representing Collections (Arrays, Grids)
  • Fonts as Images (Arrays of Arrays)
    • RGB Grids
    • ASCII Art From Images
  • Functional Programming
    • Organizing Code
    • Programs within Programs

✏️ Week 2 Homework

Assignment

  • (beginner) ASCII/Typewriter Art inspired piece
  • (intermediate+) Creating Game of Life (Feel free to make a variation on it also)

Watch Videos

About For Loops

About Arrays

Using Webcam in p5.js

(optional but recommended)

Readings

(Optional Readings)

Additional Resources

Reference Books

Section 3: Transformation & Pattern Masking

6:30pm ✏️ Discuss Homework

7:15pm 📖 Class Reading Discussion

7:45pm 👩🏻‍💻 Generative Writers, Artists & Poets

Asemic Writing

  • Voynich manuscript
  • Xu Bing's Book from the Sky
  • Mirtha Dermisache
  • Anders Hoff Inconvergent

Early Computer Art

  • Manfred Mohr

Web Poetry

*~ break ~*

8:30pm 👨🏻‍💻 Technical Demo

  • Transformations (scaling, rotation, translation, shearing)
  • Creating Layouts (map)
  • WebGL and 3D

✏️ Week 3 Homework

Make a static or kinetic typographic piece.

Readings

(Optional) Video Tutorials

If you're not sure about transformations, concrete your understanding by going through one or two of these!

Text Based Tutorial

Video Based Tutorial

(Optional Readings)

Additional Resources

Section 4: Glitch Art

6:30pm ✏️ Discuss Homework

7:15pm 📖 Class Reading Discussion

7:45pm 👩🏻‍💻 The Aesthetics of Data Bending

  • The Aesthetics of Failure
  • John Cage, 4'33"
  • Glitch Art as Style & Statement
  • Examples of Digital Glitch Art
  • DIY Photo Glitch Exercise
  • Typography inspired by Glitch

*~ break ~*

8:30pm 👨🏻‍💻 Technical Demo

  • Breaking data down into components
  • Objects and Agents
  • Fonts as Vectors (Arrays of Objects)
  • Case Study; Point-based Manipulation
  • Case Study: Image-based Copy

✏️ Week 4 Homework

Create a Glitch-Aesthetic inspired piece.

🌱 PSA for Week 4

It is election week with lots of stressors going on! Please take time to take care of yourself first.

Readings

Optional Readings

If you want to read more...

(Similar material as above but different takes)

Additional Resources

Section 5: Movement and Animation

6:30pm ✏️ Discuss Homework & Tech Q/A

7:30pm 👩🏻‍💻 Inspirational Artists

  • Excerpt from Visual Grammar by Christian Leborg
  • Inspirational contemporary artists and designers

*~ break ~*

8:00pm 👨🏻‍💻 Technical Demo

  • Flow
  • Using math, flow over time, representing movement
  • Animation functions, easing
  • Following polyline paths — spirals etc.
  • Mouse movement paths
  • Image Layers & Masking

✏️ Week 5 Homework

You will be working on a mini-project of your own over the next two weeks. For next week, please come prepared to share your idea and a draft (so that you can ask for any technical help if need be :-))

Readings:

Doings:

(Optional) Readings:

Additional Resources for Ideas

Technical Resources

Mathematics of Animation

(Optional) Video to watch:


General Resources

Office Hours are here

Please reach out if you would like an alternative time slot! :-)

Accessibility

  • If your project is intended for people to interact with, check out Designing for accessibility is not that hard by Pablo Stanley. For us, this might mean things like:
    • Adding enough color contrast
    • Adding alt-text if applicable
    • Supporting keyboard navigation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published