Web Service Explosion: Put Out The Fire With FriendFeed

How many web services do you use that have a section for linking into your other web services? I love having my internet presence linked together. But the number of links grows quickly. 10 services means 50 links that you have to maintain.

Most of these integrations are there just to post nice status messages from one place to another or provide a link to a profile. Why not use a central service like FriendFeed to handle the details? The FriendFeed API is almost there. If FriendFeed had better options for the API to push outwards, 90% of that service configuration box could go away.

Austin GDC Talks

Hello world!Server Idle

I gave two talks at Austin GDC last week. The slides for both are available now. Check them out!

  • Robust Efficient Networking How to make great networking for your game. Also interesting for people working with Torque’s networking (as I discuss a very similar architecture). This was a lot of fun to research and give. I had a friend do the art. People seemed to really dig it.
  • Unlocking Flash To Build The Next Great MMO Is it possible to build a great MMO in Flash? Learn about the possibilities and the technical issues involved. I gave this one with Rafhael Cedeno of Multiverse.

As always, feel free to e-mail me with any questions or comments! You can reach me at .


A bunch of great papers related to Larrabee from Siggraph 08. Great perspective on parallel computing in general.

My read is that the GPU guys don’t have a clue. A lot of their talent has moved on. They’re focusing on maximizing flops without realizing that it isn’t always the flops that matter – it’s how you spend them. There’s for sure a market for teraflops of raw power, but LRB’s feature set maps so beautifully to rendering that I think the reduced performance is going to more than make up for it.

The trend in rendering is towards branch-heavy shaders doing random access. GPUs are fast when you’re doing branchless shaders with linear access patterns – but the trend is forcing them into the realm that Intel has been dominating for thirty years.

I guess we’ll see where things are in five years. But you can see which way I want things to go. ;)

Graphics Paper Roundup

All of these papers except the Larrabee paper were found on Ke-Sen Huang’s list of recent graphics conference papers. Fantastic site, well worth a browse.

Larrabee: A Many Core Architecture for Visual Computing – Larrabee is huge. If they can deliver, Intel is going to go from laughing stock to dominant force in the GPU industry. In five years, every CPU will have the capability to run Renderman in realtime. GPU manufacturers are running into a wall as they try to implement fast general processing. Intel has the expertise and muscle to pull off a massively parallel general rendering architecture and get it into the marketplace.


Lapped Solid Textures – A mechanism for texturing a whole solid object, not just the surface. The best example from their talk is a kiwi – it has skin on the outside and all the right striations and chunks inside. The artist provides a small exemplar 3d texture, and uses the interactive editor to indicate how the object should be textured. The tool does the rest. Very cool, especially when you start thinking about breakable objects. kiwi.png
Shading-Based Surface Editing – The authors present another image based mesh editing technique. In other words, you scribble on the shape in 2d and it affects the geometry of the mesh. This one is based on you sketching shading onto a surface to affect its contour – draw a shadow and you get an appropriate shaped bump. bunny head.png
Interactive Procedural Street Modeling – Latest greatest procedural city tech. The video is a lot of fun, especially with the flythrough at the end. I keep waiting for Introversion to release that game they posted screenshots of with the procedural city.


Improved Seam Carving for Video Retargeting – You remember that cool seam-based image resizing stuff that came around about a year ago? These guys extended it to video, and also revised the decimation metric to give better and more consistent results. video seam.png
CHC++: Coherent Hierarchical Occlusion Culling Revisited – Pretty cool hierarchical occlusion technique. Hardware and the algorithms are finally getting good enough that occlusion queries seem to be a viable technique. I’d love to try this out in Blockland, which would benefit quite a bit from a good occlusion system. oq.png
Statistical Reconstruction and Animation of Specific Speakers’ Gesturing Styles – They build an algorithmic model of Jay Leno’s body language and have the virtual Leno recite the intro crawl from Star Wars. The paper is actually pretty interesting; lots of good observations about body language (from a weird CS algorithm perspective).


Always lots of cool stuff coming out around SIGGRAPH. Graphics technology just keeps getting cooler and cooler. :)

Working with the Apple Remote on Boot Camp

Apple Remote Maybe you want to listen to ALL the events that come in off the Apple Remote. I don’t know how to do that under OS X, but here’s how to do it under Windows with Boot Camp:

  1. Open up the System icon from the Control Panel.
  2. Choose the Hardware tab.
  3. Click on the Device Manager button.
  4. Expand “Human Interface Devices” in the tree view.
  5. Right click on “Apple IR Receiver” and choose Update Drivers…
  6. Choose “Install from a list or specific location” and click next.
  7. Choose “Don’t search.” and click next.
  8. You’ll see a list with several options. Choose “USB Human Interface Device” and hit Next.
  9. Continue clicking “Next” to get through the wizard. Eventually you’ll be asked to reboot, after the drivers are installed. Do so.
  10. Reboot. Now you will get complete and unfiltered HID events from the IR Receiver. In addition, +/- and Menu will no longer change your volume or launch iTunes.

At this point you could grab a program like EventGhost, and use the HID plugin (at the bottom of the list of plugins) to listen to events from the remote and do whatever you like with them! Be sure to uncheck “Trigger enduring events for buttons” and check “Use raw Data as event name” or you won’t see any events.