The Nature of Code cover image

The Nature of Code

by Daniel Shiffman
July 2024, 640 pp.
Use coupon code PREORDER to get 25% off!

Download Chapter 7: Cellular Automata

Look Inside!

Nature of Code pages 24-25Nature of Code pages 134-135Nature of Code pages 524-525

What if you could re-create the awe-inspiring flocking patterns of birds or the hypnotic dance of fireflies—with code? For over a decade, The Nature of Code has empowered countless readers to do just that, bridging the gap between creative expression and programming. This innovative guide by Daniel Shiffman, creator of the beloved Coding Train, welcomes budding and seasoned programmers alike into a world where code meets playful creativity.

This JavaScript-based edition of Shiffman’s groundbreaking work gently unfolds the mysteries of the natural world, turning complex topics like genetic algorithms, physics-based simulations, and neural networks into accessible and visually stunning creations.

Embark on this extraordinary adventure with projects involving:

  • A physics engine: Simulate the push and pull of gravitational attraction.
  • Flocking birds: Choreograph the mesmerizing dance of a flock.
  • Branching trees: Grow lifelike and organic tree structures.
  • Neural networks: Craft intelligent systems that learn and adapt.
  • Cellular automata: Uncover the magic of self-organizing patterns.
  • Evolutionary algorithms: Play witness to natural selection in your code.

Shiffman’s work has transformed thousands of curious minds into creators, breaking down barriers between science, art, and technology, and inviting readers to see code not just as a tool for tasks but as a canvas for boundless creativity.

Whether you’re deciphering the elegant patterns of natural phenomena or crafting your own digital ecosystems, Shiffman’s guidance is sure to inform and inspire. The Nature of Code is not just about coding; it’s about looking at the natural world in a new way and letting its wonders inspire your next creation. Dive in and discover the joy of turning code into art—all while mastering coding fundamentals along the way.

NOTE: All examples are written with p5.js, a JavaScript library for creative coding, and are available on the book's website. 

Author Bio 

Daniel Shiffman, creator of the YouTube channel The Coding Train (, spends much of his free time teaching nearly 2 million subscribers how to code through a blend of step-by-step tutorials and project videos. An associate arts professor at the NYU Tisch School of the Arts and co-founder of the Processing Foundation, Shiffman is on a mission to empower curious learners and humans everywhere to express themselves through code.

Table of contents 


Chapter 0: Randomness
Chapter 1: Vectors
Chapter 2: Forces
Chapter 3: Oscillation
Chapter 4: Particle Systems
Chapter 5: Autonomous Agents
Chapter 6: Physics Libraries
Chapter 7: Cellular Automata
Chapter 8: Fractals
Chapter 9: Evolutionary Computing

Chapter 10: Neural Networks
Chapter 11: Neuroevolution

Appendix: Creature Design

Image Credits


The chapters in red are included in this Early Access PDF.

View the Copyright page
View the detailed Table of Contents
View the Index


"Fred Rogers, Ted Lasso, Dan Shiffman. These are the people I want to emulate, to learn from, and to look up to. The Nature of Code is an incredibly deep but shockingly accessible overview of the JavaScript Language and the incredible mind of Dan Shiffman. What a joy to explore both!"
—Scott Hanselman, VP Developer Community, Microsoft

"I learned p5.js from Dan on The Coding Train. I remember the first time this happy bearded guy danced onto the screen… I fell down the rabbithole quickly and was hooked on Dan’s love of teaching, his dedication to making it fun, and his ability to distill complexity into simple concepts. The website for this book is especially impressive, with interactive and editable examples throughout. I can’t recommend this (and Dan!) highly enough."
—Josh Sowin, founder at Hypertext Foundation