This weblog documents Bram Stolk's life as an indie game developer who immigrated from Holland to Vancouver, British Columbia.
Friday, April 16, 2010
Superhero
Friday, April 9, 2010
Pixels
Wow.... this video is an amazing piece of work. Everyone growing up in the digital age will be able to relate to it.
In the other news: last weekend I went to Alderwood Mall in Lynnwood Washington to pick up an Apple iPad. Amy and I took the Amtrak train from Vancouver, heading to Seattle. The Amtrak station in Edmonds has some historic items on display. Railroads have such a rich history in the United States, opening up the continent to the pioneers and new settlers. It's a shame that the US railroads have been ignored by the car owning masses and the governments alike. It's a shadow of what it once was. It deserves a better fate, because it can be very comfortable. I remember an Amtrak ride from New Orleans to Memphis, when we had a nice juicy steak dinner, white tablecloths and silverware included, on board of the train. And because the ticket was bought months in advance, it was unbelievably cheap.
Wednesday, March 10, 2010
My bid to AMD's 48 cores
This is my entry to AMD's challenge to use a 48-core computer.
OpenGL shading, DirectX rendering, Toy Story, Jurassic Park, Call of Duty graphics, ray tracing... it is all child's play, stuff from the minor-league when it comes to high quality rendering. These render methods are all very crude approximations of what light actually does. To do a faithful simulation of light, you need to solve what CG scientists call 'the Rendering Equation'.
The best known method for solving this is Henrik Wann Jensen's Photon Mapping algorithm. The concept is downright simple. Unlike ray tracing, where rays are fired from the eye into the scene, Photon Mapping shoots photons from the light sources into the scene. In a post process step, the scene is sampled for photon distribution. So how many photons are we talking here? Well, typically between 100M and a billion to get a noise-free high quality image. And after doing all that work, what does it yield? Well, you get things like Caustics, Diffuse Inter-reflections and Soft Shadows not obtainable by conventional render methods. The images below will illustrate my point (taken from Henrik's web site.)
In the field of parallel computing, a class of problems is designated as 'embarrassingly parallel'. Those problems are easy to divide up in chunks that can de computed independently from each other. Ray tracing is an example of a problem in this class. However, Photon Mapping is just as embarrassingly parallel, maybe even more so. When shooting let's say 480M photons into a 3D scene, it will be as simple as giving each core 10M photons each. After generating those 48 maps with photons, each can be sampled (with final gathering) independently, as there is no need to merge the maps. The combining of results can be performed in screen space (pixel basis).
Generating these physically correct images can typically take many hours per single image. A parallel algorithm will exhibit near linear speed ups. This means that 48 cores will render the same image almost 48 times faster than a single core would. In my previous job, I worked at the SARA super computing centre. While working there, I had access to 128 core Itanium and 512 core MIPS super computers. These were not clusters, but real shared memory supers, with all those processors running under a single OS image. During an occasional idle time, after work hours, I would test my photon mapping implementation, and I can confirm that Photon Mapping indeed scales linearly, even with a lot of cores thrown at it.
To summarize... if I had access to a 48 core machine, I would use it to investigate how feasibly it is to do Photon Mapping at more interactive rates at low photon count, and low screen resolutions.
Sunday, February 28, 2010
Vancouver exploded in celebrations

Vancouver and Canada love the Olympic Games. But there is one thing they love above all: the game they call their own: Hockey, or as it is known in the Netherlands: ijs hockey. The town exploded when Canada clinched the gold in overtime. We took a short bath in the crowd on Granville street. Vancouver is in ecstasy over this win. It reminded me of the 25th of june 1988 in the Netherlands. The game against the USA was a lot of fun to watch. Judging from the Canadian player names, there could be quite a few with Dutch and German ancestry playing for Canada today.
Friday, February 12, 2010
Meeting the Prime Minister

The Ambassador invited me for drinks and meet the Dutch Prime Minister Jan Peter Balkenende. That was such a big honour, I even got to shake his hand. I tried to shoot a picture of myself and the Prime Minister. It's my face in the foreground of the picture. There was also a professional photographer, so maybe I can get hold of a better picture. The PM made a nice speech, with some good jokes. He even made a really nice adlib joke to a heckler on Carnaval being a Catholic contribution to Dutch culture, not suited for a Protestant.

A big surprise moment was when the Prime Minister introduced the two times winner of the Elf Stedentocht Evert van Benthem, who is now a cattle farmer in Canada. On the picture, you can see him wearing his cowboy hat. He got a big round of applause of course, from the expats. I am now watching the opening ceremony, and am getting in the Olympic mood. On Sunday I will visit the Holland Heineken house, and the week after that I will be there watching the 1500m speed skating on the big screen.
Thursday, February 11, 2010
Olympic Flame has arrived

This evening, while watching the US version of the Office on TV, I was suddenly surprised by cheering people outside, and a motorcade with police escort. So we decided to take a look on the balcony. And what do you know... the Olympic Flame was being brought in over the Burrard bridge. That bright spot on the bridge you see in the picture is the flame. At the down town side, the flame was exchanged with the next relay runner. So it's really starting now. Tomorrow is the opening ceremony. I wonder whether they managed to get Grouse Mountain ready with some snow. I heard there was talk of flying in snow with helicopters. Well, that heli I saw at boundary bay would sure be big enough for the job.
Tevens wil ik van de gelegenheid gebruik maken om Niels, Jelmer, Linette, Marco, Henny, Gerard, Jeanne, Jan, Ard, Anna, Stan en Truus te bedanken voor hun verjaardagskaartje!
Sunday, January 31, 2010
Innercity beauty
This video reminds me on how beautiful downtown Vancouver can be at night. Even after living here for only three years, I already take much of its appeal for granted. Now if we only could get some snow, we can give the world a proper welcome for the 2010 Olympics. Enjoy the video, it is available in HD, although my Mac Mini was too slow to play the full 1080 resolution. In case your computer struggles too, try the 720p version.
Monday, January 25, 2010
Permanent Resident
As of this Saturday, Bram is a Permanent Resident of Canada. This means that I no longer need a work permit to live and work here. It's nice that I do not have to worry about visa's or permits now. Permanent Residency is a portal to full Citizenship. However, getting a Canadian passport would mean losing my Dutch passport, so it may make sense to stay a resident instead of upgrading to citizen. Even if it means not voting here in Canada.
In the other news: there is now a FREE version of the little tank that could, aptly named the lite tank that could. Three brand new levels with fun challenges. You can get it at the appstore. I'm curious to see what it will do to the sales of the full version. Hopefully the LITE version is enticing enough to get people hooked on this new concept of Panzer Puzzles. I tried some promotion at the slide to play forums and the forums of touch arcade.
Wednesday, December 23, 2009
Please contribute $1000 to the stadium.
How much would you be willing to contribute if your city decides to replace the roof on the stadium? What if an official went door to door, to collect contributions for the stadium upgrade? Would you give them a few dollars? It turns out, the government is going to spend 458 million dollars for a new roof, which is almost a 1000 dollars per resident (from baby to elderly) in Vancouver.
Boy oh boy.... that is a lot of money. Can we afford it amidst a recession? Nope. Do we need the new roof? No, not really: it will be built after the Olympics. Is it value for money? Well, no, Amsterdam built a stadium with retractible roof (same capacity) for $150M. Yes, you read that right: for the price of 1 Canadian roof, you could have 3 full stadia, including a retractible roof on each of them.
What is going on here? Is this the Canadian version of Keynesian economics? Surely, an amount this big is not going to the actual construction work force. I'm afraid the vast majority will end up in the pockets of mafia, and corrupt politicians. It is a sad, sad, story, not unlike the Dutch Betuwe lijn.
Thursday, October 15, 2009
Commuting 101
Today is Blog Action Day 2009, putting the spotlight on climate change. Even if you don't believe in a changing climate, it does make sense to use less energy. Scientific American has a few solutions lined up. The first of which is "move closer to work". I agree with this. My work place is 1000m away, as the bird flies, from my residence. But how easy is it to move closer to work? In Canada, it is simple. In the Netherlands it's strongly discouraged by the tax system. Sell your house, and 6% of the price goes directly to the tax man, simple as that. That is 12000 euro on a 200K home. Poof.... money gone, just like that. If you do not own, but rent, it is the same. The rental market is extremely regulated. First step: get rid of this silly tax.
The next step is pretty easy as well: our method of transport does not make sense. When we commute, we use 1400Kg cars to transport a 70Kg cargo (1 human body). The vehicle weighs 20 times more than the cargo, how silly is that? Especially in Netherlands the alternatives are numerous, as there are no hills or mountains there. Why not use a vehicle that weighs less than you? And you can't get a better ratio than that of an electric skateboard. If that's too hip for you: an electric bicycle, or even a gasoline moped weighs less than the occupant. Go for it!
Sunday, October 11, 2009
Engine malfunction at 800ft

I had quite an educational session this morning, during my flight lesson. I had my first engine malfunction. I solo'd last week, but my instructor wanted to do another dual instruction before the next solo. In hindsight that was a good thing... otherwise I would have had the malfunction without an instructor onboard. So what happened? At 800ft, just after take off, the engine would not throttle down. The engine was stuck at 4000rpm. You can fly an airplane with 4000rpm but not land it. We informed the tower, and killed the engine mid-air, to glide back onto runway 12.
The lesson may have been more educational if it happened during a solo. I knew that killing the engine was the thing to do, but I would probably have declared a PAN PAN PAN over the radio, or if I panic'ed more, maybe even a MAYDAY. However, in aviation terminology, an event like this is not a 'forced landing' but a 'precautionary landing'. Another thing I learned: a broken throttle cable will open up the carburetor, not close it, as it would in a car or motorcycle. That makes sense of course, when you think about it.
The rotax engine in my plane is a 4 cylinder, with dual carburetors. With one broken cable, a closed throttle will result in one bank of cylinders fully fueled, and one bank of cylinders on idle fuel. This results in a rough running engine, that cannot go below 4000rpm.
Monday, October 5, 2009
Version 4 of 'the little tank that could'.



