Coding, Crafty, Experiments, Geometry Joys, JavaScript, Math and Computer Science Everywhere, Math Riddles, Milestones, Murderous Maths, Notes on everyday life, Simon makes gamez, Simon teaching, Simon's Own Code, Simon's sketch book

Approximating pi and e with Randomness

This has been one of Simon’s most ambitious (successful) projects so far and a beautiful grand finale of 2019, also marking his channel reaching 1K subscribers. The project – approximating Euler’s number (e) in a very weird way – is based upon a Putnam exam puzzle that Simon managed to prove:

The main part of the project was inspired by 3Blue1Brown Grant Sanderson’s guest appearance on Numberphile called Darts in Higher Dimensions, showing how one’s probable score would end up being e to the power of pi/4. Simon automated the game and used the visualization to approximate e. Below is the main video Approximating pi and e with Randomness. You can run the project online at: https://editor.p5js.org/simontiger/present/fNl0aoDtW

Code: https://editor.p5js.org/simontiger/sketches/fNl0aoDtW

The history and the math behind the project:

Simon’s proof od the math behind the project:

Simon has visualized this problem and proof at: https://editor.p5js.org/simontiger/present/2uMPZ8THW

Code: https://editor.p5js.org/simontiger/sketches/2uMPZ8THW

Coding, Crafty, Experiments, JavaScript, Math and Computer Science Everywhere, Milestones, Murderous Maths, Physics, Simon teaching, Simon's Own Code, Simon's sketch book

Galton Board in p5.js

Simon saw a prototype of this Galton Board in a video about maths toys (it works similarly to a sand timer in a see-through container). He created his digital simulation using p5.js online editor, free for everyone to enjoy:

https://editor.p5js.org/simontiger/sketches/h7p-wZCw8

Coding, Computer Science, Contributing, JavaScript, Milestones, Murderous Maths, Notes on everyday life, Simon makes gamez, Simon teaching, Simon's Own Code, Simon's sketch book

Simon Builds a Chess AI with Minimax

I’ve been terrible at keeping this blog up to date. One of Simon’s best project in December 2019 was creating a chess robot and I haven’t even shared it here.

We were joking how this is Simon’s baby and her name is Chessy. Simon also made an improved version with a drop-down menu allowing to choose 1 to 5 steps ahead difficulty level (warning: levels 4 and 5 may run quite slowly): https://chess-ai-user-friendly–simontiger.repl.co/

Code: https://repl.it/@simontiger/Chess-AI-User-friendly

Simon’s original 2-steps-ahead game: https://chess-ai–simontiger.repl.co/ Code: https://repl.it/@simontiger/Chess-AI

While researching how to apply the Minimax algorithm, Simon has relied on Sebastian Lague’s Algorithms Explained – minimax and alpha-beta pruning; Keith Galli’s How does a Board Game AI Work? (Connect 4, Othello, Chess, Checkers) – Minimax Algorithm Explained; a Medium article on Programming a Chess AI: A step-by-step guide to building a simple chess AI by Lauri Hartikka; of course, The Coding Train’s challenge Tic Tac Toe AI with Minimax; and What is the Minimax Algorithm? – Artificial Intelligence by Gaurav Sen.

Simon contributed his chess robot to the MINIMAX coding challenge page on the Coding Train website:

And naturally we’ve had a lot of fun simply playing with Chessy as a family:

Coding, Computer Science, Good Reads, JavaScript, Math and Computer Science Everywhere, Milestones, Notes on everyday life, Physics, Simon teaching, Simon's Own Code

Crack Simulation in p5.js

Link to the interactive project and the code: https://editor.p5js.org/simontiger/sketches/n6-WZhMC3

Simon built a simple cellular automaton (rule 22) model for fracture. He read about this model a couple nights before in Stephen Wolfram’s “A New Kind of Science” and recreated it from memory.

Stephen Wolfram: “Even though no randomness is inserted from outside, the paths of the cracks that emerge from this model appear to a large extent random. There is some evidence from physical experiments that dislocations around cracks can form patterns that look similar to the grey and white backgrounds above” (p.375).

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: https://editor.p5js.org/simontiger/full/TISsTqZ8D
And then I’ve made Connect Three: https://editor.p5js.org/simontiger/full/c30Oqd4Qf
And Connect Five: https://editor.p5js.org/simontiger/full/I6Digth0A
Then I’ve also made a version called Drop, where if the bottom row fills up, the whole board drops down one row:
https://editor.p5js.org/simontiger/full/Ysu2yvh1x
https://editor.p5js.org/simontiger/full/gb3gVSd5K

