I added view frustum culling (objects that are out of the field of view are not drawn) and a new form of frame coherency optimization. Basically it means that it only draws objects that have changed from your point of view, so the slower you are moving the faster your framerate will be. This is a proof of concept at the moment, so it is only really effective when the camera is not moving at all (except rotation).
This is a crowd of 10,000 models of 150,000 polygons each.
For comments, see the original thread.