The Genius Who Couldn't Count to Twelve
Situation
Leo had already built an icosahedron in p5.js. In an earlier class, he explored the centers of its triangular faces, discovered pentagons within the resulting geometry, and followed a mathematical rabbit hole all the way to the golden ratio.
Now the exploration continued.
At the beginning of today's class, Leo had already touched all 20 centers of the 20 triangles of his icosahedron.
It was time to unlock a new word.
But Donald wasn't going to say it just yet. LOL.
Turning Point
“OK, how many triangles are there on the original polyhedron now?” I asked with a smile.
“20!”
Finally! Leo corrected his earlier answer of 24.
Then came the natural next question:
“How many pentagons are there this time?”
Leo stopped spinning the model and counted.
“14.”
HAHAHAHA! The mathematical genius who could navigate nested square roots and prove triangle similarity had apparently discovered a new challenge: counting pentagons.
Poor Donald had to swallow the word dodecahedron multiple times.
Emergence
Leo's code was wonderful.
He defined the 12 original vertices using the golden ratio, calculated the centers of all 20 triangular faces, stored those centers in a new array, and connected them to form the edges of the emerging structure.
Then he began rendering pentagons by selecting five of the new vertices at a time.
By the end of class, four pentagons were on the screen.
Four beautiful pentagons. A sophisticated geometric construction. And a count of 14 that still needed checking.
“See you next week. When you get a chance, render all the pentagons and double-check your 14.”
That was the homework.
Not a worksheet. Not a list of exercises. A mathematical mystery embedded in his own creation.
The geometry has a definite answer. A regular icosahedron has 20 triangular faces, and its dual is a dodecahedron with 12 pentagonal faces.
Leo's next task is to find out how his construction reveals that answer.
Donald, meanwhile, can finally stop swallowing the word.
Well, perhaps not quite yet. LOL.
Learning
Building a mathematical object in code is more than drawing its appearance. It requires representing vertices, calculating coordinates, identifying connections, and selecting the correct groups of points to form faces.
But code also creates a new kind of opportunity: when the result doesn't agree with the mathematics, the student can investigate the discrepancy in his own construction.
Leo has the tools to do that. The next step is to use them to test his count.
Sometimes the most productive homework is simply to finish what curiosity has started.
Theme
Discovery Through Construction
What Is Possible?
Can a student build a three-dimensional polyhedron, calculate 20 new vertices, and reconstruct another solid from the relationships among them?
How Does It Happen?
Build the model. Calculate the centers. Connect the points. Render the faces. Compare what the code produces with what the mathematics predicts.
Why Does It Matter?
Because programming can turn mathematical understanding into something tangible—and turn a mistake into a mystery worth solving.