Skip to content

Since mid-May, when the Google O3D team announced that they were changing O3D from a browser plug-in to a WebGL extension, I have been furiously trying to get it to work on my laptop.

I have tried everything from all of the nightly builds of the supported browsers, to using a software renderer to no avail. My graphics card just flat out refuses to run WebGL, and thus by implication, the new O3D. This is a little bit of a bother for me, as up to now, it has been working rather well as a browser plug-in.

One other thing I have noticed, is that particularly since the announcement, the amount of traffic to my blog to my O3D posts has dropped rather significantly – I am now getting on average a quarter of the hits than a month ago.

This can be due to a number of factors, one of which may be my lack of new posts as of late, but more likely it has to do with O3D itself. Since the WebGL version has been released, I have not been able to write up much about it, since I have not managed to get it to work, so either people are finding other sources which ARE writing about WebGL instead of coming to my blog, or else people have just given up interest in O3D in general, or, like me, are struggling to get the new version to work.

It would be really sad if O3D was becoming irrelevant, but I am hoping that progress will be made in getting O3D (and WebGL) to a decent level where it is supported in standard browsers again, and on most hardware platforms as I do want to see this technology fly…

  • Share/Bookmark

I have now been in the Netherlands for 10 days now, and have enjoyed every second of it. Following my full-fledged immersion in Dutch society, there are some things that just stand out for me.

  • The excellent public transport
    I come from a country where you risk your life if you try use what little public transport there is. The Netherlands is a refreshing change to this. I have thoroughly enjoyed using the very efficient busses and trains here.
  • Bicycles
    I have just raved about the public transport but I think that cycling is even one better. The Dutch landscape is totally flat, making cycling a pleasure, especially considering that there seem to be more cycle paths than roads here. In fact, it takes me less time to cycle into the centre of Haarlem from where I am staying than using the very efficient us service. And on top of all this, cycling is safe, free and good excercise.
  • The food
    I have heard a lot of people complain about the food in the Netherlands, but I will be the first to disagree with that. I love the food here.
    I have tried stroopwafels, Dutch cheese, mayonnaise on chips, an assortment of Dutch biscuits and I have no need to complain at all. And then just looking at the sweets and chocolates available makes me feel like a little kid in a candy store.
  • Trappist beer
    I am not much of a beer drinker. I do have a weakness though, and that is Belgian beer, and I have found my favourite amongst these. I tried some Trappist beer and have fallen in love with it. Now I just need to go on a Trappist tasting session….
  • The Dutch people
    Out of all the people I have met I like the Dutch the most. They are decent honest people, and very tolerant of others. In addition to this, the average Dutch person has a good knowledge of English, so communication is so much easier. I do want to learn Dutch fluently, but am finding it easy to make myself understood until then.
  • Fanta Cassis
    One of my favourite drinks in SA was Fanta Grape and Fanta Strawberry. Both of these are unfortunately not available in the Netherlands, but I did find one even better. Fanta Cassis, which is essentially blackberry flavoured Fanta, which is so good, that my memories of Grape and Strawberry will very quickly fade from my memory.
  • Share/Bookmark

On Friday, the Google O3D announced that they O3D has changed from a browser plug-in to an extension of WebGL.

In some ways, this is quite a good move, I think, but there is another side to the coin too.

The issue now, is that the O3D plug-in was able to run in just about any of the current crop of web browsers, now it will be a lot more restricted in available platform. WebGL itself is a work-in-progress, and is generally only available in the nightly builds of Firefox, Chrome and a few of the other major browsers, but /I have yet to find an officially released version of a browser that supports WebGL.

What this means of course, is that it makes O3D less useful for writing web applications until these browsers get released with WebGL.

The other thing is that I am going to have to rewrite some of the O3D tutorials on this blog to take the WebGL change into account, so watch this space for updated tutorials coming soon…

  • Share/Bookmark

Emigrating is hard. Financially, emotionally, and physically, but there is a lot to be said for finding a better life elsewhere.

That is not what I want to talk about now. Rather, now that I am settling into a new country it is time to reflect on what I have learned.

  • Prepare for the red tape
    Governments of all types love red tape, and South Africa is a good example of rather inefficient government departments.

    To give an example of this, for the Netherlands, I needed to get an unabridged birth certificate from the South African Department of Home Affairs. After a few weeks, the document duly arrived, and lo and behold, the government decided that my parents were not who I thought they were.

    It was quite surprising to find random people listed as my parents, although after a little rant at the staff about their rather noticeable lack of double-checking, and to their credit, they managed to get me a correct copy before I needed to leave the country

  • Your flights overseas come sooner than you expect
    No matter much you prepare beforehand, it seems as if the closer your flights get, which effectively is your deadline which cannot be moved, the more and more you have to do.
  • Don’t worry about packing everything so nicely – the freight guys will likely repack.
    I had carefully packed and labelled each and every of the 53 boxes we were freight over the the Netherlands, and then stacked them neatly into the garage ready for the shipping company to come and collect them and send them off to Europe.

    Well, much to my surprise, instead of taking 15 minutes to pack it all on the truck, they spent over 4 HOURS repacking every single box into their own standard sized boxes.

    Despite the fact that now I have absolutely no idea what has gone into which box, at least I know I have had a pro boxing team pack things as best they can.

  • While the flights might sound like fun, travelling halfway around the world is LONG
    I love flying. If I could fly every day I would. Except, when flying from South Africa to Europe via Dubai, you are in transit for close on 24 hours – especially if you include the time you need to get to the airport to check in.

    This means that when you arrive you are exhaused.

    Although I must say, that flying Emirates, the actual flight was a dream. We got impeccable service and even the food was good.

  • Share/Bookmark

In 10 days time, we hop on a plane, first spending the weekend in Johannesburg, before flying on to Amsterdam. That is if that volcano in Iceland the name of which only an Icelander could pronounce decides to quieten down a little.

The runup to our departure has been a little bit on the stressful side.

Last Thursday, just before I was about to sell my car, I rear-ended someone in the traffic on the way home from work. Not the sort of thing you want happening with two weeks left to get insurance and repairs sorted, let alone having to sell the car.

Then that volcano bringing the European airspace to its knees is not exactly good news for me either. It would not be a problem if the closure was only very brief, but latest reports are showing that despite every effort to open up European airspace, Mother Nature seems intent on keeping everyone grounded.

It has not reached crisis point for me yet, but every day that ash cloud lingers causes me to stress just that little bit more.

At least all the other stress of the move is dying down a little. Our shipping is sorted, and pets all taken care of – Noisette waiting to come join us in Europe, and Garfield settling in nicely in his new home.

Now we just need to get there….Emigration is certainly not for the faint of heart

  • Share/Bookmark

If you missed part 1 and part 2 of this series go and check them out first.

Now that we have the physics engine, and are able to parse the input, slotting all of this into O3D is rather trivial.

All you need to do is create a standard O3D application, load the data from the input text into the relevant variables, set up the views and objects accordingly, and you are A for away.

In the app, I have used spheres to represent the objects which need to intereact with one another, but can literally be any object you want from cubes to X-wing fighters.

If you know a bit about O3D, then the only really interesting bit happens in the renderCallback() function. If you don’t, then go and have a look at my o3d tutorial series to learn how the O3D components all fit together.

What we do here, is call our physics engine to recalculate the positions of each object, and then loop through the objects setting up the transforms for each object to translate the object to the current position of the object.

function renderCallback(renderEvent) {
	for(var i = 0; i < calcsPerRender; i++){
		Gravity.calcNewPositions(objects, (renderEvent.elapsedTime * g_timeMultiplier) / calcsPerRender);
	}
	for(var i = 0; i < objects.length; i++) {
		g_objectTransforms[i].identity();
		g_objectTransforms[i].translate(objects[i].position);
	}
}

continue reading...

  • Share/Bookmark

In the last post, I introduced the physics engine for the gravity simulator. Now let us look at the scripting engine.

There needs to be an easy way to be able to enter the data into the application, so that you can fiddle with different scenarios instead of hardcoding values in.

The way the application does it, is by adding a text area into the HTML page containing the text needed to set the variables

  

continue reading…

  • Share/Bookmark