Living Museum of Learning

Where real moments become exhibits
← Prev Next →
Enning Builds a Pedal

Enning Builds a Pedal

A bicycle pedal is easy to ride. It is surprisingly hard to imagine.

Situation

Enning's homework was to build a bicycle pedal for her 3D programming project.

She rides a bicycle herself, so at first glance this should have been an easy assignment. But when it came time to sketch a pedal on the whiteboard, the familiar object suddenly became surprisingly unfamiliar.

At 5:17 in the morning, she even asked:

“what is one pedal”

Then, after Donald explained that he meant one of the two bicycle pedals, Enning immediately produced another possibility:

“就是一只脚的还是电动的”

“Does it mean one for one foot, or an electric one?”

Apparently, we cannot predict the imagination of a drama queen. 😂

Turning Point

Donald didn't give her a picture to copy.

Slowly, Enning drew something that began to look like a pedal, together with the bar connected to it. She then drew several pedals in different rotation positions.

Donald explained three things:

A pedal can spin around its own axis.
The end of the bar touches the pedal at that axis.
The pedal needs a shape that allows a foot to stand on it—not the other way around.

The object that Enning uses without thinking while riding a bicycle had become a small engineering problem.

Emergence

Once the idea became clear on the whiteboard, Enning moved into p5.js and WEBGL.

function setup() {
createCanvas(400, 400, WEBGL);
angleMode(DEGREES)
}

function draw() {
background(220);
orbitControl()

drawXYZ()

push()
translate(150, 0, 45)
push()
box(50, 10, 70)
pop()
pop()

push()
translate(75, 0, 0)
push()
rotateZ(90)
cylinder(4, 150)
pop()
pop()
}

function drawXYZ() {
stroke(0, 200, 0)
line(0, 0, 0, 0, 200, 0)

stroke(200, 0, 0)
line(0, 0, 0, 200, 0, 0)

stroke(0, 0, 200)
line(0, 0, 0, 0, 0, 200)
}

The pedal was no longer just a drawing. It became a collection of 3D objects positioned relative to one another.

A box() became the part supporting the foot. A cylinder() became the connecting bar. translate() placed the pieces where they belonged. rotateZ() changed the cylinder's orientation. orbitControl() let Enning inspect her creation from different viewpoints.

The coordinate axes made the invisible structure visible.

And this is only the beginning.

The finished pedal will eventually be mounted onto the 3D bicycle Enning built earlier. The little component she struggled to imagine will become part of a much larger creation.

Enning's 3D bike pedal:

Learning

A familiar object is not necessarily an easy object to model.

Riding a bicycle gives Enning an intuitive understanding of what a pedal does. Building one requires a different kind of understanding: its shape, its axis, its connection to the crank, its orientation, and the way it moves.

The project moved through several layers of thinking:

use → imagine → sketch → decompose → model → transform → reuse

The important step was not learning box() or cylinder().

It was discovering that a real-world object can be broken into simpler geometric parts and relationships—and then reconstructed inside a computer.

Theme

From familiar object to computational model

What Is Possible
A bicycle pedal can become a 3D programmable object—and eventually a working component of a complete virtual bicycle.

How Does It Happen

By turning an everyday object into geometry, coordinates, transformations, connections, and eventually motion.

Why Does It Matter

Because learning to model something means learning to look at the world differently. Even something as ordinary as a bicycle pedal can become a doorway into 3D geometry, programming, engineering, and imagination.