Showing posts from November, 2009

3D toolchain musings

I'm writing a skinning sample for a future Android SDK. This has prompted me to construct a toolchain to get skinned animated models into Android applications. I'm really only just getting started, but so far I'm thinking along these lines: Wings 3D -> Blender 2.5 -> FBX ASCII -> ad-hoc tool -> ad-hoc binary file -> ad-hoc loader. For what it's worth, right now Blender 2.5 doesn't support FBX export, so I have to do Collada -> FBX Converter -> FBX. But Blender 2.5 support should be ready fairly soon. You may wonder why I'm considering using the proprietary and undocumented FBX standard rather than the open source Collada standard. I'm doing it for the same reason so many other tool chains (e.g. Unity, XNA) do, namely that FBX is a simpler format that just seems to work more reliably when exchanging data between DCC applications.

Blender 2.5 alpha 0 is looking pretty good

The open-source Blender 3D DCC tool has long suffered from an ugly, non-standard, hard-to-learn UI. I'm very happy to see that the latest release, which just entered alpha status, has a much improved UI. It's not quite Modo quality, but it's starting to get into the same league as commercial DCC tools.

Two very good talks on ECMAScript 4, 5, and 6

Yahoo continues to be a source of excellent information on recent and future versions of JavaScript / ECMAScript. Here are two very good talks from November 2009 about the evolution of JavaScript from 2000 until now: Doug Crockford on ECMAScript 4 /5 Brendan Eich on ECMAScript 4 / 5 and Harmony

Prince of Persia Developer's blog

In the late 1980's Jordan Mechner single-handedly designed and programmed the original Apple II version of Prince of Persia and several other groundbreaking games. He published his development journals and technical design documents on his web site. The journals touch on: The development of the stop-motion animation techniques used so effectively in PoP The tension in Jordan's life between his two callings: game development and feature film scriptwriting / directing. The difficulties involved in developing and selling a new game idea. A view into the late 80's / early 90's pre-web game development business. Although many games are now written by large teams of people, in the end, a lot of the business, artistic, and technical issues Jordan writes about remain relevant. I highly recommend these journals for anyone interested in an inside view of game development. (Or anyone interested in trying to break into Hollywood. :-) )

A Multi-threaded Go Raytracer

Above is the output of the raytracer. Below is a diagnostic mode showing which goroutines raytraced which section of the screen. Each goroutine has its own color to outline the pixels it traces: I wrote a simple multi-threaded ray tracer in Google's new "go" language. It's an adaptation of Flying Frog Consultancy's Raytracer . It runs single-threaded about 1/2 the speed of a comparable C++ version. I guess the C++ version benefits from a more optimizing compiler and the ability to inline small functions. Compared to ordinary C/C++, the Go version was easier to multithread. On my dual-core Macbook Pro I get an 1.80x speedup when running with GOMAXPROCS > 1: $ GOMAXPROCS=1 time ./gotrace 1.52 real 1.50 user 0.01 sys $ GOMAXPROCS=2 time ./gotrace 0.82 real 1.50 user 0.01 sys $ GOMAXPROCS=3 time ./gotrace 0 .81 real 1.50 user 0.01 sys On an eight-core, 16 Hyperthread HP Z600 running

How about that new Verizon Droid?

I've been working part time on the "Droid" project for the last year, and it finally shipped today. I wrote some of the graphics libraries. At first I was skeptical of the industrial design. The early prototypes looked very much like a 1970's American car dashboard. But Motorola really improved the industrial design in subsequent versions. I like the high-grip rubber on the battery cover. It makes the phone very comfortable to hold. The phone hardware is very fast, and the high resolution screen is beautiful. I think people will enjoy owning and using this phone. My favorite feature is the turn-by-turn navigation software. My second favorite feature is the "Droooid" default notification sound. Oh, and the camera flashlight is very nice too!

Wired article about Demand Media's automated How To videos

Man, the web really does change everything! The company " Demand Media " has developed a Google-like business model for creating how-to videos: Use data mining to figure out what people are searching for. Use semantic database to figure out what their search queries mean. (e.g. "how to draw a gun" vs. "how to draw a flower".) Find out how much advertisers are willing to pay for an ad that appears next to the video. Look at how much content already exists to answer the question. Use 1-4 to calculate the expected lifetime value of the how-to video. Automate the process of matching freelance writers, videographers, editors, and fact checkers to create the video as inexpensively as possible. (In the $30 per video range.) Host the resulting videos on Youtube (and other video sites) and monetize with ad keywords. They say that the algorithm produces lifetime values about 5 times higher than human editors do. These guys have basically automated the "How t