What Can YOU Do with 10K of Silverlight or WPF Code?
A lot, it turns out. Some long-time readers may remember my post of a year or two back where I set a fun little challenge to test what could be accomplished with just a single element of XAML. In the preparation for MIX09, the team created a competition that offered slightly more room for creativity, encouraging contestants to come up with the most interesting demo sample in either Silverlight or WPF using just 10 kilobytes of code.
It’s really exciting to see some of the samples that have been submitted. With over seventy submissions already, there’s some real innovation and a surprising amount of diversity on display. I wanted to highlight a few that particularly caught my eye. The range of entries demonstrate well the versatility of our client platform technologies and show some of the cool effects that you can get with very little work using the APIs that are included in the framework.
There are many more great entries on the site beyond the ones I’ve chosen below – these are just a few that caught my eye. There’s still time to submit an entry before the contest closes on Friday January 30th, so if you haven’t got an entry in yet, get coding! (And for the record, I’m not one of the judges for the contest and have no influence over the award winners – these are purely personal picks.)
|10k Forest This entry from David Bello was one of a number that were built in WPF rather than Silverlight; however, since it’s written as a XBAP, it runs in browser (so long as you have WPF installed) in just the same way as a Silverlight application. In this application, you can drive through a 3D forest (as pictured left) with mouse or keyboard. It’s obviously simple by comparison to a game, but is very impressive for the size of the code. Even when displayed at 1920x1200 on my desktop, it runs glitch-free and anti-aliased at a high frame rate. Not quite the Endor forest chase from Return of the Jedi, but impressive nevertheless!|
|CalcLight I was expecting that almost every entry submitted would be a small graphical demo, but it’s quite impressive to see something as substantive as a spreadsheet with formula support included in the contest. Applications like this demonstrate the versatility of Silverlight – it’s not just about video delivery or flashy graphics! Thanks to the .NET Framework and WPF-based control framework sitting behind it, Silverlight has the horsepower to handle sophisticated business applications too.|
|SilverRubix I thought this Silverlight-based Rubik’s Cube entry from Timmy Kokke was outstanding. He used almost every last available byte to create a 3D model of a cube that can be rotated and manipulated with a mouse. Given that Silverlight 2 doesn’t have any 3D support, he was at a huge disadvantage compared to the 10k Forest entry above, but he managed to create something that isn’t just functional but also looks visually impressive. The transparency adds a finishing touch. I particularly enjoyed reading Timmy’s two blog articles on the development of this entry: firstly a list of the techniques he’d used to squeeze the code under 10K, and secondly a short description of the implementation of the application. Extra credit on his part for being a good community citizen!|
|Turtle# This entry really caught my eye for its technical brilliance. I have to keep reminding myself that some of these entries are smaller than the magazine program listings I used to meticulously type in to my ZX Spectrum in the early 1980s. This one in particular would be hard to create in such a small amount of code with almost any other programming environment. Turtle# is a code editor and language interpreter for a lightweight Logo-like environment. Using simple commands to control the turtle’s orientation and ink color, you can create your own graphical effects. The language isn’t complex, but it includes simple flow of logic statements to repeat operations. The application even includes a tutorial that contains a fun “easter egg” demo.|
|Raindrops Orchestra Of all the entries, this one was perhaps my personal favorite. By clicking on the canvas in various places, you create ephemeral “sound drops” that are reminiscent of a Brian Eno album. In less than 10K, mokosh has created one of the most atmospheric web pages out there. I’d just love to see what the 20K version is like. This entry cries out for the ability to change a few settings – for example, to switch to a pentatonic scale or to record a sequence that could be replayed. It’s also a shame that the random play mode stops after about a minute – I’d otherwise have left this running in a background window when I needed a “chill” moment. Hoping for a v2!|
|Moustachr I only planned to include five entries on this blog post, but I just couldn’t resist mentioning Robby Ingebretsen’s wonderful entry. Moustachr adds a frighteningly realistic moustache to any photo you select, and with hilarious styles like the Zappa and the Zorro available, you’ll get a kick out of this. I include the sample screenshot against my instinct, knowing that from now on, this photo will be permanently associated with me on every image search engine out there. I fully expect folk to come up to me at future events and tell me that they didn’t recognize me without my moustache… And Robby – including a photo of our illustrious leader for wanton defacement? Poor form… J|
While I’m on the subject, I want to plug the MIX09 conference as a whole. This is the fourth consecutive year we’ve run MIX, and it’s shaping up to be a great event. We’ve got Silverlight 3 and many other surprises coming – make sure you’re there if you possibly can be.