-
Notifications
You must be signed in to change notification settings - Fork 32
Homework Shiffman Wednesday
-
Each week you must complete two items for your homework.
- Post documentation of your assignment. This can be a short blog post with screenshots / video documentation and/or a Processing.js implementation of your sketch. It should include something visual and your source code.
- Place a copy of your sketch folder in our class' shared dropbox folder. Contact @shiffman if you do not have access to the folder.
-
A word about JavaScript mode and Processing.js
- JavaScript mode in Processing is a nice magic trick that allows you to run a Processing sketch in a web browser. However, there are lots of reasons why it may not work from obvious ones like no third party libraries to less obvious ones like no functions with the same name as a variable. To make matters worse, some of Processing's 2.0 API is not implemented for JS. Use JavaScript mode cautiously and don't let it get in the way of the important stuff like just making what you want to make.
- Instructions for JavaScript Mode
- Please post your final project documentation to a web page (blog post is fine) and link next to your name below.
- In class presentations will be approximately 10 minutes each.
*It's up to you to figure out how to best document your project, but I suggest you include the following:
- Title
- Brief written description
- Visual Documentation: web applet, images, video, etc.
- References: links to related projects, code samples, etc.
- Source code (please cite your sources in the code comments)
- Kelly -- [Cell Growth, final code] (http://www.kellyrio.com/itp/icm-final-cell-progress/)
- Michelle -- [Instacollage] (http://www.michellechandra.com/processing/processing-final-instacollage/)
- Ben -- [Wrecking Ball] (http://cargocollective.com/bengullard/Intro-to-Comp-Media)
- Clara -- Serendipitous Data Visualization (puzzle pieces)
- Adrian -- http://www.sasitp.com/?p=235 and https://vimeo.com/80072013
- Fletcher -- reBudget.us
- TK -- Vocal Vibrations
- Diana -- (via e-mail)
- Uttam -- Sound of Favicons
- Julia -- Yoga Poses with Kinect
- Ziv -- Emoji Mixer
- Jiwon -- 2 seconds
- Inpyo -- Music Visualizer
- Please link your name below to your final project proposal. It's up to you to figure out how to best demonstrate your idea, but I suggest you include the following:
- Title
- One sentence "What is it"?
- Who is the audience?
- Something visual for us to look at in class: drawings, images, video, etc.
- A sample Processing sketch that demonstrates a first step
- References: links to related projects, code samples, etc.
- Questions for the class (conceptual or technical)
- If you are collaborating, please consolidate the list below!
- Plan to present your idea in ~5 minutes leaving about 5 minutes for discussion.
- Here are some sample final project proposals.
- Kelly -- [Manipulating a Cell] (http://www.kellyrio.com/itp/cell-simulation-midtermfinal/)
- Michelle -- [Color Collage Animation] (http://www.michellechandra.com/processing/processing-final-project-color-collage-animation/)
- Ben --
- Clara -- Proposal
- Adrian -- Proposal: Processing Dimension
- Fletcher -- Hack Democracy
- TK -- [Vocal Vibrations Proposal] (http://yourfriendtk.wordpress.com/2013/11/06/icm-final-project-proposal/)
- Diana --
- Uttam -- Sound of Favicons - post, Sound of Favicons - presentation
- Julia -- [Portrait Morph] (http://www.juliasbetablog.com/?p=230)
- Ziv --
- Jiwon --[1 minute before now] (http://www.jiwonyoonworks.com/?p=247)
- Inpyo -- [Gestured Music] (http://ip-chang.com/blog/2013/11/final-term-project-proposal/)
Develop a project that uses an external data source. For this project you should document your work in a blog post (and link below) in addition to creating the Processing sketch. You can present in class using your laptop or put your sketch into dropbox. Here are some ideas:
- Create a game that saves a high score list to a text file.
- Track personal data over the course of a few days (exercise, sleep, computer use, eating, etc.). Enter the data into a CSV file and visualize.
- Count word frequencies in two different text sources (i.e. two different authors, two different newspapers, two different political speeches) and visualize the concordance.
- Visualize weather data (http://developer.yahoo.com/weather/)
- Connect a Processing sketch to a web app that you create (applicable if you are taking ICM web).
- Kelly --[Anxiety] (http://www.kellyrio.com/itp/icm-anxiety-and-failure-data-assignment/)
- Michelle -- [Text Analysis and Literary Style] (http://www.michellechandra.com/processing/text-analysis-and-data-visualizing-in-processing/)
- Ben --
- Clara -- Rastro
- Adrian --What makes the Best Movie?
- Fletcher --
- TK -- [Using the Twitter API] (http://yourfriendtk.wordpress.com/2013/10/30/icm-week-8-data-project/)
- Diana --
- Uttam -- Fibonacci Sound
- Julia -- [Give the Girl the Moon] (http://www.juliasbetablog.com/?p=224)
- Ziv -- http://ziv.bz/data/
- Jiwon -- [Weather Display] (http://www.jiwonyoonworks.com/?p=339)
- Inpyo -- [NBA Stats] (http://ip-chang.com/blog/2013/10/icm_week8_data/)
Develop a project that uses images and pixels. Document your work in a blog post and link below in addition to creating the Processing sketch. You can present in class using your laptop or put your sketch into dropbox. Here are some ideas:
- Create a software mirror by designing an abstract drawing machine which you color according to pixels from live video.
- Create a video player. Can you switch between videos, process pixels of a video, scrub a video, etc.
- Use the kinect to track a skeleton. Can you "puppeteer" an avatar/animation with the kinect?
Note that only the names in bold (1/2 of the class) on the wiki will present next week. The second half will present the "data" assignment the following week. You should all 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.
- Uttam -- Pointillistic Rain and Pointillistic Brush
- Julia -- [Image manipulation] (http://www.juliasbetablog.com/category/icm)
- Ziv --
- Jiwon -- [Delay Camera] (http://www.jiwonyoonworks.com/?p=230)
- Inpyo -- [Pixel Portrait] (http://ip-chang.com/blog/itp/icm/)
- Kelly -- Tiffany Flashlight
- Michelle -- [Collage Magic] (http://www.michellechandra.com/processing/processing-collage/) and [Collage Mirror] (http://www.michellechandra.com/processing/processing-collage-mirror/)
- Diana --
- Ben --
- Clara -- Mustache Cam
- Adrian --The Other Half
- Fletcher -- Fletcher Learns
- TK -- Exploring a Map
Using arrays and/or ArrayLists, write a program that creates multiple instances of an object (feel free to use an object you developed previously or create something new). Here are some additional ideas if you are stuck.
- Experiment with the resizable nature of ArrayLists. Can you add objects one at a time? Remove them after a certain amount of time or when they leave the screen? Can objects from on ArrayList trigger the birth of other objects?
- Create an object that stores the history of its own path. This might be a drawing program where you keep a history of mouse locations in an ArrayList or a shape that moves around the screen autonomously and draws its own trail. Can you have an ArrayList of these objects (each of which tracks its own ArrayList?).
- A String is like an array of characters. Can you create a sketch that plays with text by looping through the "array" inside a String. See: charAt()
- A PImage contains an array of pixels. Experiment with image processing by looping through all the pixel colors of an image. This tutorial will help you get started.
- Create a system that involves a two dimensional grid. Use a 2D array to store the data of this system. This tutorial will help you get started.
- Michelle -- image manipulation
- Julia -- Bouncing Moon
- Diana --
- Kelly --super simple set of bubbles
- Ben --
- Ziv --
- Jiwon -- fly ball generator, HSB central park
- Clara -- Random Tulips
- Adrian -- Arrays Overlaid
- Fletcher -- Fletcher Learns
- TK -- Loading CSV file into an Array
- Inpyo -- SoundWaves with Earthworms
- Uttam -- Ascii Art Broken. Code doesn't run :(
- Design a sketch in an object-oriented fashion. Try to eliminate all code from the main tab (setup() and draw()) except for the core requirements (size(), background(), etc.) and calls to objects. If you are looking for an idea, consider building a particle system. A particle system can be used to simulate: rain, snow, fireworks, explosions, smoke, etc. For this week, you would create a Particle class to describe a single particle and try to get two particles on the screen using separate variables. (Then next week, after we learn arrays, you would visualize hundreds (or thousands) of particles on the screen.)
- E-mail the code for a class to your assigned partner on the wiki. You'll get one from them too. Try incorporating the class sent to you into your sketch. Write some thoughts about this process on your blog -- Did anything not work? Could you follow your partner's code? Were comments helpful? (If you are feeling saucy, you could try to use github for this collaboration.)
- Michelle -- circles, Julia -- Weird Cell Things
- Diana -- , Kelly --[ooh, gumballs!] (http://www.dianacreates.com/)
- Ben --, Ziv -- [Empire State Snow ]http://ziv.bz/snow/
- Jiwon -- dancing Tulips, Clara -- Bouncing snowflakes and dancing tulips
- Adrian --, Fletcher -- Starry Night
- TK -- Text String Spiral
- Inpyo --, Uttam -- Hair Strands Simulation,
Re-organize the code of a previous assignment or example using functions. If you are inspired by the power of modularity, feel free to elaborate on the assignment. Work individually or in pairs (no pairs will be assigned this week.)
- Michelle -- moving square, part deux
- Diana -- rolling spring
- Kelly --new blog, please see within
- TK -- Classes
- Clara -- Peekaboo
- Ben --
- Jiwon -- snowflake
- Julia --
- Adrian --First Star I See Tonight
- Ziv --
- Inpyo --
- Uttam -- Strange Little Bouncing Box
- Fletcher -- Fletcher Learns
Assignment: 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 according to the wiki. 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.
- As an exercise, try making a rollover, button, or slider from scratch. Compare your code to the examples on github. Moving beyond the exercise, can you invent new GUI elements beyond buttons, sliders, rollovers, etc.?
- Create an algorithmic design with simple parameters. A good model is 10PRINT based on the examples provided here. There is also a nice discussion on the Processing forum. You can also read the 10 Print book online as a PDF.
- Consider tying the above two together and have a GUI control your 10PRINT visualization or motion sketch.
- Invent your own exercise related to animation and interaction.
- Michelle Animated Square, Diana -- Spring
- Kelly -- Kel's Color Perception Slider
- Clara, Benjamin [Ben's Snow Machine] (http://cargocollective.com/bengullard/Intro-to-Comp-Media)
- Jiwon [Bouncy Balls-2 ] (http://www.jiwonyoonworks.com/?p=128), Julia [Bouncy Balls] (http://www.juliasbetablog.com/?p=133)
- Adrian, Ziv coffeeMaker MouseButtonGrid
- Inpyo Clock Generator, Uttam Kolam Pattern, Fletcher
- TK -- Sine Motion
Assignment: Create a animated application. Start over from scratch and build something with a very simple design. Focus on the logic of variables and avoid using hard-coded values. Play with mouseX and mouseY. Start by working in pairs (according to list below). You can post together or break off and complete the assignment individually. If you are stuck, here are some ideas.
- Experiment with motion using a single simple shape. Can you create a [randomly jittering "nervous" square? (Here is a sample). A circle that spirals around the window? How could user interaction affect the shape's motion?
- Use random() to create a painting system. Here are some examples.
- Michelle -- Painterly Effects, Ziv --Random Drawing
- Clara --Apple of his eye, Jiwon -- [Catch Apple!] (http://www.jiwonyoonworks.com/?p=84/)
- Benjamin --, Julia -- Fibonacci Rectangles
- Inpyo --, Snow Angel, Homer Simpson
- Uttam -- Random Painting
- Fletcher --, Diana -- Raindrops On Off Triangle Pattern
- Kelly --, TK --, Adrian -- Sunset
- TK -- randomCircleGenMousePosColor
Assignment: Create your own screen drawing: self-portrait, alien, monster, etc. Use only 2D primitive shapes – arc(), curve(), ellipse(), line(), point(), quad(), rect(), triangle() – and basic color functions – background(), colorMode(), fill(), noFill(), noStroke(), stroke(). Remember to use size() to specify the dimensions of your window.
- Daniel Shiffman -- A Red Square.
- Michelle -- Neurons
- Clara -- [Dandelions] (http://cjsantamaria.wordpress.com/2013/09/10/dandelion-via-processing/)
- Jiwon -- [An orchid] (http://www.jiwonyoonworks.com/?p=29)
- Adrian -- Hello Processing
- Benjamin --
- Diana --
- Fletcher -- Skein, Tubes
- Inpyo Chang -- Bart
- Julia -- Running Woman
- Kelly --Concentric circles
- TK -- Impossible Illusion
- Uttam -- [Hello World!] (http://utt.am/blog/2013/09/11/icm-hello-world/)
- Ziv -- [Pattern] (http://ziv.bz/wp-content/uploads/2013/09/Ziv_HW_week_1_screenshot.png)