Simon is talking about various shapes having various number of dimensions, which, oddly enough, doesn’t have to be a whole number. Based on maths tutorials on 3Blue1Brown channel, that Simon has been watching a lot over the past several days.

Skip to content
# Category: Geometry Joys

# Fractal Dimensions

# Circle-Rectangle Intersection (Collision)

# Playing around with sine, cosine and radii

# Vector Math in Codea with Box2D. Simon’s own code.

# Line Intersections

# How to double a cube?

# Simon’s Codea Tutorials and the Arc-Tangent

# Solar System in Processing Coding Challenge

# Magnitude of a 3D vector

# Translating Car On Terrain project from Phaser.io into Processing

This blog is about Simon, a young gifted programmer, who had to move from Amsterdam to Antwerp to be able to study at the level that fits his talent, i.e. homeschool.

Simon is talking about various shapes having various number of dimensions, which, oddly enough, doesn’t have to be a whole number. Based on maths tutorials on 3Blue1Brown channel, that Simon has been watching a lot over the past several days.

Simon has been studying various 2D collisions (via the p5.collide2D library and paulbourke.net), especially the Circle-Rectangle Intersection (Collision). He was so busy with this problem that he even put it down in chalk at the playground:

And on the whiteboard at home:

And spent nearly his entire math lesson today talking about the math behind 2D object collision to his math teacher:

Simon also used Circle-Rectangle Collision for his awesome new Hero Game in Processing!

Simon playing around with sine, cosine and radii in Grapher:

Simon built a program in Codea visualizing the absolute value of a vector:

Simon shows a project he built using the p5.collide.2D library – he combined two codes from GitHub to make a program looking for intersection points between two lines in JavaScript:

We continue reading the Russian adventurous math books by Vladimir Levshin (1904-1984) – see an older post about it – and Simon is often excited about the challenges discussed. This time however, he first thought that something was impossible (and the Russian book said that, too), but our amazing favourite *Murderous Math* thought otherwise! It was one of the three oldest “unresolved” problems in the world, about how to double a cube (and let it remain a cube), which basically boils down to “how to draw the cube root of 2”:

Some more unrelated notes that Simon made recently, while listening to the Russian adventurous math book:

A set of awesome Codea tutorials that Simon recorded for those who are just starting to program in Codea. Simon ported examples from Processing (java) into Codea (Lua):

In the second tutorial (in two parts), Simon explains how to write a physics simulation program in Codea using forces like gravity, friction and spring force. Anyone watching will get to use some trigonometry and see what arc-tangent is for! The original code in Java comes from Keith Peters (Processing).

Here are some notes from when Simon was explaining the arc-tangent to me the other day:

Simon returned to the Solar System in Processing Coding Challenge by Daniel Shiffman – something he tried before and got stuck. He has now successfully completed both the 2D and the 3D parts:

Here Simon explains how to calculate the magnitude of a 3D vector. This is something he partially figured out on his own and partially learned from Daniel Shiffman’s tutorial on Trigonometry and Polar Coordinates.

Today Simon spent hours translating this Car On Terrain project from Phaser.io (where it appears in JavaScript) into Processing (Java). He loved doing it in a form of a lesson for me, while I was filming him and asking questions about loops, arrays, fixtures, shapes and bodies (and there are many things I don’t understand). Simon also spoke about “the three most important properties: density, friction and restitution”. The project involved a lot of Physics, using many Box2D sub-libraries and translating between pixels and mm.

In the end, he got tired of writing all the coordinates for the terrain vertices, but he did get quite far.

Applying Box2D to translate from pixels into mm: