Going home

Friday 23.09.2005

Tomorrow morning I am going home to Norway. I've finally finished my masters degree, so I will not be staying in Denmark any more.

Human Factor - Moving river

Thursday 22.09.2005

I've changed the setup of the scene so that the land and the water gets separated. By doing so, I am able to manually transform the texture on the water, so that it is possible to make it look as if the water runs down the water.

Master of software development

Tuesday 20.09.2005

I've finally got my grade. Today we defended our thesis, which we passed, and this means that I have finished my masters degree.

I also updated the Human Factor server so that it now shows a primitive compass. This compass helps you navigate when operating the server. It is now easier to see in what direction an object is moving.

Human Factor - Log and log playback

Sunday 18.09.2005

In order to be able to analyze how a simulation unfolded, I have added support for logging and the playback of this log. During the simulation, all movement are recorded in a log file, which can later be played back. During this playback, the user is free to move the camera as he desires, as all objects moves freely independent of the camera.

Human Factor - Video and menu

Thursday 15.09.2005

I've now added support for viewing movies using the Java Media Framework API (JMF). Torbjørn rendered a simple introduction movie shown in the internal movie player in the first screenshow.

The second screenshot shows the scenario selection menu. This menu does currently have only one scenario.

Human Factor - Container on the bridge

Wednesday 14.09.2005

Torbjørn and I have now agreed on how the win/lose conditions should be arranged. The simulation should fail if the timer reaches zero, and be successfull when the bomb has been put into the container seen on the bridge.

Human Factor - New controllers / attached camera

Tuesday 13.09.2005

I have now changed the controllers on the client so that the scrollbar will not be available as a input device. This change was done to better simulate the real life, as you would not be able to move the crane faster than the engine would allow you to.

I've also added support for attaching the camera to an object. This can be seen in the second screenshot, where I've attached the camera just above the crane looking down. You can also see that Torbjørn has had time to add textures to the models. The world has never looked this good before.

Human Factor - Physics experiments

Monday 12.09.2005

After spending a great deal of time on configuring the Ode engine, I've managed to correctly place objects into the world that it represents. The problem is, however, that the objects do not interact as I intended them to do. From the screenshot you can see that the bomb which was placed on the back of the truck is now heading in full speed away from it. When you look at the ground, you will also see that there are som problems with the 3DS conversion I am doing. It looks as if the ground is broken somehow.

Human Factor - OdeJava

Sunday 11.09.2005

I've been trying to implement the OdeJava into the application. The problem is that there is no direct connection between Java3D and OdeJava. I've written a model converter using code from the Spacebomber as a base.

When I completed this task, I realized that this converter would not work when I used the OBJ file reader provided with Java3D. When I converted these objects into 3DS files and used the Starfire 3DS loader, I was successfull in converting them into Ode objects.

Human Factor - Attached crane

Saturday 10.09.2005

I've now included functionality for attaching an object to an another object. This was made in order to allow the crane to lift the bomb in the simulator. After implementing this functionality I realized that the current simulation does not look very realistic.

After looking at several possible solutions for implementing physics simulation in Java3D, I've come across a library called OdeJava. This is a Java "port" of the Open Dynamics Engine, an open source alternative to commercial physics engines like Havok. I will try to include this engine into the application and see how well it behaves.

In the screenshot below you can see that I've placed the car with its front down into the water with the nuclear warhead on its back. The second screenshow shows that the warhead has been picked up by the crane. But what am I supposed to to with it? I'll just leave it up there for now.

Human Factor - Java3D FSAA

Thursday 08.09.2005

Although Java is the best solution to networked applications (period), the 3D part is quite problematic. In an attempt to increase visual quality I activated full screen antialiasing (FSAA). This reduced the framerate considerately - close to 2-3 frames per second. This made med think that the library either does all calculations in software, or that the FSAA process is done in software. The few images I saw were a lot better looking than those earlier, but what about the speed?

Human Factor - Remote controller

Wednesday 07.09.2005

I have now implemented a client/server interface which allows a user to remotely control parts of the visualization. This functionality uses a simple protocol based on Java streams. As I have tried to make it so that as little data as possible are transferred on each update, the delay between an action on one computer and the update on the other one are almost non-exsistant. The controlled object is the crane now placed a little to the right of the truck.

Human Factor - Skybox

Tuesday 06.09.2005

I successfully added a skybox to the 3D world. What is a skybox, you ask? A skybox is a giant box covering all the other objects in the game world. Inside of this box are some textures which will give the user the illusion of an endless game world. I found some simple textures made for skyboxes which fit perfectly into the scenario of this simulation. This really made an impact on the visual quality of the application.

As you can see from this screenshot, some new models were also added. If you see near the top of this image, you can see the horizon, which is a part of the skybox image.

Human Factor - First 3D models

Monday 05.09.2005

We are finally getting somewhere on this project. I have included some 3D models into the application. These models were made by Torbjørn at WOW Medialab, one of the other participants in this project. We had some initial problems in importing the models into Java3D. Out of the package this library doesn't support too many formats, and we ended up using OBJ files, a primitive file format for 3D objects. The biggest problem were to give the objects some actual color, as the original material files that was created with these models gave us a dark, grey world. This was only a export issue from Maya.

Back from London

Saturday 03.09.2005

I came back from london late this evening. The job interview went very well, and I am quite confident that I will get this job. Hopefully I will get a positive response sometime the next week.

London is a horrible place to find your way. I am sure that I got lost at least 10.000 times during my stay there. A friend of mine told me that he saw a documentary on Discovery on how London is the worst place to find your way. I can confirm this belief.

One thing that irritated me, was the name of the hotel I stayed at. The name of the hotel was the Westminister Hotel. I thought that the name of the hotel said where the hotel was placed, but no.. In Westminister, which were filled with tourists, noone knew where it was. I finally found out where it was - in the opposite side of the city. After my job interview I went 10 stops on the subway to get to Westminister, then 12 stops back the same way to find my hotel. Quite irritating.

Trip to London / Human Factor

Thursday 01.09.2005

Tomorrow morning I am leaving to London where I am having a job interview with Glu. Cross your fingers and praire for me to get the job.

Today has been the start of yet another project - Human Factor. In this project we will try to simulate scenarios where we will test how well people tolerate stressfull situations. The scenarios should be presented in glorious 3D. Each participant should connect to the server running the simulation using a simple client showing only the controller this person is using. One person could for example control only the X axis of a crane. As the situation comes out of control as some of the controllers gets screwed up, persons will start to stress.

We decided that we will implement the simulation visuals with the help of Java. This because I currently knows Java better than C++, and that I have used Java for networked applications earlier.

My first attempt at using Java3D i presented below. Not really impressive yet, but I am starting to get the feeling on how to use the library for implementing a virtual world.