Tuesday, August 4, 2009

New Orleans (day 3 of 7)

(This post has been backdated, from 2009-08-06.)

Tuesday was more productive than Monday. It's also more abbreviable, so let me first lay out SIGGRAPH's general schedule for clarity.

Every day has essentially four segments: I 8:30 to 10:15, II 10:30 to 12:15, III 1:45 to 3:30, and IV 3:45 to 5:30. Some sessions span I and II or III and IV; and there are dozens of smaller gatherings or sessions or activities that don't respect the segments listed above, such as FJORG! or the various BOFs, or the Computer Animation Festival showings, which mostly come after IV.

Anyway, for me, I was occupied by Real-Time Illumination for Dynamic Scenes, which was interesting and useful; it primarily focused on screen-space methods, which aren't of much use to me in my current job (we try for photorealism, although we only occasionally succeed) but at least had shiny algorithms.

Contrasting this, in II I attended a presentation of technical papers grouped together as Perception and Deception Depiction. I admit that toward evaluating lighting design interface paradigms for novice users was useful -- not in the particular, although I cede that the concept of a light-painting interface was interesting`{::}^1` -- but in the fact that it actually collected hard, reproducible data about HCI, which hardly ever seems to happen, and that it laid out its method and methodology for collecting the data. However, I still probably shouldn't have attended, since it was a Technical Papers presentation-collection, and those are all included on the DVD I got with the full-conference admission ticket. (Well, that my employer got with my ticket, anyway.)

So leaving that session early, somewhere in the middle of evaluating human color perception in high-luminance conditions, meant I got to head to the Exhibition Hall and collect swag for the rest of II and the lunch break. Alas, there was little swag to collect -- or, from a less self-centered position, the exhibition hall was strangely small compared to last year's SIGGRAPH, with fewer interesting exhibitors. (Also those exhibitors that were present were much more aggressive about scanning the barcodes of my badge without first asking permission to flood me with their e-mail advertisements.)

