It’s about time I provided you all with a general update on my life. I’m pretty sure you’ve been anxiously waiting for this moment, even if you haven’t realized it yet. One day - about ten years from now - it’s going to hit you like a meteor to the face: You like reading my useless little life updates. You might even love it.

Research: my research topic has juggled around a good bit, but I think we’ve finally settled on something. Moved away from botany/L-Systems into buildings/shape grammars. I’ve made a few rudimentary attempts at progress which have resulted in gobbly-gook, but that’s just how CS research works: you keep trying things until something seems like it’s solving your problem, and then you see if you can’t refine that to get better results than what already exists.

Movies: James and I went to see Smoking Aces, and it turned out to be nothing like what we were expecting. This is not necessarily bad, and I won’t go so far as to say I disliked the movie, but it wasn’t amazing. If you liked the trailer, it’s worth a look I suppose. On the other hand, He Died with a Falafel in his Hand turned out to be pretty awesome. It’s an Australian (I think) movie Whitney got off Netflix (I have no idea where she hears about these movies). And it stars one of the (minor) characters in Life Aquatic, so you know it has to be good.

TV: Heroes and The Office. Yeeaaa. All the hype you’ve heard about them is absolutely true. And 30 Rock can pretty good (Alec Baldwin is great in it). NBC’s stock is rising.

Video Games: Picked up Shadow Hearts, but haven’t given it a very good try. What I have played seems pretty interesting; the mood of the game is different than most RPGs and the battle system is definitely unique. It hasn’t drawn me in like some other games, but in its defense I’ve only given it about a half hour. I also got my hands on a copy of Xenogears, which means that I’ll be playing through that. I’ve played the first fifteen or so hours, and it’s absolutely amazing. It’s been pushed back on my list in lieu of newer games, although that’s probably a mistake. I’m also picking up Rogue Galaxy tomorrow (Mel conned me into preordering it). Preording it scored me a demo disc, but it didn’t give a very representative view of the game. After that, the next RPG I’m looking at is Dawn of Mana, though that doesn’t come out until the end of March. Moving away from RPGs, Ricky picked up Elebits. It’s actually a lot more fun than I gave it credit for. Very stylish and energetic. I’ve also become addicted to Wii Bowling.

School: There’s nothing of merit to report here. Classes are uneventful at best. However, between class work, research, and TAing, my schedule is rapidly becoming very busy.

Game Projects: I’ve been fiddling with random code. Updating my core engine to the new XNA platform. Getting some basic functionality reimplemented to make it better and cleaner. Thought of a small edition to my Process Manager that might make it a great deal more powerful/multipurpose. Also seeing if I can’t apply some procedural texture generation to some kind of project. A new version of Tao came out that’s looking pretty cool. I don’t remember if ODE support was in there before, but I’m glad to see it there now, since I want to play around with physics simulation. I think my next short project (which hopefully will be soon - the Experimental Gameplay Competition starts on the 5th of February) is going to be using .NET in some fashion, though I don’t know if I’ll use XNA or Tao.

Social Life: Very little to report here. I’ve basically just been hanging out with Ricky and Zach with ocassional cameos from James or Whitney.

Warning: This post will be technical. It is not intended to amuse an audience so much as it is intended to let me collect my thoughts. If upon reading this your head explodes, I take no responsibility. But I will be mildly entertained. Should you begin feeling a sense of vertigo, stop reading and lay down immediately.

My research has deviated from L-Systems/tree generation and has instead moved into shape grammars and building generation. This takes away complexity in one area but adds complexity in another. With L-Systems, the most challenging pre-research task is making the generated trees look realistic. Application of the L-System itself is trivial in comparison to making the rendered version look good. With shape grammars, it’s the other way around - once the shape grammar has been interpreted (which I’m still unsure how to do well), generating the appropriate building is fairly easy.

Shape grammars are built on L-Systems, and thus they can look fairly similar (as they would look similar to any grammar, really). Basically, you start off with some ‘lot’ - a simple set of non-terminals that represent the features we’re starting off with. Same as an axiom in L-Systems. Then you apply production rules repeatedly until there are no more production rules left to apply (this is different from L-Systems, which could be applied indefinitely to produce more complex images). Production rules come in tons of varieties, from simple rules to divide your geometry into distinct sections (splits) to facilitate other rules, to the placing of specific features such as doors or windows. After all the rules are applied and the smoke settles, you’re left with an automatically generated building. If your rules were good, that building is life-like. Like L-Systems, there are also context-sensitive and stochastic shape grammars to make the language more expressive.

