Nature Of Code MOOC From Processing Foundation
Written by David Conrad   
Monday, 09 May 2016

A course in creative computing that uses p5.js to capture natural phenomena in the physical world started on May 3rd on Kadenze. Taught by Dan Shiffman, Processing Foundation's co-founder, with guest lectures from Lauren McCarthy, artist, programmer and creator of p5.js.

p5. js is a JavaScript library that starts with the original goal of Processing to make coding accessible for artists, designers, educators and beginners. This new course on the Kadenze platform is at intermediate level and a background in JavaScript would be helpful.

To meet the course instructors and for an introduction to p5.js see the video in p5.js Bringing Processing To The Web

The cryptic name of this course, The Nature of Code is explained is this course description:  

Can we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world help us to create digital worlds? This class focuses on the programming strategies and techniques behind computer simulations of natural systems. We explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered include physics simulation, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples are demonstrated using the p5.js environment with a focus on object oriented programming.

For more information see this video from the ever-exuberant Dan Shiffman.

The course opened its doors on May 3rd and has the following timetable:

  • Session 1: Introduction / Overview (May 3, 2016) 
    In this session we’ll review the basics of p5.js and get everyone up and running with posting sketches online. We’ll look at how object-oriented programming works in JS and create simple sketches of objects moving around a canvas.

  • Session 2: Vectors / Forces (May 17, 2016) 
    This session will look at the concept of a vector and implement sketches using a p5.Vector object. By creating objects with vectors for position, velocity, and acceleration, we’ll build a simple “hello world” physics engine.

  • Session 3: Steering Behaviors (May 31, 2016) 
    This session, we’ll examine a special kind of force (pioneered by Craig Reynolds) — a steering force — that moves an object according to its own goals or desires. Examples are wandering, seeking a target, path following, obstacle avoidance, and more. We’ll then look at how group behaviors can be simulated by combining multiple steering behaviors according to local interactions between objects.

  • Session 4: Fractals (June 14, 2016) 
    In this session we will cover the concept of a fractal and look at ways of generating fractal patterns with code.

  • Session 5: Genetic Algorithms (June 28, 2016) 
    This session will look at the key concepts of Darwinian evolution — variation, selection, heredity — and examine how they can be applied in a computer simulation.

Kadenze’s free tier allows you to the video lectures and participate in Forum discussions. If you want to submit assignments receive grades and a certificate of accomplishment, premium membership is $10 a month.



Shiffman is also the author of a book with the same name as the course. It covers much of the same subject matter - understanding the mathematical principles behind the physical world to help us to create digital worlds and programming strategies and techniques behind computer simulations of natural systems - but the book's examples are in Processing.

More Information

The Nature of Code

Related Articles

p5.js Bringing Processing To The Web

Processing's Hour of Code

Processing Version 2.0 Released


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, FacebookGoogle+ or Linkedin.



Amazon Timestream for InfluxDB Handles Your Time Series Workloads

Amazon has announced Timestream, a fully-managed time series database service that is based on open source InfluxDB.
But what is a time series ?

Gemini Offers Huge Context Window

Google has announced a range of improvements to Gemini, along with the release of Gemma 2. The first enhancement is access to a 2 million context window for Gemini 1.5 Pro, backed up with context cach [ ... ]

More News


kotlin book



or email your comment to:


Last Updated ( Tuesday, 12 July 2016 )