Skip to content
Alice Sun edited this page Feb 13, 2018 · 46 revisions
  1. Review week 1 materials
  2. Sign up for the class mailing list.
  3. Using the random walker as a model, develop a program that experiments with motion. Some ideas we talked about in class (and more).
    • Use a random walker to "paint" colors.
    • Try a walk in 3D, for example: http://en.wikipedia.org/wiki/Quantum_Cloud.
    • Create a random walker with dynamic probabilities. For example, can you give it a 50% chance of moving in the direction of the mouse?
    • Try using p5.Vector or PVector to create a random "velocity" for the walker. What happens if you vary the length of each step in addition to the direction?
    • Gaussian random walk is defined as one in which the step size (how far the object moves in a given direction) is generated with a normal distribution. Implement this variation of our random walk.
    • Try implementing a self-avoiding walk.
    • Try implement the random walk known as a Levy Flight.
    • Create an array of Walker objects. Try adding a new object when you click the mouse.
    • Use the random walker as a template to simulate some real-world "natural" motion. Can you develop a set of rules for simulating that behavior? Ideas: nervous fly, hopping bunny, slithering snake, etc. Consider the challenge of using minimal visual design, i.e. black and white primitive shapes. Can you give your "being" a personality? Can it express emotions -- happiness, sadness, fear?
    • Another way of thinking about the assignment is to apply the rules of motion to another medium of expression: sound, color, number, scale...
      • Walk through RGB or HSB space (as opposed to XYZ)
      • Walk through Pan, Amplitude, Pitch (as opposed to XYZ)
      • Plot an "orchestra" of instruments on an XY plane and move a melody through it like: Rite of Spring or Bolero
      • Create a constantly morphing creature shape using createShape() and vertex(). Play with how you change the number of vertices, anchor points.

Directions

  • Document your work on the web and link to it below.
  • If you are using Processing or some other offline tool, add a copy of your code to our shared Google Drive folder. If you are using the p5.js web editor or other online editor like codepen, you do not need to share your code this way.
  • Try to post by 10am the day of class if at all possible.
  • Add a questions below!

Questions

  • your question here -- your name (optional)
    • an answer will appear here
  • Do I have to use WEBGL for creating a 3D random walker? - Effy
    • Yes! Though other 3D libraries like THREE.js could be used. Will make an example and post here.
  • Is the RNG in p5.js real random or pseudo-randomness? - Heng
    • Pseudo-random! There are some interesting things you can do b/c of this using randomSeed() and noiseSeed(). Will make an example and post here.
  • Is there a simple way to clone an instance of a class? - Lucas
    • No simple way, but I'll show how JSON.parse(JSON.stringify(obj)) this can maybe work.

Post your work