 <p>Give this version a shot:</p> <pre><code>public void onDrawFrame(GL10 gl) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); GLU.gluLookAt(gl, 0, 0, 100, 0, 0, 0, 0, 1, 0); for (int i = 0; i &lt; obj.size; i++) { // obj is an array of positions obj = mObj[i]; gl.glPushMatrix(); gl.glTranslatef(obj.position.x(), obj.position.y(), obj.position.z()); gl.glRotatef(obj.rotation.x(), 1f, 0f, 0f); gl.glRotatef(obj.rotation.y(), 0f, 1f, 0f); gl.glRotatef(obj.rotation.z(), 0f, 0f, 1f); obj.draw(gl); // the objects 'draw' themselves gl.glPopMatrix(); } } </code></pre>