Then there’s the creation of things like bricks or textures which you really don’t use shape grammars for - there are other methods (I’m not focusing on right now) to do this procedurally.

These topics, however, are the foundations of my research - not the research itself. My goal is to take a picture of a building and generate the appropriate shape grammar which could then be used to, well, generate that building again. If the benefits of this aren’t clear, consider this:

A typical image can range anywhere from 256×256 to 5000×5000 pixels in size. Each of these pixels takes up about 3 or 4 bytes, depending on the file format. Assuming no compression (which is a bad assumption) and assuming the file header is negligible (which it typically is), you could be looking at 5000×5000x4 bytes. I’m too lazy to crack open my calculator, but that’s quite a large number.

Conversely, a shape grammar can be specified in anywhere between 10-100 rules. Let’s assume that at the worst case, a rule can take up around 100 characters. If this is plain text (1 byte per character), we’re looking at 100×100 bytes total. I know there aren’t a lot of mathematicians reading this - I’m not one myself - but quick visual inspection shows that 5000×5000x4 is a whole lot bigger than 100×100. That’s a *lot* of file space.

Let’s also consider the cost in time investment. Coming up with 100 rules which all interact with each other is, well, tricky. I’m not skilled enough to do it, and I’ve read the freaking shape grammar paper over ten times. Having a computer do it automatically is decidedly untricky. To the point where a dog may hit a key and accidentally do it.

Hence, there’s some use for this.

I think that doing the shape grammar/building research is going to be significantly “easier” (I use the term loosely, because none of this is going to be easy) than doing the L-System/tree research, mostly because of how this all ties in to data mining.

To test the efficiency of my solution, the original picture and the generated picture have to be compared and feedback has to come back appropriately. I could be wrong here, but the way I see it, comparing two buildings for similarity is significantly easier than comparing two trees. The variations in the L-Systems along with how leaves are placed along with how hard trees are to make life-like can all muddle with the comparison, whereas buildings are more defined and rigid and easier to make photorealistic.

Further, modifying the L-Systems appropriately to approach a target image is still something I’m unsure about. For shape grammars, it seems to be largely a problem of feature extraction. We’re already bouncing around ideas - clustering being one of the more prevalent ones - to tackle this. While thinking of this, I’ve thought of a new potential clustering algorithm that I want to play around with.

Go to a place where fun is happening. A party or a bar or what-have you. One person (The Reader) reads a book - something big like War and Peace or the Diagnostic and Statistical Manual of Mental Disorders 4. One person (The Sleeper) sprawls out on a table or floor and takes a nap. The final person (The Whiner) sits in isolation and looks really depressed. Upon being approached and engaged by another person, The Reader looks up, shrugs, then looks back down and flips a page regardless of whether that page has been finished or not. The Sleeper rolls over. The Whiner gives short, non-commital answers and fits in self-deprecation whenever possible.

Try this sometime. It’s guaranteed to ruin any gathering or major military offensive.

The transition wasn’t entirely painless or without flaw. A few of the old posts had to be modified to behave with my upload program. They were all minor changes. Furthermore, none of the old posts will display pictures. There’s not really anything I can do about that. Also, I haven’t finished adding everything to the gallery. That will happen as time progresses.

There are many improvements with the new system, however. You’ll notice that the layout is slightly different. Navigation is easier. You can now easily search for things in old posts. You can leave comments to individual posts by clicking on the link at the bottom. The gallery is much more flexible and a whole lot easier on users. The forum is somewhat improved over the other system.

Overall, I think the transition was worth it. Now we have our own web space, and we’ll have a lot more room to make modifications and add things. I can’t promise the site is bullet-proof yet, so if you see anything broken or any glaring flaws, please tell me.

Oh, and also! You can now find Magnetica, our entry for the November ‘06 72HGDC, in the games section. Go check it out!

I am pleased to announce that we now have better web space and a domain! The first assignment for Intro to Open Source Software required us to purchase both (at a nice discounted price) from what seems like a pretty good place, so I went ahead and registered theanimalfarmcreations.com. The setup hasn’t quite finished yet, but once it does I’ll be moving everything over and, very likely, changing the layout of the site. Probably install a blogging tool so that updating is easier on us and also so that people can leave comments to individual posts without having to muck around with a forum. Happy Days. On a tangential note, if anyone knows of a good blogging tool and a nice way for me to take all these posts we’ve written over the last two years and insert them into that, drop me a line.

