Live Stream #15. Chapter 6 of Living Code: Particle Systems

Simon’s latest Live Stream about Chapter 6 of his “Living Code” Course (particle systems!), loosely based on Daniel Shiffman’s Nature of Code. “I’m also going to live stream a surprise maths video”, – at the beginning of the stream Simon devoted some time to the magic hexagon problem.


Tantrix Game in JavaScript

Simon talking about his Tantrix Game code and the math behind it. It has been Simon’s first community project, many thanks to everyone who has contributed hexagonal tiles for the game! The game isn’t finished yet, but the video gives a good insight into the work in progress. Simon will finish it at a later date he says. Feel free to try and finish it on your own and share your results! The code is on GitHub at:

This is a separate link to see what Simon has got so far in action:


Below is Simon’s original YouTube post summoning contributions:

Simon and Daniel Shiffman

Today is one of the most beautiful days in Simon’s life: NYU Associate Professor and the creator of Coding Train Daniel Shiffman has been Simon’s guarding angel, role model and source of all the knowledge Simon has accumulated so far (in programming, math, community ethics and English), and today Simon got to meet him for the first time in real life!

Daniel Shiffman posted:

Muredo in JavaScript

Simon programmed this game a couple of weeks ago but I have waited to publish the video as I hoped he would finish it and get in on GitHub. Unfortunately he got stuck and didn’t return to the project since then, this why I’m now publishing an unfinished game. The unfinished code is on Simon’s GitHub:

Link to the current version of the game (try playing it online):

Simon writes: “The game board is ready, you can move the game pieces on to the board and roll the die. As the next step, I want to have a feature of highlighting the correct tile – how can I do that?

I also don’t have the following things yet: the multiplying feature, choosing one of multiple options and the winning condition.”

I love Simon’s color choice and the whole interface. Originally, it’s a Japanese game and I think he has made it look very much like spring in Japan.

The objective of the game is to fill in the little square making a 3×3 grid. A player throws the dice and puts one game piece on the corresponding place on the board. When she throws again, she can multiply the value on the die by the value of the place where she has her game piece (or game pieces) if the product of the hat multiplication sum can be found among the nine numbers on the 3×3 grid. If not, the player either puts another game piece on the board, to fill the value of the last throw, or misses a turn.

Simon’s Decision Tree Library

Simon has just created a decision tree library, called “Decision”, that is helpful in building decision trees/forests (Machine Learning). He has also tried performing unit tests for the first time, and passed several of them! Once Simon’s library is in GitHub he also plans to link it to the testing hub CircleCI so that no merging can happen without passing tests. In this video, Simon explains what a decision tree is, shows his library and his test decision trees.

Simon’s library on GitHub (with a huge Readme that Simon wrote himself):

Simon’s library on CircleCI:

Simon’s unit tests:

Screen Shot 2018-02-20 at 16.59.12

Snakes and Ladders in p5.js

Simon built this Snakes and Ladders game on January 27 based on Daniel Shiffman’s live stream (from January 26), adding some extra features of his own. The game is online at





Link to Daniel Shiffman’s live streams:

Live Stream #7. Chapter 3 of Living Code: Random Numbers.

Simon’s 7th live stream on Thursday went great. He has about 230 subscribers at the moment, so there were people watching and posting encouraging comments in the chat. In the very beginning, something went wrong with the OBS software and Simon had to reboot, but he didn’t panic. I saw him telling himself that “everything is going to be all right” and it did!

The topics were:

The random() function, the p5.Vector.random2D() function, core and vector random walks, Random walk with Levy Flight, Self-avoiding random walk, Linear (Monte Carlo) and random distribution and Gaussian distribution with randomGaussian()

Simon’s course Living Code is based on Daniel Shiffman’s book The Nature of Code, but focuses on JavaScript and Simon adds his own code and features in almost every chapter.