I created env3d to help with my introductory Java course. The internal 3d engine was written a couple of years ago to help me learn OpenGL. Since then, I have been trying to find a way to apply some real-time 3d graphics into my teaching.
What I am planning to do is to cover the first 7 chapters of the bluej textbook using env3d as a tool for in-class demonstration and projects. That's why you'll find that I have used java reflection instead of interface for all 3d objects definitions in my examples.
Env3d is free (under GPL). Please try it out and let me know what you think. I would really appreciate some feedback before I start using it this Fall.