WordHunter Xtreme 
Try out WordHunter Xtreme Now!

WordHunter Xtreme was created for the Google Gadget University Awards, and won for Most Addictive. It was made during the numerous Google Gadgets workshops that I held for UPE in the fall. I'm proud to say that USC won for top university submission in the awards, and that another USC student, Ryan Brown, won Most Useful gadget with his WebClip gadget that lets you turn any webpage into a gadget.

Anyway, WordHunter Xtreme is inspired by the classic word game, Boggle, where you scramble up a bunch of letters in a grid and try to find words in connected chains of letters. It's got a twist though-- it uses the WordNet and UrbanDictionary APIs, so it lets you guess slang/acronyms/etc., and shows you the definitions for each. Seeing the definitions is the best part for me-- the UrbanDictionary definitions are hilarious. There's a user preference for showing the WordNet or the UrbanDictionary definition first, and I recommend choosing UrbanDictionary for a good time.

I'm experimenting with using Foreign language dictionaries as well, and adding a feature to let you email definitions to a friend. But it's pretty fun for now, check it out. Email with suggestions. :)

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 29 )
Sizzling Stylus! 
Watch the Sizzling Stylus Presentation/Demo Now!

I took Advanced Mobile Games & Devices this semester, as it's our newest & most exciting Gamepipe class and I'm a fan of mobile games lately. They're perfect-- I play them while I'm waiting in line, biding time in a taxi, ignoring seatmates on the airplane, etc. More importantly, they give me an excuse to charge my cell phone. I can't justify charging it just so people can call and harass me. ;)

Anyway, the class was great fun. It was sponsored by Motorola, who gave us their development platform and gave us several talks about it, specifically on using it with VoiceXML. On the first day of class, JAMDAT (now EA Mobile) engineers Mitch Lasky & Zack Norman gave an amazing talk on what makes a good mobile game-- hint: it involves the Battle of Wits scene from "Princess Bride."

Our main goal for the class was to make a multiplayer game on the Motorola phones. Fred Zyda & I proposed a remake of Namco's Flamin' Finger, after we visited a Dave&Buster's and spent way too many quarters trying to beat it. So in a group of 5, we tackled the project. Our main problems were with networking, untraceable segmentation faults, and space loading issues. But really, it was an easy game to make, and it's fun as hell. Check the link above for the presentation we made on Demo Day, or just check out the video here.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |   ( 2.9 / 39 )
Newsmakers Of The Day (NOT'D) 
Add NOT'D to your calendar today!

This mashup was created for the ClearForest Semantic Web Services Contest
and won third place.

On the back end, I created a script that parses all the news feeds from a particular news source (CNN, BBC, USA Today), keeps track of how many articles each found entity appears in, and then uses Google Images to find appropriate images for each of the entities.
An XML file records the results per category-- Person, Company, Product, City, Country-- per day.

On the front end, the current manifestation is a Google calendar "web content." This is a recently added feature to Google calendar, which lets you embed events that will show a small website or image when clicked on, right inside the calendar. This has so far been used for holiday images, moon phases, and movie releases. By including the Not'd calendar, the user can click on the little newspaper icon each day and be presented with
the Person/Company/Product/City/Country of the day, with images and articles.

The purpose of this is two-fold. First, it's a new way of browsing the news. I personally don't find myself browsing traditional news sources, but now I find myself curious to know who the person or company of the day is, and occasionally read the relevant articles to find out why they are.
The second purpose is to have an objective way of determining, e.g., the "Person of the Year," in terms of newsmaking.

Since the app is so new, I haven't been able to do any long-term calculations, but I hope to do so after I accumulate more data.
I'm also currently looking into more ways to show the data-- specifically, an image-tag cloud, with size of image corresponding to frequency.
This is not yet ready for release however.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |   ( 3.2 / 45 )
Game Projects Demo'd on TV 
Watch the TV segment now!

Fox News LA came to USC GamePipe a while ago and interviewed fellow TAs and myself about our experience in the game program. Due to their fascination that a girl was working in the video game lab, I was put in the foreground or background of most of the shots. It was all well and good until I was forced to play Madden football. Those were the most incomprehensible 3 minutes of my life. Those who go to football games with me know I go only to check out the creative ripped-up USC shirt fashionry, and to make up inane things to shout in deep manly voices.

In the segment, you can see two games I worked on -- Firescope, shown as a burning building in Downtown LA, and Dukats, shown as a cartoony (white trash) character traveling around a building-littered valley.

For Firescope, I created the environment. The buildings are an automated simplification of GIS data, and the ground is textured with various levels of detail based off Google Maps textures. More info here

For Dukats, I worked on the game design, modeled and textured the environment, characters, props, etc., and programmed the personality engine. More info here

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |   ( 3.1 / 65 )
DCT Encoder/Decoder 
Try out the DCT encoder/decoder now!

Our assignment for CSCI576 (Multimedia Systems Design) was to write a DCT-II decoder/encoder. For a good detailed explanation of DCT-II, read this paper. Basically, DCT-II is what's used for JPEG compression. It's a type of Fourier transform. For each color channel (R,G,B) of every 8*8 pixel block, the DCT encoder analyzes that block in terms of 64 basis functions of increasing frequencies, and finds the coefficients for the basis functions so that when they're added together, they create the block. Typically the coefficients are quantized for sending over a network, so instead of sending 0-255, it'd send 0,50,100,150,200,250, e.g. Quantization decreases the number of bits needed to send the information. The DCT decoder recieves the (quantized) coefficients, and performs an inverse DCT to figure out the intensity of each pixel.

Anyway, the best way to understand it now is to use the applet. You can try image1.rgb, image2.rgb, image3.rgb, or image4.rgb for now. The applet does the encoding and decoding of each block.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 73 )