New Skoda Octavia “Remote Controller” (RC) campaign

octavia-remote-controller.jpg
Today was a big day, since we had to deliver the technical part of a campaign we're doing in collabration with Achtung!. Skoda has launched a new Octavia recently, and this off course needs to have a spectacular campaign. The idea Achtung! had was to make a website where you see streaming video of the new Octavia parked somewhere on the street, to get attention from people passing by (and have a lot of fun off course!), the idea was that you can control the car remotely on the website. Like honking the horn, using the wipers or start a cool light sequence. Each action comes in combination with a sound, played by speakers which are hidden under the hood. Once you're finished controlling the car you can send your minute of fame to all of your friends!
Have look at this live at the website, or have a look at this video which I've found on youtube:

We were asked to get the technical part done and make a system for Achtung! so they can just call some methods on the car fromthe Flash front-end which they've build. This meant that we had to make the following:

  • Installing laptops inside the car and set up Flash streams over UMTS
  • Installing a laptop in an other car and start Flash streams using an outside camera and UMTS
  • Changing the car, so we can give the lights/horn/wipers power once the vistor on the website tells it to.
  • Placing speakers somewhere under the hood, powerful enough to make as much noise as the horn, and small enough to be unnoticeable and portable.
  • Building a queue manager in order to give the longest waiting person in line control over the car.
  • Recording video's on the server, to watch back your minute of fame while playing with the car.

Setting up the streams was all straight forward, since we're experienced on mobile streaming. However, setting up something that controls the car is a whole different story. Lucky enough we've worked with Phidgets in the past, which are small electronics you can attach by USB on your pc and can be accessed from the Flash player (and a lot of other players/program languages). So basically, we can say in Flash "switch power on on port 1" and "switch power off on port 6" and this will cause in switching 5 volts of power on different ports. People with some electronic experience know that this can be used for relays switching something on and off.
Since this can be done from Flash, we can let Flash communicate with a RTMP server as well (in our case my favorite one for applications, Red5!). Let the visitor communicate with that same red5 server and you're there.
To simplify this, you can say that it works as follows:

  • The user clicks on button to put the lights on.
  • Flash player calls a function on the red5 server "turnAllLightsOn()"
  • Server invokes this call on the connection of the car
  • Flash application inside the car receives "turnAllLightsOn()"
  • Flash application switches power on port 1
  • Relays detects power and will turn the lights on.

(more...)

BMW interactive testdrive campaign video

Once in a while I receive a request for more information about the BMW campaign I was involved in. The campaign is over and the site is not operational anymore, which makes it hard to get an impression of what was going on. Lucky enough there's been made a video of it, which I've uploaded to Vimeo.

AS3 clickTag case and popup blocker fix

Last week we've been struggling to get our AS3 banners ready for publication.
One of the more common problems anyway, is that some ad management systems requiress clickTag (lowercase "ag") and others requires clickTAG (uppercase "AG") in order to load the right URL. This is very annoying, especially when you have to make 2 versions for different publishers and you need to do a text change... When you have a big capaign with let's say 5 banner formats, and 3 banner variants, you already have to make 15 different banners. In case you need to deliver banners with a clickTag and a clickTAG, you'll end up with 30 banners. In case you've ever build banners yourself, you see my point. It's soo easy to lose the overview when you have so many files looking almost identical to each other.

A new problem with banner build using AS3, is that some browsers will block the navigateToURL requests. A trick for this is let javascript open the URL instead of actionscript.

Both of these things have been recently an issue, so that's why I decided this weekend to wrap this all up in a clickTag class, which is universal for all different case combinations of the word clickTag. Beside that, it will open URL's correctly without a browser which is blocking it. (at least, as far a I know).

Instead of adding a button on the stage, set up all the event listeners etc, you can now use:

 
var clickTag:ClickTag = new ClickTag(300,250);
clickTag.enableClickTag();
addChildAt(clickTag,0);

It's just as simple as that. In case you want a custom shaped button, you need to assign it to clickTag by using "clickTag.setButton(btn);".

In order to open the links correctly, you need to make sure that the parameter AllowScriptAccess is set to "always":

<param name="AllowScriptAccess" value="always">

Download this class and it's examples in Flash and Flex here!

First Unity3D usergroup meeting report

Last Thursday evening the first Dutch Unity3D usegroupmeeting took place and as far as I know it, it was the first Unity3D usergoup meeting ever worldwide. We received 20 signups and about 15 people showed up. This was a small group of very enthousiastic people. Some of them where new to Unity and others where very experienced.

We started off with Lucas Meijer, his session was planned to go about realtime 3D basics. However he had a small surprise in mind for us coming directly from the Unity3D headquarters in Copenhagen: Sneak peaks of Unity3D 2.5! Including showing us the Windows version! The guys at Unity3D have done an even more awesome job with this upcoming version. I personally can't wait till it's out!

Next on stage was Stijn Raaijmakers and myself, presenting about our work to get RTMP support in Unity3D. This was quite a technical sessions, but I've heard some possitive feedback about this afterwards. People seem to be really interested in the combination of Unity3D and RTMP/Red5. The session ended with a multiplayer "Tropical Island" (the default Unity3D project once you install it), in combination with a top view map build in flash, to see the location of each user on the island.

After the break Vincent Verweij started with his session about Unity3D iPhone. It was very interesting to see some Unity3D work on the iPhone and hear about Vincent's expierence with development. And beside that his experience with Apple in general.

Bas Smit did the last talk of the evening about building custom shaders for Unity3D 2.5 using ShaderLab. He did a good job explaining why you somethimes want to do this and how you can achieve it.

We planned that each presentation should fit in 30 minutes, but we found out this was way to short (Note to self: next time, shedule each presentation for an hour). So we where done with the presentations around 11PM and it was time to talk with each other in person. I heard nothing but possitve reactions about this meeting, so it's not the question if there will be a next meeting, it's the question when it will take place...

Read more to see some pictures made during the evening, to get an impression about what was going on.

(more...)

Multiplayer Unity3D using Red5 presentation slides

I've just uploaded my presentation which I've held at the Dutch Unity3D usergroup meeting last Thursday. Which is unfortunately Dutch only. ( Invite me to come over and talk about this abroad and I'll make an English version available ;-) )

Unity 3D Usergroup reminder + program

Within 2 day's the first Unity3D usergroup meeting will take place! In the last few days the sign-ups are going fast. In case you want to come over and have not signed up yet, please make sure you do ASAP, so we will be prepared for everyone.

We've just finalized the program and I must say that it's going to be a really interesting evening!

19.30 - Arrival
20.00 - Realtime 3D basics by Lucas Meijer
20.30 - Multiplayer Unity3D using Red5 by Paul Tondeur and Stijn Raaijmakers
21.00 - Break
21.15 - iPhone development using Unity3D by Vincent Verweij
21.45 - Custom shaders by Bas Smit
22.15 - Drinks
23.00 - Evening ends

Hope to see you Thursday!