Coding, Computer Science, Experiments, JavaScript, Logic, Murderous Maths, Simon teaching, Simon's sketch book

Nash Equilibrium

Simon explaining the Nash Equilibrium with a little game in p5.js. Play it yourself at:
Inspired by TedEd video Why do competitors open their stores next to one another? by Jac de Haan.

Coding, Community Projects, JavaScript, Milestones, Simon makes gamez, Simon's Own Code

Simon’s Math Games in p5.js

Simon loves the Maths Is Fun website and has borrowed a couple of ideas for cool games from there. He wrote the code completely on his own, from scratch. Below is a video where he presents his Connect games:

Published on October 30, 2019

I’ve gone Connect Crazy!
This project is inspired by MathsIsFun, which has a lot of variations on the classic game Connect Four, the code is entirely mine.
Classic Game of Connect Four:
And then I’ve made Connect Three:
And Connect Five:
Then I’ve also made a version called Drop, where if the bottom row fills up, the whole board drops down one row:

screen shot of Simon’s Connect 5 game

Another game Simon built was Bulls and Cows (trying to guess a sequence of letters): Link to Simon’s code:

Yet another one was a Reaction Time test! You can test your reaction time by clicking anywhere on the screen as soon as the circle changes color: Link to Simon’s code:

screenshot of the Reaction Test

And last but not least, an unfinished project of building a Checkers game:

screenshot of Simon’s yet unfinished Checkers game sketch

Coding, Community Projects, Contributing, Experiments, JavaScript, live stream, Machine Learning, Milestones, Physics, Simon's Own Code

Simon’s Random Number Generator

This one’s back from mid-October, forgot to post here.

Simon created a random number generator that generates a frequency, and then picks it back up. Then, it calculates the error between the generated frequency and the picked up frequency. This is one of my community contributions for a Coding Train challenge:

Link to project:
Link to the random number plots:
Link to Daniel Shiffman’s live stream featured at the beginning of this vid:

plot of the random numbers generated by Simon’s ukulele tuner random number generator (plotted in Wolfram Mathematica)
Coding, Contributing, JavaScript, Milestones, Simon makes gamez

Make 24 with Teachable Machine in p5, ml5.

Simon has worked really hard for several days on his first machine learning community contribution! He has created this mini-series about building a game of Make 24 with Google’s Teachable Machine that he trained to recognise gestures as a game controller.

“It’s the first time I’m using ml5 from scratch! I’ve also built in a feature to enable the users to train their own models!”

Link to my ml5 project:

Link to my game of Make 24 without ml5/Teachable Machine:

Simon has devoted this project to his friend, photographer Oxiea Villamonte who is turning 24 next week!
art, Coding, Crafty, JavaScript, Simon's Own Code, Together with sis

Slitscan and Edge Detection in p5.js

Simon writes:

Made a cool #slitscan effect you all can play with:

Code here:

I have actually figured out the appropriate way to move the image of the webcam such that the resulting trail produces a slitscan!

Simon writes: (The second pic is also me, doing sit-ups :))
Simon’s sister playing with the slitscan effect
Simon has also created a nice edge detection effect, allowing for video images to look like they were traced in pencil
Coding, JavaScript, Math Riddles, Murderous Maths, Simon makes gamez, Simon teaching, Simon's Own Code

Cat and Mouse

This is a project that Simon started a few weeks ago but never finished, so I think it’s time I archive it here. It’s based upon this wonderful Numberphile video, in which Ben Sparks shows a curious math problem – a game of cat and mouse – in a computer simulation he’d built. The setting is that the mouse is swimming in a round pond and is trying to escape from a cat that is running around the pond. What is the strategy that the mouse should apply to escape, considering that it swims at a quarter of the speed the cat runs?

Simon came up with his own code to recreate the simulation from the Numberphile video. In the four fragments I recorded, he showcases what he has built. Please ignore my silly questions, at the time of the recording I hadn’t viewed the Numberphile video yet and had no idea what the problem entailed.

Coding, Community Projects, Computer Science, Contributing, JavaScript, Milestones, Notes on everyday life, Simon teaching, Simon's Own Code

Simon’s new “giant project”: Sorting Visualizations

this video sums up more than one week of hard work

Simon writes: I’ve built a giant project; a website / community project / platform for making algorithms! I’ve built in this video Bubble Sort, Selection Sort, Insertion Sort, Mergesort, Quicksort, Heapsort, Shell Sort and Radix Sort. So I’m done with the sorting part of the project. In the next video I’ll show you the making of the Pathfinding part of the project, and then, I’m going to put it on GitHub, and pass it on to the community, to put more algorithms on there, and even new types of algorithms!

Play with Simon’s visualizations on at:

Simon’s tweet about the project

Simon has already recorded a series of video tutorials about sorting algorithms earlier this spring. In the videos, he codes on his RaspberryPi, but here are the links to the Python code available on his GitHub page: Parts 1 – 5; Parts 6 – 7.

Coding, Community Projects, Computer Science, Contributing, JavaScript, Murderous Maths, Physics, Simon's Own Code, Simon's sketch book

Simon’s Community Contribution: Variation of 2D Casting Coding Challenge in p5.js

This is Simon’s version of Daniel Shiffman’s 2D Casting code, made on Wednesday last week right after the live session. Link to the live session including the coding challenge.

Code and interactive animation are online at:
Play with the animation online at:

Simon’s suggestions during a patron-only live session yesterday
a screenshot of Simon’s community contribution published on the Coding Train website

Simon has also made one more, optimized version of this project (with fewer rays, runs faster):

Both of Simon’s versions have been added to the community contributions on the Coding Train website:

screenshot of the optimized version
Coding, JavaScript, Milestones, Simon teaching, Simon's Own Code

Building a 2048 Game. Part 3.

Simon’s general plan for his 2048 project:

Link to the project in progress on GitHub:

In this third part he shows how he changed the fonts, how that messed up the code, how he solved that problem and also how he created a function to move any tile anywhere else on the grid. Simon doesn’t yet have the function to move a tile to the right place – he’ll cover that in game mechanics in Part 4.

Link to Parts 1 and 2.