Appearance
Class: Creative Coding | DM-GY 6063 B Term: Fall 2023 Instructor: Andrew Cotter Location: 370 Jay Street, Room 312, Brooklyn Campus Instructor Email: andrew.cotter@nyu.edu Class Time: Mondays, 6:30PM - 9:20PM
Course Description
This course is an introductory programming class, appropriate for students with no prior programming experience. Traditionally, introductory programming teaches algorithmic problem-solving, where a sequence of instructions describe the steps necessary to achieve a desired result. In this course, students are trained to go beyond this sequential thinking – to think concurrently and modularly. By its end, students are empowered to write and read code for event-driven, object-oriented, graphical user interfaces.
Prerequisites
This class assumes a high degree of computer literacy, but not a high degree of programming ability. We will be learning computer programming in a platform-generic way, however all examples will be demonstrated in Javascript using the library p5.js (p5js.org). Having previous coding experience in Javascript, Java, C++, or Python is a plus, but not a must.
Important Dates
- First day of classes : Tues, Sept 5
- Add/Drop ends : Mon, Sept 18
- No classes: Mon, Oct 9
- Classes meet on a Monday schedule : Tues, Oct 10
- No classes: Wed, Nov 22 – Fri Nov, 24
- Last day to withdraw with a ‘W’: Mon, Dec 4
- Last day of classes : Fri, Dec 15
- IDM Showcase : Weekend of Dec 16
- Exam days: Dec 18-22
Course Objectives
In this course students will:
- develop conceptual thinking skills to generate ideas and content in order to solve problems or create opportunities.
- develop technical skills to realize their ideas.
- develop critical thinking skills that will allow them to analyze and position their work within cultural, historic, aesthetic, economic, and technological contexts.
- gain knowledge of professional practices and organizations by developing their verbal, visual, and written communication for documentation and presentation, exhibition and promotion, networking, and career preparation.
- develop collaboration skills to actively and effectively work in a team or group.
Program Objectives
- At a graduate level, students will develop conceptual thinking skills to generate ideas and content in order to solve problems or create opportunities.
- Students will develop a research and studio practice through inquiry and iteration.
- At a graduate level, students will develop technical skills to realize their ideas.
- Students will understand and utilize tools and technology, while adapting to constantly changing technological paradigms by learning how to learn.
- Students will be able to integrate/interface different technologies within a technological ecosystem.
Course Structure
Our section of Creative Coding will be meeting in person, once per week. Technical Lectures will be provided. Students will also have access to class slides and whiteboard notes, as well as additional technical video content on specific subjects. You will have homework and project assignments based on the material covered in class. These assignments will have specific prerequisites, but as the semester goes on will allow for greater and greater flexibility. You will be expected to present your completed work to the class on a weekly basis, demonstrate it’s functionality, and receive critiques of the work. You will also be expected to engage with and provide critique on the work of your classmates.
Course Materials
Expectations for Work Outside the Classroom
Students should expect to spend roughly 5 hours each week on supplemental work in this course. This may include reading assignments, writing, exam preparation, research, homework assignments, building, writing code, study time, unsupervised lab work, unsupervised group work, etc.
Required Material
Please be prepared with the following material for the course. Software
- A text editor - I recommend VSCode as this is the text editor I will use in class, but any similar application like Atom or Brackets should be acceptable.
- The Arduino IDE
- Physical Computing Supplies (to be elaborated on later in the semester)
- An online account for the p5.js Online Editor
- Pens for Sketching (Black, Red, Green, Blue)
- Sheets of Graph Paper
Suggested Resources
Readings
There are no required books for class. Readings will be distributed as PDFs. Some relevant titles that you may want to look into include :
- Make: Getting Started with p5.js, by Lauren McCarthy, Casey Reas and Ben Fry
- Generative Design by Benedikt Gross, Hartmut Bohnacker, Julia Laub, Claudius Lazzeroni
- Interaction of Color by Josef Albers
- Getting Started with Arduino by Massimo Banzi and Michael Shiloh
Media Feeds
Weekly, you’ll be asked to create a “Looking Outwards” assignment where you review a digital work. Here is a selection of media feeds where you might find an example to review.
- Creative Applications
- Eyeo Festival Videos
- Media Art Tube
- Ars Electronica (YouTube)
- Cinder Gallery
- Networked Performance
- Neural.it
- OpenProcessing
- Vimeo: openFrameworks
- Vimeo: Processing
- ZKM Video Archive
- r/CreativeCoding
Policies
Absences
Students are expected to attend all lectures for the course. You must notify me prior to the lecture if you are unable to attend. If you miss a lecture, without notifying me, this will count as an unexcused absence. Students will be expected to make up any missed work from an excused or unexcused absence.
Tardiness
If you are more than 5 minutes late to a lecture, you will be considered tardy. Every two tardy marks, will equate to one unexcused absence.
Unexcused Absences
Two unexcused absences will result in a drop of one full letter grade. (An “A” becomes a “B”). Three unexcused absences will result in the drop of two full letter grades. (An “A” becomes a “C”). Four or more unexcused absences will result in an automatic failure of the course.
Academic Integrity
Violations of academic integrity are considered to be acts of academic dishonesty and include (but are not limited to) cheating, plagiarizing, fabrication, denying other access to information or material and facilitating academic dishonesty, and are subject to the policies and procedures noted in the Student Handbook and within the Course Catalog, including the Student Code of Conduct and the Student Judicial System. Please note that lack of knowledge of citations procedures, for example, is an unacceptable explanation for plagiarism, as is having studied together to produce remarkable similar papers or creative works submitted separately by two students, or recycling work from a previous class.
Please review NYU's School of Engineering's academic dishonesty policy in its entirety. Procedures may include, but are not limited to: failing the assignment, failing the course, going in front of an academic judicial council and possible suspension from school. Violations will not be tolerated.
All work for this class must be our own and specific to this semester. Any work recycled from other classes or from another, non-original source will be rejected with serious implications for the student. Plagiarism, knowingly representing the words or ideas of another as one’s own work in any academic exercise, is absolutely unacceptable. Any student who commits plagiarism must re-do the assignment for a grade no higher than a D. In fact, a D is the highest possible course grade for any student who commits plagiarism.
A Special Note on Open Source and "Found Code"
There's an amount of sharing and re-using that will happen in this course due to the open source nature of the libraries, tools and learning materials we will be using. Plus a lot of assignments will be turned in using github, a platform for sharing code and other content.
Nonetheless, we have to be careful and conscious about the difference between using available tools that help with our learning experience and submitting other people's work as our own. It's not hard to find code online that will do things similar to, or exactly alike, the things you will developing for this class. It is NOT ok to use those as part of an assignment or project for this class.
On the other hand, it's also not hard to find code/libraries/packages/examples that solve specific technical tasks that are part of a larger project or assignment. For example: a library that converts gifs into movies or code for working with different text encodings. These are specific tasks that we aren't going to solve on our own, so using an open source solution is acceptable and expected.
You are expected to cite any tutorials, examples, libraries or inspiration that you use for our work. Sometimes the authors have a specific way they'd like their work cited (CC licenses), otherwise a name and a link is fine.
TL;DR: Copying assignment code from other sources, using any code from other sources with only slight modifications or using any code from other sources without a reference is plagiarism.
If there are questions about a specific situation, please ask.
A Special Note on LLMs and Large Diffusion Models
This is a class about creative uses of technology, and LLMs and interfaces like ChatGPT, Midjourney, etc definitely have their place in discussions about technology, society and creativity. Being in the environment we are in, it has become impossible to ignore these tools.
You may use AI interfaces to help generate ideas and images as it pertains to the brainstorming or ideation portions of a project and/or to generate images for presentations, as long as proper credit is given.
You may NOT submit any work generated by these interfaces as your own.
Given that this is an introductory course to programming, and we're all starting fresh, there won't be a situation that will warrant the use of these tools for generating code. Save that for a future when you might have to write tedious software for parsing/flipping/transforming database entries. There should be an aura of fun to the code you are writing, and a sense of accomplishment in learning how to make computers do unexpected things, that doesn’t justify the use of tools that generate code.
Likewise, writing/response assignments will be short and personal, asking not only for your understanding of the material, but also your thoughts, interpretations, opinions and concerns about certain topics related to art, design, society and technology. Don’t sell yourself short! I want to hear your voice and words regarding these topics.
As always, if there are any questions about a specific situation, just ask.
Ask First
If you have a question as to whether or not the work you are attempting to submit is plagiarism, ask first, do not submit first. I am happy to discuss the nuances in detail.
Logistics
Assignments
You will be expected to create a class blog and create a post for each assignment completed. Assignments will have various expectations, including photo and video documentation of your work, photos of sketches and preparatory materials, and links to functioning projects / code used to create those projects.
Code
Most assignments will be submitted using a combination of the p5.js online editor and GitHub.
Class Communication
Assignment and lecture updates may be posted by email to your NYU Emails.
Slack
Questions, comments, assignment, and lecture updates may also be posted to a classroom slack channel. Please stay tuned for more details.
Office Hours
Weekly
Each week, I’ll aim to have at least an hour of open time where anyone can jump into a video channel and ask questions. This can be used for help with assignments, or review. Attending these office hours with questions is very helpful, but not required. You should ensure that you have reviewed the weeks asynchronous material prior to joining the office hours however so that we can make the most of our time!
By Request
If you are unable to attend the stated office hours, you may request additional help. Send me a message and we’ll work out additional times that work best!
Grading
Breakdown
Weekly Assignments: 25% Looking Outwards Responses: 10% Midterm Project: 20% Final Project: 35% Class Participation: 10%
Midterm Project
Your midterm project is designed to demonstrate competency in the core programming skills addressed by the course. In this section, you will also be expected to add a personal touch to your midterm project. More details to come towards the middle of the semester.
Final Project
Your final project will be a self directed exploration of creative coding concepts and techniques. You will be expected to design, prototype, and execute a functioning project that deeply explores various new media techniques, demonstrates mastery of several skills, and stands on its own as a compelling work. More details to come toward the end of the semester.
Weekly Assignments
Each week, you’ll be expected to create at least one software sketch that demonstrates core programming concepts and/or creative coding techniques. You’ll be expected to document your work, any problems you encountered, and any questions you have. We will spend time in class reviewing these assignments, and the concepts covered. Additionally, there may be weekly readings, accompanying videos, and “Looking Outwards” assignments which require you to find work related to the concepts we are discussing on a weekly basis.
Late Work
You must submit your work by the assigned due date. You will lose a letter grade for any work that is submitted up to 1 day after the deadline. Any work submitted after over 24 hours late will receive an automatic failure, unless you have an excused assignment, or assignment extension granted by the professor.
Documentation
Documentation is expected to cover both the work itself, and your process of creating the work. Each assignment will be accompanied by an online blog post showing the final work, in progress sketches, photos, and videos, and commentary on your process. You absolutely should be documenting your work as you go. For interactive projects, you’ll be expected to have a section of your documentation that describes how your project works, and how someone might use it.
Do not save this until the last minute. Document as you go. Some assignments may ask for specific documentation elements. The quality of your documentation will impact your final assignment grade, so make sure that text, photos, and video documentation are of decent quality.
Critique and Review
The work we create weekly will be reviewed and critiqued by your classmates. These critiques should be seen as an opportunity for constructive feedback to be provided and received on all aspects of the work we create. This process may be done both over video chat, and through asynchronous comments on your work, and will contribute to your final class participation score.
Academic Accommodations
If you are a student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities at 212-998-4980 or mosescsd@nyu.edu. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at http://www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor.
If you are experiencing an illness or any other situation that might affect your academic performance in a class, please email the Office of Advocacy, Compliance and Student Affairs: eng.studentadvocate@nyu.edu.
Statement on Inclusion
The NYU Tandon School values an inclusive and equitable environment for all our students. I hope to foster a sense of community in this class and consider it a place where individuals of all backgrounds, beliefs, ethnicities, national origins, gender identities, sexual orientations, religious and political affiliations, and abilities will be treated with respect. It is my intent that all students’ learning needs be addressed, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. If this standard is not being upheld, please feel free to speak with me.
Semester Schedule
Below you will find a list of weekly topics. Examples and other information will be sent to the class via Slack. Note: This schedule is likely to change as the semester continues.
Week 1 Wednesday Sept. 11th
Content
- Syllabus Review
- Class Introductions
- Lecture / Discussion Topics: What is "Creative Coding"?
- Pixels on a screen - the coordinate system
- Setting up a local dev environment p5.js online editor
- Drawing with p5.js
- Brief intro to color
Assignments Due: 9/18 by 12PM ET
- Watch videos on variables and conditionals.
- Create an online blog for the class and post the link on the class Slack channel.
- Create a Selfie or a Sol Lewitt project and post a link to it on your blog.
- Read Delusions of Dialogue: Control and Choice in Interactive Art by Jim Campbell. Access provided online by NYU library. Write a 150 - 200 word response to this on your blog. What do you think of Campbell’s articulation of art in a computer? How does it relate to your own work?
- Read pages 10-41 ‘What is Code’ and ‘From and Computers’ in FORM+CODE available online though NYU Libraries.
- (Optionally) Read Getting Started With p5.js Chapters 1-3. Online access provided by NYU libraries.
Week 2: September 18th
Content
- Review Selfie or a Sol Lewitt project.
- Q&A time.
- Lecture / Discussion Topics:
- Animation
- Time Assignments Due: 9/25 by 12PM ET
- Watch videos on loops 1 2 and functions 1 2.
- (Optionally) Watch video on translation 1 2 3.
- Create an Animation project.
- Read p5.js Tutorial on interaction, in particular pay attention to the section on Events. The aspects in the article that describe
mouseOver()
andmouseOut()
are our of scope for our discussion at the moment, so don’t worry if you don’t entirely get what it’s describing. - Read The Art of Interactive Design Chapter 1(Online access provided by NYU libraries) and What Screens Want. Write a response to this on your blog:
- Based on how Crawford defines interaction, would you consider a book to be interactive? What about a plant you need to care for? How about a puppy? What about your sketches?
- According to Chimera, how are animation and interaction related? How does this relate to your own work in p5?
- (Optionally) Read Getting Started With p5.js Chapters 4-6. Online access provided by NYU libraries.
Week 3: September 25th
Content
- Review Animation project.
- Q&A time.
- Lecture / Discussion Topics:
- Object Oriented Programming (OOP)
Assignments Due: 10/2 by 12PM ET
- Watch videos on objects and arrays.
- Read Objects of Our Affection : How Object Orientation Made Computers a Medium by Casey Alt. Online access provided by NYU libraries. It’s a denser read than the other things we have engaged with so far, so give yourself some extra time. Write a response to Alt’s chapter. He argues that computers became “media” and were no longer just big adding machines when data and interface became rolled into one. With your newfound perspective on what object oriented programming is thanks to the videos above, how do you think this changed computation? What does this provide you? How can you see this being useful?
- (Optionally) Read Getting Started With p5.js Chapters 10 & 11. Online access provided by NYU libraries.
- Create a Dance Party with objects.
Week 4: October 2nd
Content
- Review Dance Party project.
- Q&A time.
- Lecture / Discussion Topics:
- Organizing your code into multiple files
- Pseudocode Assignments Due: 10/10 by 12PM ET
- Watch videos on debugging, objects talking with other objects, more about arrays.
- Read the p5js guide on debugging.
- Create an Interaction project.
Week 5: October 10th
October 10th, Fall Break - No Classes on Monday Classes meet on Monday schedule (no Tuesday classes) : Tues, Oct 11 Content
- Reviewing Interaction homework
- Using Time in Our Sketches ○ day(), hour(), minute(), millis(), month(), second(), year()
- Javascript Data Object
- Introduction to Midterm
Assignments Due: 10/16 by 12PM ET
- Watch this video on working with APIs and JSON
- Read Chapter 1 of Living in Data by Jer Thorp and Sarah Groff Hennigh-Palermo's Eyeo Talk on data. Reflect on how data informs the stories we tell.
- (Optionally) Read Getting Started With p5.js Chapter 12 on Data. Online access provided by NYU libraries.
- Create a Data project
- Write a proposal for your midterm project. This includes a narrative description and a high level pseudocode explainer. Add sketches, gifs, and images as appropriate. Identify where you expect to run into trouble, or where you think you will have a gap in your knowledge.
Week 6: October 16th
Content
- Review Data project.
- Q&A time.
- Lecture / Discussion Topics:
- Working with libraries
- Discuss midterm project proposals.
Assignments Due: 10/23 by 12PM ET
- Watch videos on the DOM and the sound library.
- (Optionally) Read/watch tutorials on the scribble and/or RiTa libraries.
- Create a sketch using a JavaScript Library. (here's a bunch that play nice with p5js)
- Continue to work on your midterm. You should have progressed to a point where you have a skeleton that has some basic functionality. You've fully outlined out as pseudocode/comments what functions, classes and objects you will need and what they will do.
Week 7: October 23rd
Content
- Review JavaScript Library assigment.
- Q&A time.
- Midterm workshop.
Assignments Due: 10/30 by 12PM ET
- Watch video on image manipulation.
- Read these notes on video and image manipulation.
- Finish your midterm project. Write a post about your work, describing what you did and why you did it. Take a step back and refelct on what you would have done differently (if anything!) and the challenges you faced/overcame - this could be conceptual, technical, or aesthetic. Explain how you might continue to work on this project if you had the time and motivation to do so. Remember, your project must have the following elements : 1) pseudocode of what you set out to do, 2) well commented code that explains what functions, classes, and objects are doing in your program 3) clear attribution with links to other’s code as appropriate.
Week 8: October 30th
Content
- Midterm presentations:
- Everyone will have 5 minutes to present their work. Show what you did, share the link in the chat, and describe your process. What did you learn from this exercise?
Assignments Due: 11/6 by 12PM ET
- Watch the videos on your Arduino kit and Electricity and Circuits.
- Read these notes from Sparkfun on how electricity works.
- Build a switch.
Week 9: November 6th
Content
- Review switches.
- Q&A time.
- Lecture / Discussion Topics:
- Using a multimeter
- Switches Assignments Due: 11/14 by 12PM ET
- Read/Watch the tutorials on setting up the Arduino IDE, what all those pins on your board do, and digital input / digital output
- Read this article from Don Norman, Attractive Things Work Better.
- Build a feedback system for your switch.
Week 10: November 13th
Content
- Review feedback systems.
- Q&A time. Assignments Due: 11/20 by 12PM ET
- Watch videos on analog input & output and servos and libraries.
- (Optionally) watch video on building a capacitive touch sensor
- Build a Multi-input / Mulit-output machine.
Week 11: November 20th
Content
- Review multi input and output machines.
- Q&A time.
- Discuss Final Project
- Lecture / Discussion Topics:
- Serial communication Assignments Due: 11/27 by 12PM ET
- Watch the video on serial communication.
- (Optionally) Watch the video on Bluetooth communication.
- Build a sketch with a physical interface.
- Write a proposal for your final project. This includes a narrative description and a high level pseudocode explainer. Add sketches, gifs, and images as appropriate. Identify where you expect to run into trouble, or where you think you will have a gap in your knowledge.
Week 12: November 27th
Content
- Review sketch with a physical interface.
- Q&A time.
- Review final project proposals. Assignments Due: 12/4 by 12PM ET
- Start working on your final project. Write up a block diagram or pseudocode of your project. Think about all the materials, libraries or code you will need. Start the implementation of your projects!
Week 13: December 4th
Content
- Final Project workshop. Assignments Due: 12/11 by 12PM ET
- Keep working on your final project. Make sure to do user testing as you keep prototyping.
Week 14: December 11th
Content
- Final project presentations Assignments Due: 12/15 by 12PM ET
- Finalize your final project based on feedback.
- On your blog, document your final project. This sould include sketches, links to code or the project itself, video, images, etc. Write a description of the process you took to make it. What influenced you? What were you trying to convey with your work? Did you rely on the work of others? be sure to link to those resources and describe how you used them. What would you have done differently if you knew then what you know now? What woudl you do if you had more time to to work on this?
Projects
Week 1: Selfie or Sol
Create one of the following and post a link to the sketch on your website: p5 Selfie Using primitives like arcs, rectangles, and ellipses create a self portrait and post a link to it on your class blog.
Sol Lewitt drawing exercise. As precisely as possible, follow the instructions of one Sol Lewitt wall drawing text and translate it into p5.js code to produce the drawing. Look at Solving Sol as a reference and for inspiration. Choose one wall drawing text from the following list, write the code and post a link to the project on your class blog:
- Wall Drawing #65 (1971): Lines not short, not straight, crossing and touching, drawn at random, using four colors, uniformly dispersed with maximum density, covering the entire surface of the wall.
- Wall Drawing #396 (1983): A black five-pointed star, a yellow six-pointed star, a red seven- pointed star, and a blue eight-pointed star, drawn in color and India ink washes.
- Wall Drawing #915 (1999): Arcs, circle, and irregular bands.
Week 2: Animation
Create one of the following and post a link to the sketch on your website: Clock Design a "visual clock" that displays a novel or unconventional representation of the time. Your clock should appear different at all times of the day, and it should repeat its appearance every 24 hours (or other relevant cycle, if desired). Challenge yourself to convey the time without numerals. Rather than making a clock that's analogous to a real-world clock, it should be a more abstract way of telling time. You are encouraged to question basic assumptions about how time is mediated and represented. Ponder concepts like biological time (chronobiology), ultradian and infradian rhythms, solar and lunar cycles, celestial time and sidereal time, decimal time, metric time, geological time, historical time, psychological time, and subjective time. Inform your design by reading about the history of timekeeping systems and devices and their transformative effects on society. Emotive Using your mouse and a simple shape (rect, ellipse, arc, triangle, line, polygon), create an interaction that causes the shape to demonstrate an emotion. It could be fear, attraction, desire, exhaustion. Your choice. Obviously mouseX and mouseY are helpful. Examples like this easing function might be inspirational, as would notes from the 12 principles of animation. Give consideration to how you can impart emotion through motion.
Week 3: Dance Party
Watch the video for Around the World by Daft Punk. While you’re enjoying the music, think about how each of the different dancers/monsters in the video are like an object. They are similar, but have their own behaviors. Create a sketch that has a dance party. Use multiple instances of a class, or create multiple classes and many objects that have their own dance party. Your idea of a dance party may not have actual bodies, that’s ok. Explore different kinds of ways of creating objects with unique behaviors. Post this on your class site.
Week 4: Interaction
Create one of the following and post a link to the sketch on your website. For either example, write the sketch as pseudo-code first, then fill in your code afterwards. Creation Create a sketch that adds objects based on interaction (mouse press, keystroke, etc) that interact with each other (collision, repulsion, etc.) Face Generator create a sketch that makes faces which have multiple dimensions of variability (skin color, eyes, ears, mouth, hair, age, etc). A new face should be created every time you click the mouse.
Week 5: Data
Create a sketch that calls an API, processes the data, and visualizes it somehow. A non-exhaustive list of publicly available APIs can be found here, and there's plenty of publicly available APIs a decent google search away. As noted in class, be careful of APIs that don't have CORS compatibility. Make sure that an API .
Week 6: Library
Create a small sketch that uses a library to enhance a sketch. For example, use the DOM to create sliders or buttons for interfaces, use peasycam to navigate a 3D space, use p5.scribble to mimic hand drawn images, etc etc etc.
Midterm
Your midterm assignment is designed to demonstrate competency in the fundamentals of object oriented programming. We will discuss the specifics of this a few weeks before it is due. You will make your own interactive, screen based artwork. Your sketch needs to contain at least 2 objects (they can be from the same class) that behave independently from one another. Taking into consideration responsiveness, accessibility, and aesthetics there should be some form of interaction for your audience. This could be through keypresses, mouse movements, GUI objects, etc. You should feel free to use APIs libraries or any other thing we have discussed in class to date. Your code must be clearly and thoroughly commented throughout - indicating what is your original contribution and what you have gotten from elsewhere.
Week 8: Switch
Build a circuit with a switch you make on your own that can be operated without using your hands. Think about what you have that is conductive. Aluminum foil works well. Be careful you do not cause a short! Always unplug your Arduino before changing anything in your circuit, and check to make sure there are no loose wires.
Week 9: Feedback
With the switch you built last week (or a different one if you want to experiment) use the Arduino to provide some meaningful feedback on what the action you engage in means. For example — if you are trying to notify someone that their posture is good or bad, could you make a switch that was based on how they stood, and notify them if they are not straight? What about getting someone to smile for a camera? Using the digital input and output provide feedback to your user that is meaningful in context. Labeling LEDs with text, or using different colored lights to indicate things is helpful, try diffusing the light with paper or a ping pong ball, how does that change the quality of the light?
Week 10: Multi Input - Multi Output
Using analog inputs and analog or digital output, design and make a machine that two or more people can use. Before you decide on your components, figure out what your machine is and needs to do. Do all users interact the same way? How do you use outputs from your machine to let users know that they're interacting the way the you intended? User test your machine and iterate on your work based on your feedback. Make sure to document your user testing in addition to your other process documentation.
Week 11: Sketch with Physical Interface
Build a sketch with a physical interface - take one of your early p5 sketches and make it controllable with a switch, potentiometer or any other sensor, using serial or Bluetooth communication. Alternatively, create a new p5 sketch that reacts to some sort of input. How does this change in control transform the experience of using the sketch?
Final
Your final project is wide open. This is your opportunity to create work that leverages the various tools, techniques and ideas we have explored throughout the semester. This includes interaction, data, design, computer vision, interfaces, games, or any number of alternative forms of expression. You should create work that is engaging and compelling for your audience. Use this as an excuse to ask a question using computation, or to scratch an itch you’ve always wanted to explore. We will spend several weeks at the end of the semester working through your ideas on these projects.
The sooner you start to think about and articulate your ideas for projects, the easier it will be for us to do any necessary course correction in the second half of the semester to address your interests.