Nature of Code
These video lessons accompany the introduction from the Nature of Code textbook.
For more: https://natureofcode.com
Video #0: Introduction
These video lessons accompany the introduction from The Nature of Code book.
- #0.1
Random Walker
27 Jul 2015In this video I will be introducing the concept of the random walker, as seen in my chapter of the Nature of Code.
- #0.2
Probability Basics
27 Jul 2015In this second section of Chapter I of the Nature of Code, we’ll be talking about basic probability.
Video #1: Vectors
These video lessons accompany Chapter 1 (Vectors) from The Nature of Code book.
- #1.1
Vectors
28 Jul 2015This video covers the topic vectors: What is a vector? How do vectors play a role in programming motion and physics simulation in Processing?
- #1.2
PVector class
28 Jul 2015In this video, I look at how to apply the concept of a vector in Processing itself using the PVector class. The video accompanies Chapter 1 from The Nature of Code book.
- #1.3
Vector Math
28 Jul 2015This video covers the basics of vector math. What is a vector? How do you add and subtract vectors? Leading up to using vectors in code!
Video #2: Forces
These video lessons accompany Chapter 2 (Forces) from The Nature of Code book.
- #2.1
What is a Force
29 Jul 2015This video discusses the definition of a “force” as well as an overview of Newton’s 3 laws of motion.
- #2.2
Applying a Force
29 Jul 2015This video covers how to apply a force to a moving object in Processing. These forces are “made-up” values and don’t yet involve more complex formulae (coming soon!)
- #2.3
Simulating with Mass
29 Jul 2015This video shows how to add mass to your object for a simulation with shapes of different sizes.
Video #3: Oscillation
These video lessons accompany Chapter 3 (Oscillation) from The Nature of Code book.
- #3.1
Angles and Angular Motion
01 Aug 2015This video describes how angles work in Processing and how you can model the angular motion of a shape.
- #3.2
Trigonometry and Polar Coordinates
01 Aug 2015This video describes the basics of trigonometry and how to use polar coordinates in Processing.
- #3.3
Simple Harmonic Motion
01 Aug 2015This video covers oscillating motion in Processing through the use of sine and cosine.
Video #4: Particle Systems
These video lessons accompany Chapter 4 (Particle Systems) from The Nature of Code book.
- #4.1
Particle Systems
03 Aug 2015This video introduces the idea of Particle Systems.
- #4.2
ArrayLists in Processing
03 Aug 2015This video shows how to use an ArrayList for creating a Particle System.
- #4.3
Deleting objects from ArrayList
03 Aug 2015This video covers how to remove Particle objects from an ArrayList while using a Particle System.
Video #5: Physics Libraries
These video lessons accompany Chapter 5 (Physics Libraries) from The Nature of Code book.
- #5.0.0
Introduction to Physics Engines Part 1
06 Mar 2017In this video, I attempt to answer the questions: (1) what are Physics Engines? and (2) why would you want to use them? I discuss some common physics engines and their various pros/cons – box2d, toxiclibs, matter.js.
- #5.1
Introduction to Box2D
06 Aug 2015This video is an introduction to a tutorial series on the physics engine Box2D. The programming language is Java (with the jbox2d port). The Box2D for Processing library is demonstrated. In the video it’s called the old name: “PBox2D”
- #5.2
What makes up a Box2D world
06 Aug 2015This video goes over the basic elements of the Box2D world � body, shape, fixture, joint.
Video #6: Autonomous Agents
These video lessons accompany Chapter 6 (Autonomous Agents) from The Nature of Code book.
- #6.1
Autonomous Agents and Steering
08 Aug 2015This video introduces the concepts of autonomous agents and provides an overview of implementing Craig Reynolds steering behaviors in Processing.
- #6.2
Steering Behaviors Seek
08 Aug 2015This video covers the most basic Reynolds’ steering behavior: seeking a target.
- #6.3
Steering Behaviors Arrive
08 Aug 2015This video covers the arriving at a target, i.e. slowing down on approach.
Video #7: Cellular Automata
These video lessons accompany Chapter 7 (Cellular Automata) from The Nature of Code book.
- #7.1
Cellular Automata
10 Aug 2015This video introduces the concepts and algorithms behind Cellular Automata.
- #7.2
Wolfram Elementary Cellular Automata
10 Aug 2015This video covers the basics of Wolfram’s elementary 1D cellular automaton.
- #7.3
The Game of Life
10 Aug 2015This video covers the Game of Life 2D cellular automaton in Processing (Java).
Video #8: Fractals
These video lessons accompany Chapter 8 (Fractals) from The Nature of Code book.
- #8.1
Fractals
11 Aug 2015This video introduces Fractals.
- #8.2
Fractal Recursion
11 Aug 2015This video looks at how to write functions in Processing that call themselves (recursion) for the purpose of drawing fractals.
- #8.3
Fractal Recursion with ArrayList of Objects (Koch Curve)
11 Aug 2015This video looks at how to use an ArrayList to store the parts of a fractal as separate objects. This allows a fractal to experience physics. The Koch curve is used as a demonstration.
Video #9: Genetic Algorithms
These video lessons accompany Chapter 9 (Genetic Algorithms) from The Nature of Code book.
- #9.1
Genetic Algorithm Introduction
29 Jul 2016Welcome to part 1 of a new series of videos focused on Evolutionary Computing, and more specifically, Genetic Algorithms. In this tutorial, I introduce the concept of a genetic algorithm, how it can be used to approach “search” problems and how it relates to brute force algorithms.
- #9.2
Genetic Algorithm How it works
29 Jul 2016In part 2 of this genetic algorithm series, I explain how the concepts behind Darwinian Natural Selection are applied to a computational evolutionary algorithm.
- #9.3
Genetic Algorithm Shakespeare Monkey Example
31 Jul 2016Part 3 of the Genetic Algorithm series is dedicated to the Shakespeare Monkey Example. In this video, I use the evolutionary concepts from the previous video to compute a problem that a brute force algorithm wouldn’t be able to solve.
Video #10: Neural Networks
These video lessons accompany Chapter 10 (Neural Networks) from The Nature of Code book.
- #10.1
Introduction to Neural Networks
26 Jun 2017Welcome to Chapter 10 of The Nature of Code: Neural Networks. In this video, I provide a brief introduction neural networks and an overview of topics in upcoming videos.
- #10.1
Doodle Classifier Introduction Intelligence and Learning
05 Mar 2018In this series, I build a “doodle classifier” using the Google “Quick, Draw!” dataset and my JavaScript neural network library.
- #10.2
Neural Networks Perceptron Part 1
08 Jun 2017In this video, I continue my machine learning series and build a simple Perceptron in Processing (Java).
Video #11: Neuroevolution
These video lessons accompany Chapter 11 (Neuroevolution) from The Nature of Code book.
- #11.1
Introduction to Neuroevolution
12 Mar 2018Welcome to a new topic in the Nature of Code series: Neuroevolution!
- #11.2
Neuroevolution Crossover and Mutation
15 Mar 2018In this video I begin the process of coding a neuroevolution simulation and
copy()
andmutate()
methods to the neural network library - #11.3
Neuroevolution Flappy Bird with TensorFlow.j
24 Apr 2019In this video, I take another pass at the Neuroevolution Flappy Bird coding challenge and replace my JavaScript vanilla neural network library with the TensorFlow.js Layers API.