... also I had what purported to be a muffaletta from the exhibition hall food dispensary. I have officially learned my lesson concerning food from within the convention-hall (that lesson being DON'T).

III and IV were taken up by a course on OpenGL, updated to use OpenGL 3.1. Alas, I am not sure what its intended audience was: the OpenGL 3.1 material did not make up much of the course, that being instead almost entirely taken up by a rehash of my college Computer Graphics course -- very basic 'how rendering works' stuff. I thought it was intended for artists who wanted to get into programming, but an one such artist considered it beneath him, and a second artist (less interested in programming) found the entire talk to have been over his head. I'm still not sure what the intended audience of the talk was. It may have been a set of people unlikely to attend SIGGRAPH.



`{::}^1` However, the primary conclusion of the paper was that 'interesting' doesn't imply 'useful' here, so don't get too enraptured with the concept. Even manually positioning the lights turned out to be more usable than that.

Monday, August 3, 2009

New Orleans (day 2 of 7)

So today was almost entirely taken up by SIGGRAPH. Which is reasonable, as it's why I'm here, but it does mean I'm putting in longer hours than I would if I were back in Houston, actually coding.

The day started at 8:30, which is reasonable enough, with a complete waste of time, which wasn't. One of the topics of this year's SIGGRAPH is "Informational Aesthetics" — a perfectly reasonable concept, especially in the context of HCI, but unfortunately this opening talk was... notsomuch, and I'll cover it in detail simply because I'm in an exceedingly lousy mood.

The talk opened with a description of the construction of various visualizations of a graph of the intercitations of articles published in various scientific journals. (An overview is at well-formed.eigenfactor.org, if you're curious.) The speaker referred to this as a "graph of science," which grated on my nerves — use of "science" to refer to the social phenomenon of the interaction of scientists, rather than the abstract process of learning about the world possible in a social vacuum, has never sat well with me. (On a similar note, he referred to the emergence of the discipline of 'neuroscience' — shown on one graph as a recategorization of journals originally from several distinct disciplines (1997) into a distinct cluster not previously extant (2005) — as a "story." This sets off all sorts of alarm bells.)

This was the most relevant talk of the three.

The next speaker presented this. While it was a reasonable application of computer graphics to augment dance, I'm not convinced it was very useful to non-choreographers. There didn't seem to be any analysis done; it was all representation and re-presentation of the data, as far as I saw. Once upon a time, this would possibly have been suitable for a video presentation, but while this may represent the cutting edge of choreography, it doesn't seem to be much of a SIGGRAPH topic.

The final speaker of the talk ... may have had potential, but did not use it. He had simply taken the output of the electricity-usage monitors in the Dartmouth undergraduate dorms and hooked them up to a gauge instantiated as the hand-drawn animated image of a polar bear — depicted as happy when usage is low, and in danger when usage is high. (Apparently this has measurably reduced electricity consumption in the dorms.) This is all well and good, but hardly seems to be SIGGRAPH material. Apparently there was some novelty, or at least nontriviality, to his data processing (determining what constituted 'low' and 'high' respectively). It might have been better if he'd gone into more detail about that...

At any rate, while fragments might possibly become useful in unforeseen future days, apparently I should have been attending Advances in Real-Time Rendering, where there was hard math to be had. Alas, when I entered around 10:00, the presenter said she was done with the integrals and filter equations and would now pass the stand to another. Indeed, the rest of the talk was relatively useless — there was a description of a deferred-lighting engine, and then a read-from-the-slides talk about light volumes (?) in Crysis.

I ate lunch between those two, around 11:00. This becomes relevant later.

After that, I wandered around upstairs, looking at the Emerging Technologies and Art sections, groups which tended to shade into one another at times. I note specifically, and with some fondness, the Funbrella — an electric motor / kinetic sensor mounted on an umbrella, allowing the wielder to feel the recorded sensations of spaghetti, marbles, and plush toys raining down upon them. More serious was the installation Hylozoic Soil, which is (as one attendee put it) "terrifying and beautiful" — a jungle made out of plastic and actuators that moves on its own in ways a (Terran?) jungle shouldn't. The creaking and buzzing vibrations that pervaded the setup (from the plastic and actuators respectively) were as much what brought it to life as the motions were, though.

The technical portion of the conference got back underway at 13:45. For me, that meant part II of the Real-Time Rendering talks, which started off with essentially an hour-long advertisement for Disney Interactive's Pure (racing game) and Split/Second (racing game with explosions explosions with a racing game attached). To be fair, Pure's segment described in reasonable detail their foliage-drawing methods... although their sort-avoidance algorithm seems kind of silly, given that you can "sort" the points in a regular lattice in a square by distance from any point not in the square in constant time. (Go old-school; think Bresenham's algorithm.)

Split/Second's segment had no such redeeming qualities, though. It was an ad.

After that, things picked up relatively quickly: the remainder of the talk had actual substance, covering depth-of-field, antialiasing, real-time raytracing (on two-generation-old hardware, no less!), and concluding with a detailed analysis and explication ("postmortem") of the graphics engine for Little Big Planet. (Note to non-PS3 owners: yeah, don't expect this to come out for any other platform anytime soon. The engine viciously exploits not merely the SPEs — essentially the entire vertex portion of the graphics pipeline is performed there — but specific quirks of the nVidia RSX's MSAA implementation.)

As this wound to a close, I went upstairs to the Sandbox, where a number of games were on display: Flower, most notably, but there were several, most being independent titles such as Akrasia and ... damn, I don't remember any of the others' names. There was an Xbox360 boxing game, a vaguely Silent-Hill-esque third-person game involving a goth girl running around in a foggy forest that I only got to see over someone's shoulder, and a game involving being a sphere that consumes other spheres by touch -- the only real mechanics for the last are 'momentum is conserved', 'large spheres consume small spheres' and 'you can eject very tiny spheres at high speed in any direction'. Fun. Also frustrating at the level I found myself playing. (Edit 2009-08-06: These are, respectively, Fight Night: Round 4, The Path, and... okay, I still don't know the last one.)

This was just to kill time in between the last talks and the previews of the Technical Papers, which lasted from 18:00 to 20:00. Two full hours of 50-second previews for some four-fifths of the papers to be presented. At least this lets me have some sense of which presentations to avoid on the grounds that their presenters will just be reading off of their slides, and whose papers I could as easily absorb without their presence.

I'm going to give those three at the beginning some credit -- none of them did that.

So I came to the convention center at 8:30; I left eleven and a half hours later; and I promptly staggered northward to the first restaurant I found, one Mulate's. (Which, for the record, had better music than food. Which is not to say the food was bad; it was just nothing to write home about. So I won't.)

To close the day, which had already been long enough that I should probably have had the sense to throw in the towel for the night, I headed to the ACM SIGGRAPH party, at the Generations Hall -- a fairly standard club, and a fairly standard party, and therefore as much of a waste of time for me as the day's opening had been. (It was worth a shot, I suppose.)

Tomorrow will hopefully be less full than today.

Sunday, August 2, 2009

New Orleans (day 1 of 7)

So as I stepped off the plane, I thought instantly: "Hm. Smells like New Orleans."

Once I got down to the baggage claim, it started sounding like New Orleans too: in front of the carousel was a four-man jazz band, advertising SIGGRAPH 2009.

So, after taking a cab to my hotel (which I learned later was a total waste of money, as there was an airport shuttle which stopped by my hotel), I spent most of the rest of the day wandering first around New Orleans, a few blocks from the convention center, and second around the convention center itself. The Ernest N. Morial Convention Center is large enough for SIGGRAPH, which by now is astonishingly large.

New Orleans -- at least the part where I am -- looks basically like any other city of my acquaintance, if a bit more obviously worn and suffering from urban decay. (Not hopelessly so, mind. There is clearly growth, and not in the 'mold' sense: there's a 24-floor building that'll be going up soon, not a mile from where I sit, and some buildings and shells are clearly undergoing construction and destruction.) The only restaurant I've eaten at so far -- the Sun Ray Grill -- is essentially a tourist trap; I may go back there the last day of the trip, but not sooner. (A tip for the management: sweet-potato crisps? Not so good when served lukewarm-to-cold.)

The setup phase of SIGGRAPH, at least, was in full swing; registration had already started, and I was able to get my badge and conference DVD relatively quickly. SIGGRAPH is no longer actually printing full programs, in order to save money be more eco-conscious, so I've spent most of the rest of Sunday reading the .pdf of the program on this netbook. (Hopefully next year they won't stick with their customary design; it was nearly unreadable on a 1024x600 screen, even sideways in full-screen mode. Pro tip: the plurality-of-vertical-columns layout that's so suited to printing on an 8.5" x 11" page is an absolute bitch to read on a small horizontal monitor, and is still a headache even on vertical ones.)

Thursday, June 4, 2009

Yume no naka e...

... itte mitai to omoimasen ka?

(a song)

Monday, June 1, 2009

the white chamber

The White Chamber is the name of two distinct games. One is a rather lackluster Flash-based one-room puzzle game by FASCO-CS; the other, and the subject of this review, is a psychological horror/adventure game by Studio Trophis.

I'm going to spoil this game, in a way: I won't reveal any plot points, imagery, or even the solutions to any puzzles, but I will discuss one of the tricks it uses to set up the atmosphere of horror, and it may ruin much of the feel of the game. The following text has therefore been ROT13'd for the casual reader's safety.

Irel rneyl ba va gur tnzr, jura lbh fbyir gur svefg chmmyr, lbh cresbez na veeribpnoyr npgvba naq ybfr npprff gb gur svefg ebbz bs gur tnzr. Gurer'f abguvat vzcbegnag yrsg va gung ebbz — ol gur gvzr lbh jnyx bhg, lbh'ir frra rirelguvat lbh cbffvoyl pna frr gurer. Ohg vg'f fhqqra, naq wneevat, naq lbh'er tvira gur vzcerffvba gung gur tnzr vf, ba gur Zarfian scale, anfgl.

Guvf vf nyzbfg ragveryl n snyfr vzcerffvba: nyzbfg rirel bgure chmmyr va gur tnzr vf npghnyyl zrepvshy. Ab 'zbir' be 'hfr' pbzznaq pna pnhfr gur tnzr gb raq be orpbzr hajvaanoyr. (Gurer vf n tbbq raqvat naq n onq raqvat, naq gur jnl gur pubvpr bs raqvat vf qrpvqrq vf Mnesvna-pehry, ohg guvf qbrfa'g nssrpg lbhe novyvgl gb trg gb gur raqvat.) Gur bayl jnl gb qvr vf gb sbbyvfuyl nafjre "Ab" gb n dhrfgvba jubfr cebcre nafjre nf "Lrf" fubhyq or boivbhf. (Naq lbh trg gb fnir orsber lbh nafjre, naljnl.)

Oh, but make sure you take the axe. Some puzzles and events seem to assume you have it; I haven't tested to see if this is actually a problem, though. [sic]



I approve of the main character's appearance for several reasons, mostly because it subtly plays with viewers' expectations. The climax and denouement make it clear that she's not what she looks like — but not in the tomato-in-the-mirror sort of way you'd expect from reading that sentence; it's just that her appearance and outfit is styled to give an impression which, in the context provided by the epilogue, is plainly false simply because said epilogue quietly and nonchalantly rebukes several assumptions most people will not even be aware of making. Unlike the above, this is not a spoiler because I am almost entirely certain you will not realize what I mean by that until you see it at the end.

The voice acting did not make me want to jab my ears out with a rusty knife, which is always a plus; I did usually interrupt her, but I am impatient and can read faster than anyone speaks. (I did find it curiously jarring that our protagonist spoke with an American accent, but was subtitled in British English.)

As for the horror aspects, I can only compare this game to Silent Hill 3 — that being the only other graphical psychological-horror game I've played (though of course it's also rather similar to many an amnesiac-protagonist IF game: Babel comes to mind). The FPS-ish elements present in SH3 (or other games referred to as "survival horror") are obviously absent. As a whole, it's not quite as creepy as SH3, but this is largely due to its much shorter length. (There's probably slightly less gore per minute, but not by very much.)

