Here you will find a java example project I developed for a programming class during my university years.
The goal was to display a 3d world , filled with cubes and other geometric shapes. The shapes are rotating and you can vary the point of view of the simulated camera by the buttons under the main view.
You can have multiple cameras. Just click the "nuova" button and a new window will appear.
After extracting the zip file type
javac -d . *.java
if you want to recompile and
java -classpath . treD/Oggetto3D
to run it.
The project is extremely simple because its main goal was to learn the java language, without much attention to the details of the 3d model.
In fact the main problem was the lack of a sophisticated 3d algorithm, that should have identified the hidden faces of the geometric shapes and avoided to display them.
The lack of double buffering in the awt libraries I used is the reason of the "flash effect" that you can see while the shapes are rotating.