I asked Simon to show me how he’d come up with the formulae:
Simon is always extremely active in the discussions about the current projects made by/ lectures given by NYU’s Asdociate Professor Daniel Shiffman during his live sessions on the Coding Train channel. He also enjoys “initiating discussions” among the channel’s patrons (grown-up programmers) and Daniel. “Mom, the discussion I initiated is still going on!” I couldn’t possibly post all the coding and math comments/ suggestions that Simon makes in the chats on YouTube, Slack and GitHub (and I don’t believe I should either), but every now and then, I like collecting samples of Simon’s contributing to the discussion:
The small font above says:
Correction: The MST problem does not allow any loops (like A->B, B->C, C->D, D->A again.) So the solution at 2:30 is wrong! In fact, _no wonder it does that_, because Prim’s Algorithm will never find a loop. Here’s why:
Let’s suppose that it could find a loop (let’s say, a loop of 4, so A->B, B->C, C->D, D->A again, but this argument would work the same each way.) Ok, so it will start from A, and mark it as reached. It will check A against B, C and D, find B, and mark B as reached. Then, it will check A against C and D, and B against C and D. and it will find that it should connect B and C, and mark C as reached. Then, it will check A, B and C all against D, and find that it should connect C and D, and mark D as reached. But now, we reach a problem. It will not connect D and A, because both are already reached!
Why was it designed like that? Because that’s what the problem says! It’s a Minimum Spanning _Tree_, so it can’t have any loops.
So there you go, that’s why Prim’s algorithm will not find a loop.
Simon has been studying various polyhedra and programming them in Wolfram Mathematica. He asked me to help him build one of the many “shaky polyhedra” from paper. The main characteristic of these polyhedra is that they always remain flexible, even if their faces are made of superrigid material. We have made the simplest shaky polyhedron, called Steffen’s polyhedron. If a shaky polytope is 3D or higher, it’s always concave.
This demo is inspired by a recent video on Steve Mould’s channel. It’s about creating a movable hole in soap film with a loop of cotton thread (the photo shows Simon sticking a pencil through such a hole). Once in the soap membrane, the cotton thread forms a perfect circle. It’s because the soap film tries to minimise its area and compress as much as it can. The only way that can happen is to maximise the area of the hole. And as we know, with a fixed perimeter, the biggest area that you can make with it is if you form that perimeter into a circle, Simon explains as I’m writing this.
Simon tried to predict the weight of some of his constructor pieces by calculating their approximate area.
He later also successfully predicted the weight of a binder clip through calculating the ratio of a binder clip to a ruler. Simon did this by observing the center of gravity of the ruler (or center of mass, as “they are very near for objects on Earth because the Earth is very homogenous) as opposed to the center of gravity of the ruler plus binder clip.
Simon made these Reuleaux triangle from red cardboard. They are formed from the intersection of three circular disks, each having its center on the boundary of the other two. Its boundary is a curve of constant width, the simplest and best known such curve other than the circle itself. If you put a shape pf constant width in a frame (like Simon did above) and rotate it, it will rotate like a circle.
Simon (and Neva as his assistant) experimenting with the topology of a paper strip, filming their (almost magical) tricks on a slow motion camera:
Inspired by Tadashi Tokieda’s geometry and topology tutorials on Numberphile.
Simon loves various L-Systems, sets of rules transforming letters into geometric structures. He used to program these, this time he recreated some by hand.