-
Notifications
You must be signed in to change notification settings - Fork 11
Homework Mimi
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!).
- If your piece is intended to be interactive, someone else will demo your project
- Prepare 3 open-ended questions. e.g. What's clear? What's confusing? How does that make you feel? (As opposed to yes-no questions like: Was that confusing?)
- Abi Final project, blog
- Clareese Final project, blog
- Chenyu Final project
- Wenjing
- Morgan Final Project, Github Repository
- Su + Helen final project
- Noah Blog post, Sketch
- Nun blog post: sound frankenstein sketches: 1 2 3 4 5 6
- Jenny final project Blog post
- Zhe final project Blog post
- Maya Blog Sketch
- Nianqi sketch
- Bora blog post, final project
- Yunze final project
- Ashley blog post, project
- Morgan Blog Post, Github
- Olivia Blog Post, Github
- Atom Editor
- Set-up Git
- Adding repository to Github
- ML Videos: But, what IS a Neural Network? | How machines learn
- Show as much as possible. You won't be allowed to "explain" your concept during the user test.
- What questions do you have about your project? Build your prototypes so you can answer those questions by observing how users respond to your prototype.
- Working code is always good. But prioritize getting across your concept. Use paper, glue, sound, play-doh to quickly mock-up things that would take too long in code.
Final Project Proposals: 5 minutes of slides, sketches...something to ILLUSTRATE what's in your head.
- Collect inspirations: Quotes, photographs, products, projects, people, music, political events, social ills.
- Collect source material: Drawings, Images, Videos, Sounds, Text
- Collect code: Your own sketches. Other people's sketches.
- Collect ideas for a 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.
-
Next Week:
-
Next Next Week:
- menu.json
- Commented NYT API Example
- Manipulating pixels array
- get() and set() with Capture from webcam
TEST YOURSELF: Complete Quiz for Week 8
- Create a sketch that uses external media (sound, images 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 images, video or camera input.
- 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.
Questions (example questions)
- Is there a limit to how many sounds/images you can play in one sketch? - Olivia
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Bora -- Blog Post, Sketch
- Noah -- Blog Post, Sketch
- CHENYU -- Blog Post, Sketch
- Maya -- Blog Post, Sketch
- Yunze -- Blog Post, Sketch
- Jenny -- Blog Post, Sketch
- Nianqi -- Blog Post, Sketch
- Zhe -- Blog Post,sketch
- Wenjing -- Blog Post,sketch
- Ashley -- Blog Post,sketch
- Morgan -- Blog Post,Sketch
- Nun -- Blog Post,Sketch
- Helen -- Blog Post,Sketch
- SU HE -- Blog Post,Sketch
- Abi -- Blog Post,Sketch
- Clareese
- Olivia
-
IN-CLASS
-
TEST YOURSELF
- Complete the Quiz
-
DO:
- Create a sketch that uses an external data source. Consider building on top of your website assignment. Make it data-rich!
- 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 with loadTable()
- APIs to consider
-
READ / WATCH
- Week 8: Video & Sound
- Videos: Images/Video 11.1-11.8
- Videos: Sound 17.1-17.11
- Chapter 7 in Getting Started with P5.js
- Additional Resources
-
Examples
Questions (example questions)
- How does the example in Quiz007 question 2 work? - Jenny
- How can we load all the pages of New York Times article search API? -Nianqi
- Is it possible to obtain entire articles from the NYT API and not just the main headlines, etc?
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Maya -- Blog Post, Sketch
- Olivia -- Blog Post, Sketch
- Nun Blog PostSketch
- Noah [Blog Post] Sketch
- Chenyu Blog Post Sketch
- Morgan -- Blog Post, Sketch
- Nianqi -- Blog Post Sketch
- Zhe -- [Blog Post] Sketch
- Clareese -- Blog Post Sketch
- Yunze -- Blog Post, Sketch
- Bora
- Jenny - Dating Data Visualization, Sketch
- Ashley - Blog Post, Sketch
- Su- Dating Data Visualization, Sketch
- Abi - Blog, Sketch
- Wenjing Blog, Sketch
- Helen - Blog, Sketch
- Noah Pivnick
- Bora Aydintug
- Morgan Mueller
- Ashley Jane Lewis
- Clareese Hill
- Nianqi Zhang
- Zhe Wang
- Your name here
- Your name here
-
IN-CLASS:
-
TEST YOURSELF
- Complete the Quiz
-
DO:
- Create your own HTML page with the following:
- Pre-defined HTML Elements
- Pre-defined CSS Styles
- HTML Elements generated by your p5 sketch
- Some kind of mouse interaction with an HTML Element using a callback function you write.
- Another option for your assignment this week is to play with an existing website rather than create your own from scratch. To do that you will need to save it and upload it to your web editor. Here are instructions on how to do that.
- Let’s say you want to work with the awesome MDN documentation page on the animate() function.
- Go to the File>>Save as… menu. Rename the file something short like animate.
- You will end up with 1 file that’s called animate.htm and a folder of supporting files (including the css style files) called animate_files.
- Open animate.htm in a code editor (Brackets, Atom, Sublime)
- Copy the html from animate.htm and replace the html in the index.html file on the p5 web editor.
- Create a folder in the web editor called animate_files and upload all the files from the saved folder INTO the one in the web editor. (If you click on the folder name in the web editor, you will see a little down arrow to the right of the name. Click that and you will see an option to Add File.)
- Voila, you should be able to run the saved website from the web editor.
- Remember that if you want p5 functionality, you will need to copy and paste the p5 script tags back into your index.html file.
- If this is all too much, I’ve set up this lovely specimen from the 1990s here for you to play with. You can File>>Duplicate it into your own account and go from there!
- Create your own HTML page with the following:
-
READ / WATCH
- Videos 10.0-10.10
- Pick 1 of the APIs to learn about from videos 10.8 to 10.12
- Chapter 12 in Getting Started with P5.js
- Additional Resources
-
Examples + Resources
Questions (example questions)
- Your question here
- How can I animate things in web using animate()?? -Helen
- What does these lines of codes do
setInterval(function() { console.log("HELLO"); serial.write(1); }, 1000);
Is it necessary? - Jenny - Thinking about static vs. relative positioning. How can you make sure the position of your elements will be the same across platforms and different people’s browser windows? - Maya
- How do developers use the web inspector/developing tools? What is its purpose? - Maya
- How do we make html elements e.g. slide handle decimal values? - Nun
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Maya --Blog Post, Sketch
- Olivia -- Blog Post, Very Odd Sketch
- Nun Blog Post, Sketch
- Noah -- Blog Post, Sketch
- Chenyu -- Blog Post, Sketch
- Morgan --Blog Post, Sketch
- Nianqi --Blog Post, Sketch
- Zhe -- Blog Post, Sketch
- Clareese Blog Post Sketch
- Yunze -- Blog Post, Sketch
- Bora -- Blog Post, Sketch
- Jenny -- Blog Post, Sketch
- Ashley -- Blog Post, Sketch
- Su--Blog Post, Sketch
- Abi -- Blog Post, Sketch
- Wenjing -- Blog Post, Sketch
- Helen -- Blog Post, Sketch
- Week 5 in the Syllabus
- Arrays in JavaScript | Documentation
- balls that can sense
- Complete the Quiz
- 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!)
- Make one single object with just variables.
- Put one or more functions in the object.
- Try manually making two objects.
- Duplicate the object using an array and make as many as you like!
- If you are already working with classes/objects and arrays:
- Re-organize / break-down your classes into the "smallest functional units" possible.
- Try different ways to have your objects "communicate" with each other in some way.
- 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();
}
}
- Videos 8.1-8.16 - Focus on videos 8.1-8.9.
- p5.dom section of Chapter 13 in Getting Started with P5.js
- Additional Resources
Questions (example questions)
- why is there no mention of the
constructor
in either the Getting Started with P5.js text or the object-related Examples on the P5.js website? is usingconstructor
in a Class a stylistic choice? - Noah - In Dan's videos, it says
for (b of bubbles){ b.show();}
, but Mimi saysfor (let b in bubbles){ bubbles[b].show();}
. Has the syntax changed? - Jenny - When making the balls and deleting them if they collide with each other, how could the code successfully run half way, then an error appears? Also, how to delete both balls instead of just one of them when two balls collide? - Jenny
- Is
' '
the same as" "
for DOM elements? I tried both to create text in both buttons and paragraphs and the result seemed to be the same. - Jenny
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Maya -- Blog, Sketch
- Olivia -- Blog Post, Sketch
- Nun -- Blog Post, Sketch
- Noah -- Blog Post, Sketch
- Chenyu -- Blog Post, Sketch
- Morgan -- Blog Post, Sketch
- Nianqi -- Blog Post, Sketch with Zhe
- Zhe -- Blog Post, Sketch with Nianqi
- Clareese
- Yunze --Blog Post, Sketch
- Bora -- Blog Post, Sketch
- Jenny -- Blog Post, Sketch
- Ashley -- Blog Post, Sketch
- Su -- Blog Post, Sketch
- Abi -- Blog Post, Sketch
- Wenjing -- Blog Post, Sketch
- Helen -- Blog Post, Sketch
-
RESOURCES FROM CLASS:
-
TEST YOURSELF
- Complete the Quiz
-
DO: 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):- Reorganize "groups of variables" into objects.
- Break code out of
setup()
anddraw()
into functions. - Use a function to draw a complex design multiple times with different arguments.
- If you are feeling ambitious, try embedding a function into an object.
-
READ / WATCH
- Videos 6.1-6.3, 7.1-7.7, 16.4
- Getting Started with p5.js chapters 10-11
-
Examples
Questions (example questions)
- How do you embed a function into an object? (I don't quite understand the meaning of it) - Jenny
- I had some trouble controlling the uniformity of my function. Is there a methodology that is not in the video that might help? -Clareese
- What determines when an object has become sufficiently object-ified? Presumably as it becomes more complex a greater number of it's properties can be extrapolated as objects in and of themselves and I get that object-oriented coding facilitates modularity and re-use but are there performance gains and if so, is there a point of diminishing returns? - Noah
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Maya - Blog, Sketch
- Olivia -- Blog, Sketch with Chenyu
- Nun -- Clean & Organized Codes (I Think), Sketch
- Noah -- Blog Post, Sketch
- Chenyu -- Blog Post, Sketch with Olivia
- Morgan -- Blog Post, Sketch
- Nianqi -- Blog Post, Sketch with Zhe
- Zhe --Blog Post, Sketch with Nianqi
- Clareese -- Blog Post Sketch
- Yunze --Blog Post, Sketch
- Bora -- Circular Motion & Assignment 4, Sketch
- Jenny -- Blog Post, Sketch
- Ashley -- Blog Post, Sketch
- Su--Blog Post, Sketch
- Abi -- Blog Post, Sketch
- Wenjing -- Blog Post, Sketch
- Helen -- Blog Post, Sketch
-
RESOURCES FROM CLASS:
-
TEST YOURSELF: Complete Quiz 3
-
DO: 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 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 on github. 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, example code).
- Tie the above two together and have an interface element control the visual design or behavior of other elements in your sketch.
-
READ / WATCH
- Videos 5.1-5.3 in the learning p5.js series.
- Getting Started with p5.js chapters 9-10
-
RUN CODE
Questions (example questions)
- Your questions here.
- What can we do if part of the code should be displayed with the background() in setup function while other part should be displayed with that in draw function? - Nianqi
- I think my question may be related to Nianqi's ... how does one make use of a
for
loop to generate a random distribution of drawn objects that are meant to stay fixed in place on the canvas (i.e., not continuously re-drawn in a new random distribution every frame)? - Noah- also, re: the Hover Panels exercise: would it not be easier to somehow define 'hovering' as the mouse being within the boundary of the object rather than using conditional logic to differentiate between the object and every other part of the canvas? - Noah
- what's the difference between "var" / "let"? when to use which? - Nun
- Can we go over some more examples of how to animate an algorithmic design? Do you have to use a for loop to create the original design and then a separate loop to make it change/animate it? - Maya
- Your Name -- [Title of Blog Post](Link to Blog Post), [Title of Sketch](Link to Sketch) -- any other comments
- Maya -- Blog Post, Sketch
- Olivia -- Blog Post, Sketch
- Nun -- Blog Post, Sketch
- Noah -- Blog Post, Sketch
- Chenyu -- Blog Post, Sketch
- Morgan -- Blog Post, Sketch
- Nianqi -- Blog Post,Sketch A, Sketch B with Su
- Zhe -- Blog Post, Sketch with Yunze Shi
- Clareese -- Blog Post,Sketch
- Yunze -- Blog Post, Sketch with Zhe Wang
- Bora -- Blog Post, Sketch
- Jenny -- Blog Post, Sketch with Abi
- Ashley -- Blog Post, Sketch
- Su--Blog Post, Sketch with Nianqi Zhang
- Abi -- Blog Post, Sketch with Jenny
- Wenjing --Blog Post, Sketch
- Helen--Blog Post, Sketch.
- Tündi -- Blog Post, Sketch
-
LINKS FROM CLASS:
-
TEST YOURSELF: Finish the In-Class Quiz Post a url to your answers on the Google Doc.
-
REVIEW
- Variables videos 2.1-2.3 and 1st half of Chapter 4 of Getting Started with p5 (up to Example 4-5).
- map() and random() 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.
- e.g. Try refactoring your Week 1 HW by removing all the hard-coded numbers except for createCanvas(). Have some of the elements follow the mouse. Have some move independently. Have some move at random.
- e.g. Do the above but change color, alpha, and/or strokeWeight instead of position.
- Or do something completely different!
-
READ AND WATCH:
-
RUN CODE:
- Video Examples: 3.1-4.2
- Getting Started with p5 Examples: 04, 05, 06, 08.
- Learning Processing Examples: chp03-06
- Animation examples from ICM 2015
Questions (example questions)
- Your question here.
-
is it best practice to both declare and initialize a variable at the top of your code (i.e.,
let foo = 7;
vs.let foo;
then assign a value when needed) and if so, why? - noah - Are there tabs that can organize your code in p5.js? How can you avoid all of the scrolling? - Ashley Jane Lewis
- How does gradient work? It seems like there are many ways to do it? How is it related to lerpColor? - Nun
- How to change the color gradually without abrupt changes? - Jenny
- Boaty McBoatface -- [blog post](url to blog), zoog -- any other comments
- Maya Pruitt -- blog post, sketch
- Olivia Kung -- blog post, sketch
- Nuntinee T -- blog post, sketch
- Noah Pivnick -- blog post, sketch
- Chenyu Sun -- blog post, sketch
- Morgan Mueller -- blog post, sketch
- Nianqi Zhang -- blog post, sketch
- Zhe Wang -- blog post, sketch
- Clareese Hill -- blog post , sketch
- Yunze Shi -- blog post, sketch
- Bora Aydintug -- blog post, sketch
- Jenny Lin -- blog post, sketch
- Ashley Jane Lewis -- blog post, sketch
- SU HE -- blog post, sketch
- Abi Muñoz -- blog post, sketch
- Wenjing Liu --- blog post, sketch
- Helen Tang --- blog post, sketch
- Tündi --- blog post, sketch
-
RESOURCES FROM CLASS:
-
SET UP:
- Sign up for a p5.js web editor account
- Sign up for the ITP ICM Google Group
- Sign up for a Github Account. You need it to edit this wiki page.
-
DO:
- Complete this quiz. Our weekly quizzes become the basis for the next class. You must be logged in with your NYU account to access the quiz.
- 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 sketch. 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:
-
Watch before homework: Videos 1 - 7 | Watch after homework: Videos 2.1 - 2.3
- If YouTube bothers you, ask Daniel Shiffman for a link to videos on Google Drive.
- If you prefer books, Chapters 1-3 of Getting Started with p5.js cover the same material. Log into the NYU network to read it for free.
-
Watch before homework: Videos 1 - 7 | Watch after homework: Videos 2.1 - 2.3
-
ASK QUESTIONS: Contribute at least 1 question below.
Questions | Examples
- your question, your name
- How to change the rotate mode and make the object rotate related to its own center point (instead of rotating around the origin point of the canvas)? --- Wenjing Liu
- I had this same question (how to change axis of rotation/if this is possible?) - Olivia Kung
- I also have the same question (Still don't really understand how rotate works..) - Jenny Lin
- Is it totally misguided to think of an array as a kind of temporary, rudimentary database? - Noah Pivnick
- Is it possible to create a circular clipping mask over a rectangular GIF? Can you draw over video/gifs in p5.js? Where can I find current documentation to upload/save files to sketch? - Abi Muñoz
- How to make specific degree of rotating an object on non-square canvas? Is it possible let p5.js to math the degree itself (like to do the Pythagorean theorem)? How to flip an image? — Chenyu Sun
- Google search revealed that p5.js can be used to manipulate video. What is the full extent of the manipulation? Can one have p5.js interpret video in different ways and use the interpreted data as input for generating new visuals? - Bora Aydintug
- How to decide the points when drawing a curve? Draw it ahead of time in illustrator? - Nianqi Zhang
- Is it possible to add more control points when drawing a curver? or let curve pass through more than two points? - Yunze Shi
- Is clipping mask possible with JavaScript? - Jenny Lin
- How do you create a gradient of color? Can you fill with images or patterns? - Maya Pruitt
- Is it possible to locate the shapes more intuitively rather than guessing the coordinates? - Jenny Lin
- How to make curves into close shape? Helen Tang
- Does the auto-refresh exist in the DOM? If so, do artists use p5.js to perform live coding? Ashley Jane Lewis
- Boaty McBoatface -- [blog post](url to blog), zoog -- any other comments
- NAME -- my blog, my sketch
- Yihan Tang -- my blog, my sketch
- Nuntinee Tansrisakul -- my blog, my sketch
- Yunze Shi -- my blog, my sketch
- Wenjing Liu -- my blog, my sketch
- Morgan Mueller -- my blog, my sketch
- Chenyu Sun -- my blog, my sketch
- Olivia Kung -- my blog, my sketch
- Nianqi Zhang -- my blog, my sketch
- Bora Aydintug -- my blog , my sketch
- Abi Muñoz -- my blog, my sketch
- Zhe Wang -- my blog, my sketch
- Noah Pivnick -- my blog, my sketch
- SU HE -- my blog, my sketch
- Maya Pruitt -- my blog, my sketch
- Jenny Lin -- my blog, my sketch
- Ashley Jane Lewis -- sketch | post
- Tündi Heinrich Szász -- sketch
- Clareese Hill -- sketch
- Helen Tang -- my blog, my sketch