Version 4 of the little tank that could is now available on iTunes. This version adds two more levels to the game, and has an improved visual look as well. For the new levels, I added support for concave dynamic objects, to make gameplay a little more interesting. For instance, you can now drive your tank inside other objects. Also, there is a skiing level where your little tank will hit the slopes on a snow board. The addition of the new levels brings the total number of levels to eight. The new content will hopefully spark a little renewed interest in the game. It should not be long now before reaching the 1000th customer mark, as the total sales is 928 as of yesterday (Going by the daily sales reports from Apple. Strangely the weekly and monthly don't match up with the daily. I wish Apple would fix this).Change log for version 4
- New level: "inner circle" (medium difficulty)
- New level: "downhill skiing" (medium difficulty)
- Support for concave dynamic objects
- Low friction ice surface
- Glowing vector graphics
- Level "tube launch 101" improved (higher fps, less exploits)
- Level "race to the bottom" improved (shortcut closed)
- Improved parsing of SVG
Sunday, October 4, 2009
luchtdoop
Yes.... this morning I did my first solo flight. After doing all the paper work, and performing the pre-flight checks, I had a short flight lesson, after which my instructor deboarded, and set me off to my first solo flight. I was pilot in command of C-ISLA. The picture on this page shows the aircraft with miss Chinese Vancouver 2007. Flying the aircraft by yourself is a great feeling. The difference in weight without my instructor made my first touch and go pretty messy, but the landing after that was flawless. A big thanks to the people at sea land air, and to the air traffic controllers of boundary bay airport. Hopefully, my license will not be far away now. And after that, I need to get a license for flying with passengers. Who wants to fly with me over the vast wilderness of British Columbia?
Thursday, October 1, 2009
Een behouden vaart
Amy's mother Edith started here epic voyage across the world today, together with Michael. Their starting point was False Creek, so I took the opportunity to document the very first mile in their journey by shooting a picture from Granville bridge. The weather was of the Vancouver kind, with rain, so the picture is a bit hazy. Edith, make Abel Tasman proud! If you want to follow their voyage, you can read their ship's log.
Sunday, September 13, 2009
From game programmer to aerospace pioneer
So, what does a programmer do when he creates some of the most successful and influential computer games of his age? Well, the average reaction of young guys striking it rich, is buying exotic sport cars, and play with them. But what if you get bored with those? Where do you get your kicks now? Well, when John Carmack got bored with Ferrari's, he moved on to rockets, and started his own aerospace company.
Pioneers like Charles Lindbergh were spurred on by prize money ($25000 in his case). John Carmack's company just claimed a $1000000 prize known as the x-prize. It is a lot of fun following John Carmack's blogs about his progress: how he bids on antique russian space suits on ebay, in the hope he can reuse them for his manned spaceflights. (Unfortunately, he could not). He's an inspiration for my generation, and lives the dream of every technophile. Watch the video to see what his creation is capable of.
Monday, September 7, 2009
Suzy on Vancouver Island
I was able to get lodging and ferrying easily enough, probably because of all the rain. Most accommodations were full, but the Maquinna Hotel had vacancies, which was a decent place. It is sober, but it serves its purpose. During the first night I had a big scare. I was awoken in the middle of the night. At first I thought it was the telephone, but it turned out to be the control of my bike alarm. After I bought Suzy, I fitted her with the most expensive alarm that the dealer sold. After all, I learned my lesson in Lelystad, where my sv1000sz (a rare edition from Suzuki) got stolen. The alarm on Suzi will actually transmit a signal back to my keys, so that not only the alarm goes off, I also get a signal if I am within a few hundred meters. After overcoming the drowsiness, I got dressed quickly. No baseball bat at hand, but damn, I was mad. When I got outside Suzy was still there. A loud group of drunks were a little further down the road. I think one of them sat on Suzy, or kicked a tyre maybe. Anyway, I observed the scene for a while, and then went back to sleep.
The ride back was pretty damp as well. Which is a shame, because the opportunities of using all 185 horses are so rare. And Suzy's engine feels so much smoother when it gets a little throttle. It can be a drag to drive hundreds of kilometers with the throttle basically closed all the time. However, I did appreciate her reliability as she did not miss a single beat, even in the heavy downpour. One of these days, it will be a proper road trip, in the dry, with wide open roads. According to specs, she should hit 300 per hour, but so far, that has been academic: it is an unrealized fabled potential.