Filed under: R&D

Creating custom Surface tags

As Surface develops who are active with many industry events, we've worked with integrating Surface and Surface tags in these environments. One of the downsides though is having to create each tag, assign it to a person, print each one on a Microsoft recommended printer and manually sticking the tag to each event badge. We worked with a printing partner of ours to develop a dry-erase material, full color bleed badge with pre-printed Surface tags that makes Surface an integral and less hassle part of events. Our CEO Joe Olsen explains more on Phenomblue.tv.

A closer look at Unity 3D

We’d be amiss to ignore game authoring tools when looking into emerging and new technology, so it made perfect sense when interactive developer Chris Crum dove into Unity3D. Originally developed solely for Macs, additional platforms have been added throughout the past few years including Windows, web browsers, iPhone and Wii. Chris did his research and hands-on discovery using the PC/Mac development kit.
Media_httpwwwphenombl_iijqa

Living room environment created in Unity3D.
The Basics Unity authoring is accomplished via a versatile IDE (which puts much of the Flash IDE to shame) and through scripts (which is where the big boys go to play). There are three programming language options including a variation of Javascript, C# and Boo (a dialect of Python). All of these are based on the open-sourced Mono framework, which is based on Microsoft’s .NET framework. Unfortunately, the Unity IDE does not include a very good script editor. This wasn’t an oversight by Unity, as they choose not to spend time and resources addressing this but giving users the ability to choose their favorite editor and use it seamlessly. So far, that goal has only partially been achieved, as setting up editors like Visual Studio, for example, can be a nightmare. Luckily, a release is coming most likely within the next month that makes Visual Studio the go-to solution for developers using Windows and programming in C#. Graphics/Performance While Unity’s primarily used for 3D graphics, 2D graphics are more than achievable and are seen in nearly every Unity game in interface overlays and menus. Both OpenGL and DirectX are supported, so yes the user’s GPU is being used to handle the heavy lifting of 3D – no big surprise here. Compared to Flash’s Actionscript, Unity Javascript runs roughly 20 times faster. Asset Importing Unity supports tons of asset types including 3D models, animations, textures, scripts and sounds. 3D applications like Maya, 3ds Max, Cinema 4D, Cheetah3D or Blender all import seamlessly, and Unity will even detect changes to those assets when they are saved. The same is true for Photoshop files. You don’t even have to save textures down to PNG, JPG, etc. Leave them as PSD files to keep the ability to turn layers on/off as adjustments are needed, and Unity will compress the remaining visible layers down into high quality DXT textures. Of course, PSD files are not the only image file type supported; you can also use JPEG, PNG, GIF, BMP, TGA, IFF, PICT and many other image formats. As far as audio is concerned, acceptable file formats are pretty straightforward: if you can play them in QuickTime, you can use them in Unity. This includes AIFF, WAV and MP3 file formats. There are also several video formats supported, including MOV, AVI, ASF, MPG, MPEG and MP4VIDEO, all with configurable bitrates supported. 3D Details Unity has more than 40 built-in shaders, including basics like diffuse and specular but also more advanced options like lightmapped bumped specular, reflective bumped vertex-lit and many more. There are also full-screen image effects like glow, blur, color correction, depth of field, edge detection, and motion blur. No 3D engine would be complete without shadows and lighting, and Unity really shines in both. Lightmaps can be used to bake vertex lights into models while dynamic realtime shadows add the final touch. All types of lighting effects are available for use including spotlights, point-lights, directional lights and lens flares. Other Cool Stuff Unity has networking capabilities right out of the box, putting multiplayer games, state synchronization, remote calls, www functions and .NET socket libraries right at the tips of developers’ fingers. Debugging is very well done; you can roll through 3D scenes, change variables at runtime and see the cause and effect of various combinations. The whole plugin is 4.5 MB download (smaller than Flash Player) and is streamlined to the point where there’s no need to restart your browser or even reload the page. Not So Cool Stuff The web plugin penetration is low compared to Flash, and Chris had a tough time tracking down stats for this. As mentioned, 2D abilities are there but are lacking and may not be amped up for a while. Most examples are in Javascript, not C#, which can deter or slow down some developers. And the decision of which version to use is tricky. The indie version is inexpensive but limited and includes a Unity splash screen, but the professional version can be very expensive. So What? As a company that designs and develops software for the advertising industry, Unity is a good fit for our more spatial/environment-oriented projects like virtual walk-throughs.  And it’s definitely worth a look from anyone considering any use of 3D or perspective willing to be an early adopter of a graphically stunning technology (in some ways, not unlike early adopters of Flash Player 10).

Our heads are in the cloud...

Media_httpwwwphenombl_tyhqb
Main screen for a cloud application.

Developer Jason McEvoy gave us a what’s what on Azure, a Microsoft solution for hosting services to give us an idea of how we may use this internally or for client projects. Basically, Azure is a set of connected computers that install and run services and supports multiple protocols (HTTP, REST, SOAP, XML). It comes as SDK for Visual Studio 2008 and supports both Microsoft and non-Microsoft languages (RubyOnRails, Python and in the near future, PHP). It uses Simple Data storage (tables, blobs, queues) with authenticated access). The pluses? Security is tight, comparative to Medium Trust. Everything is done through a web portal, not an FTP. The portal makes it easy to scale applications as needed (see photos), like adding more processing, which fits the pay as you go policy.  You can tie to your Windows Live ID for accounts too. The downsides? No FTP can be an issue, especially in times when it makes more sense to copy just the files you need rather than pushing the entire site. You can’t VPN into it, which is a problem for companies like ours where you may need access from virtually anywhere outside the physical office. A cool feature is the differentiation between staging and production environments. You can set a region for your services to reside for times you don’t want to run the website on one side of the country and have the database at the other side of the company. For example, you can specify all your services to run from servers from the Pacific Northwest. All in all, it seems that Azure is more suited to serve potential client needs than for our internal work. As a company that does both design and development for agencies located geographically far away, hosting in the cloud could be a great option for some project. Internally, the lack of VPN access and the need to rewrite existing processes would keep us from using Azure for much of our internal needs. But we think options are good, especially when you understand what can (and can’t) be done with them.

One, Two, Three and to the FLAR

Augmented reality has been a recent darling of the tech and advertising communities, and has been used recently in games, for products like Topps baseball cards and the USPS priority mail box and by brands like Doritos and BMW to supplement campaigns. It’s not hard to find demos of AR in action online, but very few of them tell you about the technology behind making AR happen. Our interactive developer Jason Bejot looked into a Flash-based AR method, the FLAR toolkit.  This brings AR to anyone with Flash, rather than limiting it to people who have purchased specific software. To implement the FLAR toolkit, you need Flash/Flex, Papervision 3D/Away 3D, a printer and a webcam. Jason created a demo starring galactic bounty hunter Boba Fett to try out the FLAR toolkit and show the rest of us what it could do. Boba Fett is an unaltered Quake II model from a model pack. Since Papervision handles those files natively, it was ultra easy to throw everything (FLARToolkit, Papervision and Boba Fett) together and have it work. In fact, it took Jason no more than two hours, including producing the code to make Boba Fett walk. FLAR toolkit is a cool step in AR, but the toolkit has limitations. It’s processor intensive; the Boba Fett demo used 40-60 percent CPU. There’s limited marker tracking, recognizing a low number of markers, no color, and low resolution.  The toolkit library is based on an old version, so it has limited features and isn’t actively developed.  But even with limitations in mind, we still think any development that opens AR and other emerging technologies up to more people is definitely a step in the right direction.