Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

# The Nature of Code

### Overview

Explore the fascinating intersection of nature and code in this comprehensive 8-hour learning playlist. Delve into programming strategies and techniques for simulating natural systems using JavaScript and p5.js. Learn about physics simulation, trigonometry, self-organization, genetic algorithms, and neural networks. Begin with an introduction to Perlin Noise and its applications, then progress through vector mathematics, force simulations, angular motion, particle systems, and autonomous steering agents. Gain hands-on experience through coding challenges, including creating random walkers and pendulum simulations. Master concepts such as gravity, friction, drag forces, and harmonic motion while developing a deep understanding of how to capture the unpredictable and emergent properties of nature in software.

### Syllabus

Welcome to The Nature of Code 2.0 in 2020 (p5.js!).
Introduction.
I.2: Introduction - Perlin Noise and p5.js Tutorial.
I.3: noise() vs random() - Perlin Noise and p5.js Tutorial.
I.4: Graphing 1D Perlin Noise - Perlin Noise and p5.js Tutorial.
I.5: 2D Noise - Perlin Noise and p5.js Tutorial.
I.6: noiseDetail() - Perlin Noise and p5.js Tutorial.
I.7 : What is OpenSimplex Noise?.
Coding Challenge #52: Random Walker.
1.1 What is a Vector? - The Nature of Code.
1.2 Vector Math - The Nature of Code.
1.3 Random Vectors - The Nature of Code.
1.4 Static Functions - The Nature of Code.
1.5 A Unit Vector (Normalize) - The Nature of Code.
1.6 Acceleration Vector - The Nature of Code.
Coding Challenge #53: Random Walker with Vectors and Lévy Flight.
2.1 Simulating Forces: Gravity and Wind - The Nature of Code.
2.2 Mass and Acceleration - The Nature of Code.
2.3 Friction Force - The Nature of Code.
2.4 Drag Force - The Nature of Code.
2.5 Gravitational Attraction - The Nature of Code.
3.1 Angles and Rotation - Nature of Code.
3.2 Angular Motion - Nature of Code.
3.3: Angles and Vectors - Nature of Code.
3.4 Polar Coordinates - The Nature of Code.
3.5 Simple Harmonic Motion - Nature of Code.
3.6 Graphing Sine Wave - Nature of Code.
3.7: Additive Waves - The Nature of Code.
Coding Challenge #159: Simple Pendulum Simulation.
Coding Challenge #160: Spring Forces.
4.1: Particle System Simulation - The Nature of Code.
4.2: Many Particle Systems (Emitters!) - The Nature of Code.
16.17: Inheritance in JavaScript - Topics of JavaScript/ES6.
16.18: Polymorphism in JavaScript - Topics of JavaScript/ES6.
4.3: Particle Systems with Inheritance - The Nature of Code.
4.4: Particle Systems with Image Textures - The Nature of Code.
5.1 Autonomous Steering Agents Introduction - The Nature of Code.
5.2 Seeking a Target - The Nature of Code.
5.3 Flee, Pursue, Evade - The Nature of Code.
5.4 Arrive Steering Behavior - The Nature of Code.

The Coding Train

## Reviews

5.0 rating, based on 1 Class Central review

Start your review of The Nature of Code