Menu
Developers Portfolio
  • Tools
  • Blog post
  • Demo
  • All
Developers Portfolio

Containing (Rotterdam harbor simulator)

Posted on November 1, 2005March 10, 2020

Containing was a second year project at my polytechnic university, the assignment was to simulate the logistics process of the Rotterdam harbor, and visualize it on screen.

Big freighter ships arrive at the Rotterdam harbor, packed with 20ft containers, these containers need to be distributed onto trucks which will deliver the containers to their final destination. Only 20 trucks can simultaneously access the harbor, and each truck can only offload one 20ft container. Because of this bottleneck the containers need to be offloaded from the freighter ship and onto the Rotterdam harbor storage field. This offloading and storage allows the containers that will depart the earliest to be ordered at the top of the container stacks. The transportation of the containers happens happens entirely automated through computer controlled cranes and AGV (automation guided vehicles).

For the visualization part of the project, OpenGL was used though jogl as JAVA was a requirement. As an aside I attempted to write a c++ java plugin to sidestep the java requirement but ended up having issues with the translation code between java and c.

The controller and server applications communicate through sockets. Where the controller is responsible for scheduling the different operations that can be done on the cargo and the server is the simulator which visualizes the entire process in 3D. Again an ambitious endevour as the assigment only required a 2D visualization. All 3D models and textures were created from scratch by Pieter Witvoet.

One of the issues that I faced during this project was that the polygon count could become so high where the frame rate would drop to non interactive speeds, as there may be around tens of thousands of containers per scene (per frame). Back in 2006 this was an actual issue, as pushing vertices from Java was not very fast. Space partitioning and distance sorting was used to optimize rendering.

Recent Posts

  • EntityHero (Doom Eternal entities editor)
  • Fluidity
  • MKV
  • MSX Sound Player
  • SSF Viewer (Mortal Kombat Armageddon art viewer)

Archives

  • September 2020
  • March 2020
  • March 2015
  • March 2014
  • September 2009
  • March 2009
  • June 2008
  • February 2008
  • December 2007
  • September 2007
  • April 2007
  • December 2006
  • June 2006
  • February 2006
  • November 2005
  • September 2005
  • July 2004
  • March 2004
  • May 2003
  • January 2001
©2020 Developers Portfolio | Powered by SuperbThemes & WordPress