The CPU and the GPU

Now the data is in GPU memory, and its buffers are bound as current, but the GPU doesn't know how to interpret it.

We'll want to bind the data to the vertex shader's vertexPosition attribute, so we ask the program where that attribute lies.

var vertexPositionLocation = gl.getAttribLocation(program, 'vertexPosition');

We attach the current buffer to that location, indicating the type and layout of the data to be found there.

gl.vertexAttribPointer(vertexPositionLocation, 3, gl.FLOAT, false, 0, 0);

The arguments are as follows:

vertexPositionLocation We're binding to the vertexPosition attribute.
3  There are three values in each row of the table.
gl.FLOAT These are floating point values.
false  They do not require normalization.
0  There are no gaps in the data.
0  The first value lies at the beginning of the buffer.