Adult Swim is requesting game pitches, and it pains me that I’m not going to be able to submit anything. The problem is that we’re expected to create the things we pitch, and while I would gladly sacrifice sleep and school performance to make something for them, I don’t know any reliable artists or musicians that would work along side me to actually make the game a quality production.

In good news, though, the Experimental Gameplay Project has announced a new competition that begins on February 3rd. It looks like it works similar to the 72HGDC - they’re going to release a theme and we’ll have two weeks to make a game following that theme. The top five entries will win interviews for internships at EA. Provided I don’t have any major school obligations, I’ll definitely be entering this.

I sincerely apologize for the long delay. The CSEE department, in their infinite wisdom, decided it was time for my account to expire. They made this decision without regard to the fact that I am still a student and need this space for legitimate school purposes. I’d like to say it won’t happen again, but experience hints otherwise. I imagine it will happen many more times.

You are now looking at - or at least you wish you were looking at - the TA for CS 450: Introduction to Operating Systems. I’m looking forward to trying my hand at teaching something more complicated than rudimentary data structures, although I have no doubts that this job will be rather demanding. Helping students debug a for-loop is a whole lot different than helping them debug low-level hardware access.

I rented Karas, Pirates 2, and A Scanner Darkly. I’ve also seen Casino Royale and Little Miss Sunshine. I shall talk about them briefly:

Karas is an anime I picked up on a whim, and I sort of wish I hadn’t. I didn’t like the pacing or dialog, and none of the characters were interesting. Some of the action sequences were pretty cool, but I don’t think they make up for the generally shoddy story. Only the first half has been released in the US thus far, and I don’t know if I’ll bother looking for the second half when it arrives. Pirates 2 was alright, but generally not as good as the first. I thought there were a lot more frivilous scenes (the entire section where Jack is treated as a king, for instance) and not half as much clever dialog. My biggest disappointment though was that it screamed of being an incomplete intermediary movie setting up a sequel. It does this moreso than any movie I’ve seen, not leaving me with any sense of completeness near the end. I suppose this isn’t too different from other trilogies, but I just felt it didn’t stand alone as well as, say, each individual Matrix or Lord of the Rings film. A Scanner Darkly looked cool, and it had a few nifty scenes, but it was largely empty of any real substance. It feels like it stretches on forever, lagging as it goes, and I didn’t really care about the “surprise ending” (if you can call it that). I may have liked it more if it were a short film.

Now on to the movies I liked. I’ve never been a huge Bond fan. I liked the Brosnan films well enough, but they never drew me to a theater - they were always something I’d watch when better options had been exhausted. The same is true of Casino Royale. I liked it well enough. The first chase sequence was amazing, and there’s definitely a lot of cool action to be watched. There are some good one-liners and some quasi-interesting twists here and there. This Bond definitely does the job well. My only real complaint is how unfulfilling the main story turned out - it’s all about money - but if you view the movie as being more about Bond himself as opposed to the spy story it’s not so bad. Little Miss Sunshine was perhaps my favorite of the bunch. It’s not overly funny - there are funny moments to be sure, but I wouldn’t call it a comedy movie and there’s nothing especially quote-worthy. I’m not sure that I can fully explain the appeal of the movie, but I think the characters, their personalities, and their interactions are definitely what make this movie worthwhile.

Aside from movies, Ricky and I picked up the Metal Slug Anthology and Excite Truck for the Wii. Metal Slug was largely a disappointment; for some reason, I thought I’d have more fun with these games than I did. Excite Truck turned out to be a lot better than we expected. There’s definitely a whole lot of fun there, and the use of the Wiimote makes it a different experience than any of the other console racing games. It makes me look forward to what the next Mario Kart could be. Unfortunately, I’m a little disappointed at the recent lull in good game releases. It seems like nothing good is coming out any time soon, with Rogue Galaxy being the only thing I’m even remotely looking forward to (and I’m not sure if I’ll be able to pick it up).

Moving away from media, my research is becoming interesting. Basic L-Systems offer a lot of room for improvement - parametric, stochastic, and context-sensitive L-Systems are all special cases that increase the expressive power. They can all be combined to create one very powerful type of L-System. Of course, they also increase the complexity a good deal. Just parsing these L-Systems is becoming an issue, and I’m thinking about using lex/yacc to help me there. Beyond just the L-Systems, there are still a lot of things I have to look into to make my research worthwhile. I’m expecing this to be a busy semester.