Here is java example project I developed for a programming class during college years.
The goal is to display a 3d world, filled with cubes and other geometric shapes. The shapes are rotating and you can move the point of view of the simulated camera with 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.