The game is actually very short — five or six hours' play, perhaps. Ten if you go slowly. There's no hunt-the-magic-pixel difficulty here — all the interactible-with objects are fairly obvious, and if you're still having trouble there's a configuration option which allows you to use Ctrl-Tab to cycle through the mouse-sensitive areas of the screen, the way you can in some Flash games. Its use takes nothing away from the game. (By contrast, FASCO-CS's rather annoying puzzle game relies almost entirely on this sort of fake difficulty, being one of the sorts that disables Flash's built-in use of Tab to cycle through sensitive areas of the screen.)

The artwork is quite good; the animation is, at worst, occasionally a little stiff, but not unforgivably so.

Altogether I can rate the game 1/1, and express some sorrow that Studio Trophis hasn't released anything else. They've supposedly been working on a game entitled For the Game — "Rest assured we are still working on this project and would like to stake our reputations that you'll finally get to try For The Game yourself before the end of 2008." ... yyyyeah. Ah well; c'est la vie.

Tuesday, May 26, 2009

Programming jokes

I've been saving up a few random programming jokes. Since I no longer care about post lengths, I shall post them now! Warning: they are all horrible, vile puns.



1. “... and, since the language was essentially a combination of Perl and Haskell, we of course decided to call it Blaise.”

2. The following four (?) lines of code are potentially legal (if probably useless) C++, even in the absence of preprocessor defines. (Writing a prologue to actually make it compilable and executable is left as an exercise for the reader.)

