The Nature of Code cover image

The Nature of Code

Simulating Natural Systems with JavaScript
by Daniel Shiffman
July 2024, 640 pp.
ISBN-13: 
9781718503700

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 (www.youtube.com/c/TheCodingTrain), 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 

Acknowledgments
Introduction
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
Index

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

Reviews 

"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

"What a way to explain the complex! Dan has always had a knack for making the difficult seem easy on his wonderfully successful YouTube channel. Things are equally as wonderful in his book. The hands-on approach he encourages students to take before jumping into detailed analysis builds curiosity in any problem solver."
—Ania Kubow, @aniakubow, Software Developer and Course Creator on "Code with Ania Kubow"

"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

"Thanks to The Nature of Code, I've discovered just how creative, experimental, and enjoyable coding can be. This book complements Dan's popular YouTube channel, "The Coding Train," providing a seamless learning experience for those who enjoy visual and interactive content. It is a must-have for anyone looking to dive into the realm of creative coding!"
—Patt Vira, Creative Coder & Content Creator @pattvira

"A wonderful exploration of natural systems using approachable, witty, and smart examples that any programmer can read and implement on their own. Conversational and engaging, Dan has hit another home run with this one!"
—Rob Conery, author of The Imposter's Handbook