Performance Issues
Couple of points...
As has been shown DO NOT make assumptions about why your code is slow. Use a profiler. Jake thought he was geometry limited and it turned out that it was nothing to do with the graphics.
If you are only drawing 5000 triangles on a modern card then just send them all to the graphics card (in a vertex array) and don't worry about culling. With this few triangles the graphics card will process them faster than the cpu.
Culling for collision is a good idea.
As has been shown DO NOT make assumptions about why your code is slow. Use a profiler. Jake thought he was geometry limited and it turned out that it was nothing to do with the graphics.
If you are only drawing 5000 triangles on a modern card then just send them all to the graphics card (in a vertex array) and don't worry about culling. With this few triangles the graphics card will process them faster than the cpu.
Culling for collision is a good idea.