-
Notifications
You must be signed in to change notification settings - Fork 9
Homework Shiffman Thursday 1
A big part of learning at ITP is learning from each other. So share your work and in exchange you'll get to see everyone else's!
- Do the assignment.
- Contribute a question.
- Post documentation in the form of a blog post. Ideally something visual, some written thoughts, and code. If you are struggling with your sketch and can't get things to work, you should feel free to put your energy into writing about what didn't work (and vent any frustrations!).
- Final project presentations are Thursday, December 8th. In class presentations will be approximately 7 minutes each, I will be strict about the time.
- Please post your final project documentation to a web page (blog post is fine) and link next to your name below. This is due Friday, December 16.
- It's up to you to figure out how to best document your project, here are some loose guidelines if you aren't sure what to include.
- Title
- Brief written description
- Visual Documentation: sketch running online, images, video, etc.
- References: links to related projects, code samples, etc.
- Source code (please cite your sources in the code comments)
- This is the arbitrary randomized order, please shuffle your names as you wish.
- If you are presenting outside of room 50, please indicate below.
- yeseul blog
- stephanie
- ellen
- yuan -- blog code
- rushali [blog] (http://rushaliparatey.com/memorybox-space/)
- tong & lin
- melissa
- shivanku
- miao
- ariana
- cris
- teresa [blog] (http://www.tianrandesign.com/2016/12/08/icm-final/) code
- sebastianblog
- diana
- amanda & annie
- jenny -- blog
The testing will follow a "speed-dating" format. The class will be divided into two groups and we'll do two rounds. For each round half the students will set up on a laptop in the class room and the other half will "view" or "interact with" or "listen to" your project for ~5-7 minutes. We'll rotate so that all "testers" will try each project and provide feedback.
It's up to you to design your "user testing". It can mean something different for each project. For a game, it's pretty obvious what to do. For a physical installation or performance or sound piece, this will be more difficult. The "rule" that we will try to adhere to is no explaining of the project until after the user has viewed/interacted.
If you are not sure how to design your testing, e-mail me or come and see me and we'll discuss.
shivanku, teresa, rushali, yuan, melissa, yeseul, ariana & alexia, ellen
amanda & annie, miao, cris, tong & lin, diana, stephanie, sebastian
Final projects are a creative idea inspired by the concepts in this class. There is no requirement to use a particular aspect of programming. The idea and your enjoyment and interest in the idea is what counts. Some things to remember.
- Keeping things simple and small in scope is a plus. If your project idea is a big one, consider documenting the larger idea but implementing just a small piece of it.
- Also think about making a final project for a small audience, even one single person like a family member or friend. . . or yourself. This can be a good way to focus your idea and design process. "Generalizing" the idea can come later (or maybe not at all.)
- Final projects can be collaborations with anyone in any class.
- Final projects can be one part of a larger project integrated with Physical Computing or another class.
- Final Project Proposals: a few minutes of slides, sketches...something to ILLUSTRATE what's in your head.
- Collect inspirations: How did you become interested in this idea? quotes, photographs, products, projects, people, music, political events, social ills.
- Collect source material: drawings, images, videos, sounds, text
- Collect code: your own sketches and/or other people's sketches.
- Collect ideas for title
- Collect ideas for 1-sentence description?
- Context? Who's it for? How will people experience it? Is it interactive? Is it practical? Is it for fun? Is it emotional? Is it to provoke something?
-
Collect questions for your classmates.
- What are you unsure of? Conceptually and technically.
- Plan to present your idea in ~2-3 minutes leaving about 5 minutes for discussion. You can present your idea however you like visually, but make sure you also document your thoughts in a blog post linked below.
- yuan -- Blog
- diana -- Blog
- cris -- Blog
- teresa --Blog
- sebastian --Blog
- rushali -- Blog
- amanda, annie -- Blog blog
- yeseul --
- melissa --
- ariana --
- ellen -- Blog
- miao -- Blog
- tong, lin -- Blog
- shivanku -- Blog
- stephanie -- Blog-older post, updated keynote presentation
- How do I get my kinect 1 working with processing3? I am not finding the kinect
Here's another mini trial run for a final project. Just like last week, all students should complete the assignment but only 1/2 will present in class.
-
Create a sketch that uses external media (sound or video). Some ideas are:
- Make something responsive to microphone input.
- Create a "photobooth" with augmented snapshots from a camera.
- Create a "painting" system that colors pixels according to camera input or a video.
-
Create a blog post documenting your work. Also include links to other projects that serve as references, inspiration, or deal with similar ideas as your piece.
-
READ AND WATCH (optional):
- Chapter 7 in Getting Started with p5.js.
- p5.js sound tutorials
- p5.js video and pixels tutorials
- p5.sound reference
- Video/capture: p5.MediaElement reference
- Computer Vision Tutorials in Processing squint and it's the same as p5.js.
- Video
- Sound
Questions (example questions)
- questions
- embedding iframes from alpha editor (I think it's a question of HTTP vs HTTPS?) - steph
- Is there any way to change background gradation color with music
- Is there any way to directly save a recording sound to web server?P5 can not play .wav file?
Note that those of you who did not present last week will present this week as indicated below.
- Presenters
- melissa
- yuan code
- ariana: http://www.arianavassilopoulou.com/2016/11/03/video/
- tong - blog , [sketch] (https://alpha.editor.p5js.org/projects/ryl2IZule)
- annie - blog, sketch
- lin - blog, sketch
- yeseul
- shivanku - Error, Other Stuff
- stephanie - blog post-idea, blog post-interface, code;
- Non-presenters
- rushali
- amanda Sketch
Start thinking about and doing some mini trial runs for a final project. They can be small sketches that form a tiny component of a larger idea. All students should complete the assignments for this week and next but only 1/2 will present each week.
- Create a sketch that uses an external data source. Plan to present in class using the classroom computer or your own laptop if you prefer. Here are some ideas:
- Track personal data over the course of a few days (exercise, sleep, computer use, eating, etc.). Enter the data manually into a JSON file and visualize the results.
- Count word frequencies in two different text sources (i.e. two different authors, two different newspapers, two different political speeches) and visualize the results.
- Use weather data to affect elements in a sketch.
- Gather data from a google spreadsheet and use in a sketch.
- Here's a list of other data sources you might investigate and try.
-
Create a blog post documenting your work and process. Include links to other projects that serve as references and inspiration for your work.
-
READ AND WATCH (whatever is helpful to you):
- Videos about Data and APIs
- Videos about word counting and text analysis - videos are from the A to Z class and include some materials out of scope of our class.
- Getting Started with p5.js - chapter 12
- Tutorial about data 1
- Tutorial about data 2 - these notes are from the A to Z class and include some materials out of scope of our class.
- Art and the API, Jer Thorp
- The Anxieties of Big Data, Kate Crawford
- JSON Basics
- More JSON
- Weather Data
- Giphy API
- Wordnik API
- NYTimes
- ITP Project Finder API
- More Data Examples from A2Z
- More Data Examples from GSWP5
- In-Class
Questions (example questions)
- "don't make functions within a loop" (youtube channel 6.4 did so)
- any idea to translate TXT into JSON?
Note that half of you will present this week, the other half next. You should complete both assignments, however, and of course you can present both weeks if you have a question or something you really want to get feedback on. Feel free to switch with each other or e-mail me if you would like to switch.
- Presenters
- rushali editor
- miao stops for lost items
- cris Blog - Code
- sebastian Blog-Code
- ellen Facebook JS,RiTa1,Not working in web editor, Blog
- Non-presenters
- melissa
- yuan Code
- ariana - http://www.arianavassilopoulou.com/2016/10/27/api-giphy/
- tong -test
- annie - sketch,blog
- lin - sketch,blog
- yeseul
- shivanku GuardianAPI
- stephanie Code
-
READ / REVIEW
- Tutorial: Intro to HTML and CSS
- Tutorial: Beyond the Canvas in P5
- p5.js DOM library videos
- Chapter 13 in Getting Started with P5.js
- p5.js dom reference
- CSS reference
-
DO
- Create a webpage that extends beyond the canvas, using p5.dom.js. You are welcome to incorporate other javascript libraries as well if you're feeling ambitious. If you're stuck for ideas, you can try going back to the graphical user interface (GUI) elements that we experimented with in week 3, and try recreating that functionality with DOM elements. Try using a callback in your sketch! Some questions to consider:
- Do you write HTML elements into
index.html
? - Do you "generate" HTML elements with code in p5?
- Do you write CSS styles into
index.html
orstyle.css
? - Do you apply styles in code with the
style()
function?
- Do you write HTML elements into
- Next week we will look at working with data and APIs in class. If you feel so inclined you can take a look at some of the video tutorials in advance. Please add a link to a data set or "API" that interests you. You don't have to know anything about how to use it, but having a list of examples we can examine in class next week will add to the discussion. You can also contribute to this wiki list of data sources.
- Create a webpage that extends beyond the canvas, using p5.dom.js. You are welcome to incorporate other javascript libraries as well if you're feeling ambitious. If you're stuck for ideas, you can try going back to the graphical user interface (GUI) elements that we experimented with in week 3, and try recreating that functionality with DOM elements. Try using a callback in your sketch! Some questions to consider:
-
EXAMPLE CODE
- DOM library videos accompanying code
- GSWP5 Chapter 13
- Optional quiz to test your knowledge
- editor examples
- in-class code
Questions (example questions)
- question
- Is there an equivalent of a flip function in P5? If not how do I achieve the effect? - Miao
- Is there a way to load multiple images(links) on to an array without adding the image files to the program on the editor
- How to upload mov file in P5?
- Data.gov/ NYC open Data
- Zomato (https://developers.zomato.com/api)
- [MoMA Collection] (https://github.com/MuseumofModernArt/collection)
- [A List of Various Museums' APIs] (http://museum-api.pbworks.com/w/page/21933420/Museum%C2%A0APIs)
- stephanie -- [Blog: Reading Words] (http://anotheridea.co/2016/10/19/sketch-06-looking-at-words/), Code - editor, Code - GitHub
- amanda
- rushali editor
- yeseul
- melissa sketch
- teresa [Blog] (http://www.tianrandesign.com/2016/10/20/icm-week7-beyond-the-canvas-in-p5/), Code-editor
- yuan
- ariana
- tong
- miao HW7 code
- cris Blog, Code, Bonus: Last HW with nlp
- annie
- lin
- ellen
- shivanku
- sebastian blog
- Videos 6.1-6.11 cover more about objects, arrays, and the constructor function.
- Getting Started with p5.js chapters 10-11 also cover the same material.
- Next week we'll be covering the p5.js DOM library. If you want to get a head start take a look at
- Videos 7.1-7.16
- p5.dom section of Chapter 13 in Getting Started with P5.js
- Tutorial: Beyond the Canvas in P5
- In your blog post this week, please include some thoughts on the synthesis workshop, what you liked or didn't like about it, and any documentation of what you made.
- Design a sketch in an object-oriented fashion. Follow these steps and see how far you get (even just doing the first couple steps is ok!)
- Write a constructor function with just variables and generate one single object.
- Put one or more functions in the constructor function and call them on the object.
- Try making two objects without an array. Can you make them different?
- Duplicate the object using an array and make as many as you like!
In the end the goal is to have code in draw()
that only makes calls to objects. Something like:
function draw() {
background(0);
// A single object
apple.chop();
// Another object
orange.peel();
// Calling a function on all of the objects in an array
for (var i = 0; i < grapes.length; i++) {
grapes[i].pluck();
}
}
- Code from videos
- Learning Processing in p5.js: Chapters 8-9
- Getting Started with p5.js: Chapters 10-11
- examples (in editor)
- Optional quiz to test your knowledge
Questions (example questions)
- Is there a way to change the 'Loading' text that appears when using the preload() function?
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- amanda blog , sketch
- yeseul synthesis: etch-a-sketch
- melissa rain drop constructors
- teresa-- Synthesis, Magnetic circle
- yuan --workshop blog
- ariana - http://www.arianavassilopoulou.com/2016/10/13/synthesis-week5/
- tong synthesis,Falling balls,[code] (http://alpha.editor.p5js.org/projects/ryH4jK2A)
- rushali hw
- miao [HW5] (https://alpha.editor.p5js.org/projects/rkzsJFOR)
- cris Nutrition Facts Blog, Code
- stephanie Terry Riley's "In C" - with serial, Terry Riley's "In C" - with the keyboard - blog TBA
- annie sketch
- lin Bird in Rainy Day (Blog), Bird in Rainy Day (Sketch)
- ellenSynthesis
- shivanku
- sebastian
- diana Blog
-
The idea this week is to explore re-organizing your code. It is 100% legitimate to turn in a version of a previous assignment where nothing changes for the end user, but the code has been restructured. You may, however, choose to try a new experiment from scratch. Aim to keep
setup()
anddraw()
as clean as possible, and do everything (all calculations, drawing, etc.) in functions that you create yourself. Possibilities (choose one or more):- Break code out of
setup()
anddraw()
into functions. - Use a function to draw a complex design (like this) multiple times with different arguments.
- Write a function to that returns the result of a mathematical operation that you need to do several times in your code.
- Reorganize "groups of variables" into objects.
- If you are feeling ambitious, try embedding a function into an object.
- Break code out of
-
An optional quiz to test your knowledge if you like.
-
READ / WATCH (Nothing required, read or watch what you find most helpful)
- Videos 5.1-5.4 cover functions. If you want to get started on what we'll discuss next week, you can also watch 6.1-6.11. Last year, I emphasized "JavaScript object literals" over the "JavaScript Constructor function" for making objects. I think this was a mistake. I'll discuss the distinction in class next week and might re-record these videos eventually, but keep that in mind as you watch. 6.4: The Constructor Function might be the most useful.
- Getting Started with p5.js chapters 9-10 (see e-mail re: PDF)
-
Examples
- p5.js editor
- other
Questions (example questions)
- What's the best way to have multiple sketches running on the same window?
- How to make several elements rotate according to their own coordinate?
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- amanda circle_1,circle_2
- yeseul Harmonograph, Flowing Dots
- melissa Rain Drop
- teresaJigsaw Puzzletangram_press to change hover to change
- yuan multiple monster
- ariana - http://www.arianavassilopoulou.com/2016/10/05/week4/
- tong PONG with function
- rushali code restructured from last week (https://alpha.editor.p5js.org/projects/HJ5DpCQ0)
- miao mesmerizing code
- cris, Modern Flags
- stephanie, blog post, sketch
- annie flower
- lin flower (organize last week's code)
- ellen word game
- shivanku (https://alpha.editor.p5js.org/projects/BkMdBnrT)
- sebastian Color Gradients!!!!
- diana RevisedUndertheSea
- In general this week, you should work with rule-based animation, motion, and interaction. You can use the ideas below or invent your own assignment. Start by working in pairs as specified below. Can you divide an idea into two parts and combine those parts? Can you swap sketches and riff of of your partner's work? You can post together or break off and complete the assignment individually.
- Try making a rollover, button, or slider from scratch. Compare your code to the examples below. Later we'll look at how this compare to interface elements we'll get for free from the browser.
- Create an algorithmic design with simple parameters. (One example is 10PRINT, see: 10PRINT example.
- Tie the above two together and have an interface element control the visual design or behavior of other elements in your sketch.
- Try this quiz if you want to test your knowledge.
- Videos 3.1-4.2 cover conditionals and loops.
- For a preview of next week 5.1-5.4 cover functions.
- Getting Started with p5.js chapters 9-10
- from class:
- Motion
- GUI
- Examples for Videos
- Getting Started with p5 Examples Chapters 9-10
- Learning Processing examples ported to p5.js Chapters 7-8
Questions (example questions)
- Can you have multiple canvas? Can part of your code run as 2D and the rest on 3D(WEBGL)?
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- amanda, yeseul, melissa - Text Rain
- teresa, yuan-- [Wave] (https://alpha.editor.p5js.org/projects/BJTWQ9cp)
- ariana, tong
- Ariana and Tong - http://www.arianavassilopoulou.com/2016/09/29/week-3/ https://alpha.editor.p5js.org/projects/BkBRdoST
- rushali, miao - Rushali - alpha, Miao - waving circle -- we have two versions of the same movements.
- cris, stephanie -- Cris: Loom, Digital Loom and Steph: Blog Post, Loom Sketch-- we made two codes based on the same idea.
- annie, lin Annie and Lin
- ellen, shivanku-- link
- sebastian, diana -- Points and particles, [Sketch] (https://alpha.editor.p5js.org/projects/rJwiBW7a)
- REVIEW - If you haven't already...
- Variables videos 2.1-2.3 and 1st half of Chapter 4 of Getting Started with p5 (up to Example 4-5).
-
map()
andrandom()
videos 2.4 - 2.5
- DO:
- Create a sketch that includes (all of these):
- One element controlled by the mouse.
- One element that changes over time, independently of the mouse.
- One element that is different every time you run the sketch.
- (You can choose to build off of your week 1 design, but I might suggest starting over and working with one or two simple shapes in order to emphasize practicing with variables. See if you can eliminate all (or as much as you can) hard-coded numbers from the sketch.)
- Here is an optional "take-home" quiz to test your knowledge.
- READ AND WATCH:
- Videos
- Getting Started with p5:
- Read Chapters 5 (Response) and 8 (Motion).
- Read the 2nd half of Chapter 4 on Loops (starting from Example 4-5 thru 4-13).
- If you're interested, read Chapter 6 on Translate, Rotate and Scale.
- EXAMPLE CODE:
- accompanying video code
- Learning Processing Examples: [chp03-06] (https://github.com/shiffman/LearningProcessing-p5.js)
- Getting Started with p5 Examples: 04, 05, 06, 08.
- Animation examples from ICM 2015
Questions (example questions)
- What is difference between
mouseClicked()
andmousePressed()
? - Why is the function
mouseClicked()
be out of function draw()? - Mask area?
- Your Name -- [blog post](Link to Blog Post), [sketch](Link to Sketch) -- any other comments
- Miao -- blog hw2, [sketch hw2] (https://alpha.editor.p5js.org/projects/Sk-sz7_n)
- Amanda -- blog post, sketch
- Annie -- blog post, [sketch] (https://alpha.editor.p5js.org/full/r1QpmOlT)
- Lin -- blog post, [fallingObjects] (https://alpha.editor.p5js.org/embed/BJ87jYa2)
- Stephanie -- blog post, sketch1, [sketch2] (https://alpha.editor.p5js.org/projects/S1RWg3xp)
- Cristóbal - blog post , sketch
- Yeseul - blog post, sketch
- Ran Tian - blog post , Rainy Autumn
- Tong - blog post , NEW "PONG" GAME
- Diana - blog post, sketch
- Rushali blog
- Yuan - week 2
- Ellen - Blog postWeek2
- Shivanku -- blog post, sketch
- Sebastian - week2
- Melissa -
- Ariana - http://www.arianavassilopoulou.com/2016/09/21/week-2/
-
SET UP:
- Sign up for a p5.js web editor account
- Sign up for the ITP ICM Google Group
- Sign up for our ICM Section's Announcement List
- Sign up for a Github Account. You need it to edit this wiki page.
- If you would like to be a member of my Coding Rainbow slack channel, where there is a #help channel for questions, let me know via e-mail.
-
DO:
- Here is an optional "take-home" quiz to test your knowledge. We'll be releasing one of these each week for self-study. We'll discuss answers next week in class.
- Create your own screen drawing: self-portrait, alien, monster, etc. Use 2D primitive shapes –
arc()
,curve()
,ellipse()
,line()
,point()
,quad()
,rect()
,triangle()
– and basic color functions –background()
,colorMode()
,fill()
,noFill()
,noStroke()
,stroke()
. Remember to usecreateCanvas()
to specify the dimensions of your window and wrap all of your code inside asetup()
function. Here's a sample example: Zoog - Write a blog post about how computation applies to your interests. This could be a subject you've studied, a job you've worked, a personal hobby, or a cause you care about. What projects do you imagine making this term? What projects do you love? (Review and contribute to the ICM Inspiration Wiki page. In the same post (or a new one), document the process of creating your sketches. What pitfalls did you run into? What could you not figure out how to do? How was the experience of using the web editor? Did you post any issues to github?
-
READ AND WATCH:
- Videos 1.1 - 1.3 -- note these were recorded last year and reference the desktop editor which we are no longer using this semester.
- After you do your homework, watch 2.1 - 2.3 to preview next week's discussion.
- If the YouTube ads / format bother you, please contact daniel.shiffman@nyu.edu for a link to a shared google drive folder.
- If you prefer books, I suggest Chapters 1-3 of Getting Started with p5.js. If you are logged into the NYU network you can read it via safari books online.
-
ASK QUESTIONS: Contribute at least 1 question below. (Name optional.)
Questions | Examples
- your question here
- What is the equivalent of a PVector in p5.js?
- Do negative coordinates work in p5?
- Is there a way to load images from remote locations (external URLS) without being blocked by the browser's built-in security?
- How can we save gifs from p5?
- How to draw a solid semicircle by P5?
- Daniel Shiffman -- [blog post](url to blog), zoog -- any other comments
- Sebastian Morales -- Custom Slider, HW1
- Shivanku Kumar -- Simple Graphic in p5, HW1
- Cristobal Valenzuela -- Cursor, HM1
- Miao Tian --shape color composition, HW1
- Lin Yang -- documentation, sushi
- KyungA Na -- [Self-Portrait] (http://kyungana.com/2016/09/14/self-portrait/)
- Stephanie Koltun -- sketch documentation, confetti, Intro Blog Post
- Seyoung Annie Kim - What I'm Doing Now , documentation
- Xitong XU-- [Night Night] (https://alpha.editor.p5js.org/projects/rkmb0DP3) , [Blog post] (http://www.xitongxu.com/2016/09/15/night-night/)
- Yuan Chen -- documentation, Yuan's monster
- Amanda Lee -- [First week] (http://www.amandamj-lee.com/2016/09/11/icm-first-week/)
- Rushali Paratey -- [documentation] (http://rushaliparatey.com/category/icm/)
- Ran Tian -- ICM: /Class1/ , I love diving
- Il Eun Ellen Kim -- Week1 Direct sketch URL
- Melissa Parker -- Draw Something, MMP self portrait
- Ariana Vassilopoulou - week1 (http://www.arianavassilopoulou.com/category/intro-to-computational-media/) (http://arianavassilopoulou.com/housefinal/)