screen shot of Simon’s Connect 5 game

Another game Simon built was Bulls and Cows (trying to guess a sequence of letters): https://editor.p5js.org/simontiger/full/3bC9j3501 Link to Simon’s code: https://editor.p5js.org/simontiger/sketches/3bC9j3501

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: https://editor.p5js.org/simontiger/full/Gzv094mgzM Link to Simon’s code: https://editor.p5js.org/simontiger/sketches/Gzv094mgzM

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: https://thecodingtrain.com/CodingChallenges/151-ukulele-tuner.html

Link to project: https://editor.p5js.org/simontiger/sketches/eOXdkP7tz
Link to the random number plots: https://www.wolframcloud.com/env/monajune0/ukalele%20tuner%20generated%20random%20number%20analysis.nb
Link to Daniel Shiffman’s live stream featured at the beginning of this vid: https://youtu.be/jKHgVdyC55M

plot of the random numbers generated by Simon’s ukulele tuner random number generator (plotted in Wolfram Mathematica)
Coding, Computer Science, Good Reads, JavaScript, Milestones, Murderous Maths, Notes on everyday life, Set the beautiful mind free, Simon's Own Code, Simon's sketch book

Simon’s first steps in Stephen Wolfram’s Computational Universe

Simon has been enjoying Stephen Wolfram’s huge volume called A New Kind of Science and is generally growingly fascinated with Wolfram’s visionary ideas about the computational universe. We have been reading the 1500-page A New Kind of Science every night for several weeks now, Simon voraciously soaking up the behaviour of hundreds of simple programs like cellular automata.

Wolfram’s main message is that, contrary to our intuition, simple rules can result in complex and often seemingly random behaviour and since humanity now has the computer as a tool to study and simulate that behaviour, it could open a beautiful new alternative to the existing models used in science. According to Wolfram, we may soon realise that the mathematical models we are currently using, based on equations and constraints instead of simple rules, are merely a historical artefact. I’m amazed at how much this is in line with Simon’s own tentative thoughts he was sharing with me earlier this year, about how maths will be taken over by computer science and how algorithms are a more powerful tool than equations. When he came up with those ideas he hadn’t discovered Wolfram’s research and philosophy yet, he used to only know Wolfram as the creator of Wolfram Mathematica and the Wolfram language, both of which Simon greatly admires for being so advanced.

Last night, Simon was watching a TED talk Stephen Wolfram gave in 2010 about the possibilities of computing the much aspired theory of everything, but not in the traditional mathematical way. “It’s about the universe!” Simon whispered to me wide-eyed, when I came to the living room to fetch him. “Mom, and you know who was in the audience there? Benoit Mandelbrot!” (Simon knows Mandelbrot died the same year, he is intrigued by the fact that his and Mandelbrot’s lifetimes have actually overlapped by one year).

We have been informed by the World Science Scholars program that Stephen Wolfram will be one of the professors preparing a course for this year’s scholars cohort, so Simon will have the unique experience of taking that course and engaging in a live session with Stephen Wolfram. It is breathtaking, a chance to connect with someone who is much older, renowned and accomplished, and at the same time so like-minded, a soulmate.

Inspired by reading Stephen Wolfram, Simon has revisited the world of cellular automata and Turing machines, and created a few beautiful Langton’s Ants:

Link to Simon’s sketch on p5: https://editor.p5js.org/simontiger/sketches/sHa6d-AFf
Simon especially likes the last example in the video: “I think of it as triangular houses surrounding a flower garden!”

Simon has also watched a talk by Stephen Wolfram for MIT course 6.S099: Artificial General Intelligence. He said it had things in it about Wolfram Alpha that he didn’t know yet.

Coding, Contributing, Geometry Joys, Math Tricks, Murderous Maths, Python, Simon teaching, Simon's Own Code, Simon's sketch book

Why the Golden Ratio and not -1/the Golden Ratio?

Take any real number and call it x. Then plug it into the equation f(x) = 1 + 1/x and keep doing it many times in a row, plugging the result back into the equation.

At some point you will see that you arrive at a value that will become stable and not change anymore. And that value will be… φ, the golden ratio!

But this equation also has another answer, -1/φ. If you plug that value into the equation, it will be the same, too. The real magic happens once you have rounded the -1/φ down (or up), i.e. once what you plug into the equation is no longer exactly -1/φ. What happens is that, if you keep going, you will eventually reach… φ as your answer!

Simon saw this interesting fact in a video by 3Blue1Brown and then came up with a proof as to why it happens.

Simon also sketched his proof in GeoGebra: https://www.geogebra.org/classic/zxmqdspb