o.o ^_^x <_< n_n >_> z_z ;_; ~_~ -_- *_*
‍ ‍ ‍ <(o_o)>~~~ o_O; x.x <3 +_+ 9.9 >_<!!!
‍ ‍ ‍ (T.T )( T.T) ._. H_H ^o^ '_' %_% x_X;


3. Loosely related to the above: one of the things I love about working with computer graphics is the fact that I'm working specifically with 3D graphics. This means I get far too many opportunities to write the following:

for (size_t i = 0; i<3u; i++) { ... }

4. “So this guy walks into a pipe...”

Sunday, May 24, 2009

Okay, that's enough.

No, really. The towel is thrown in, and I am done, thank you.

It's not that I absolutely can't continue. If nothing else, I think, I've shown that I can consistently keep writing; the second half-year woludn't be any more difficult than the first in that regard. It may seem like I've been scraping the bottom of the barrel recently, but if I'm honest about it, it never was all that much better.

The fact that it doesn't seem to be any better now, though, that bothers me.

The biggest problem was that the original goal I set myself — to write more quickly — has been a complete failure: the time it takes me to compose a post is, frankly, absurd. I doubt a single one has taken me less than a full hour, and far more often they take two to three. (This post was no exception.) I've never had more than a day's buffer of scheduled posts, and I've never had that even that much buffer for more than a day.

Doing this (and, worse, avoiding doing this) basically eats up all of my time, and gives nothing back. (Most people do it for the joy of feedback; but if I had a million followers, it wouldn't matter — that was never the point.)

I bought a copy of Soul Calibur IV just before I started this nonsense. I've played it all of twice. I haven't seen a single episode of Fushigi no Umi no Nadia since November. I haven't gotten any farther in Eternal Sonata. (I was in the bonus dungeon — I still have the GameFAQs page for it open in Firefox!) The last time I studied music theory was at SIGGRAPH, when I brought along a book for the plane trip and airport wait. Never mind kanji practice or type-theory papers or looking into vocal lessons.

So yeah. No more daily posts, no more post restrictions, no more anything else but random whimsy. If I come up with something to post, I'll post it; but it'll be as long or as short as it needs to be, and not measured.

But tomorrow — tomorrow, there will be no post, and no explanation nor apology for it.