During my study for my Bachelor degree I made a Container Terminal in Java. The user interface was very simple and only the container numbers were shown.
Later I had the urge to investigate the 3D possibilities of WPF. I grabbed back to the earlier assignment and made the visualisation parts with WPF. Being interested in how things really work I tried to make a low level implementation. I tried to model a cube, but I got strange lighting results. It turned out that I made a mistake in 3D modelling. For instance, a cube has 8 points in space. So I thought “just make 8 points in 3D space and create triangles origniating from these 8 points”. Later I found out that you need to use separate points in 3D space and you should not reuse them for other triangles. After that I fixed the model generator, it started to work better perfectly. The lighting started to look more realistic, the normal vector for the separate 3D points were working properly now.
The core of the container handling I have written with the Verum ASD suite. It gave the opportunity to calculate all dependencies between the various statemachines. The generated code was flawless.
Here are a couple of short movies of the end result.
In the movement I have not modelled the fact that objects cannot bounce. This is an addon which I could add as well. The primary objective was accomplished, on a low level I know how to build objects in 3D space and how to visualize them properly.