Upcoming Ops

A few busy weeks coming up!
On the heels of Contact, I'm heading to Madrid in a few weeks to visit See See and to scout around the shows of PHotoEspaña (suggestion of "must see" shows greatly appreciated), followed by a zip up to the much-overphotographed Guggenheim in Bilbao and whats sure to be entirely too much fantastic food.
Isaac's birthday and graduation from Middle School are also approaching, even earlier -- and then as soon as I'm back from Spain, he's in for three weeks of rock n' roll camp while we also deal with Siggraph, California Extreme, Oshkosh (maybe), Gamefest, and yeah, the girl on the far right of the photo above is carrying an NVISION bag, where I'll be speaking about the future of real-time character animation and rendering (with special guests -- some incredible NVIDIA partners).
Rethinking Gorman
It’s been a couple of years now since I wrote this entry on
digital Black and White conversions. I’m still using a variation of
the Caponigro conversion described there. What prompted me here was a
combination of events, including reconciling the many scripts and actions I
had on several different Photoshop-equipped computers, each of which had
diverged from ts brethren; meeting Bob Carnie at Elevator Digital in Toronto,
thanks to Dinesh;
this
APUG thread, which also included more info from Bob; and the latest
edition of Digital Photo
Pro magazine, which has run B&W articles as its cover story quite a
lot over the last year or two, and this one was no exception. What
surprised me was that DPP were freshly touting the old Gorman/Holbert
method (aka the Gorman
Method).
I've tried the Gorman method a few times in the past, stored actions for it
like many other people have no doubt, and... it puzzles me. It puzzles me because:
As an Action the method makes sense to some degree -- I can imagine applying it to whole directories of pictures at a time. What it lacks in control it might make up for in volume, though you could say that about any Photoshop/Bridge/Lightroom action.
There's also the proof pudding -- Gorman's published shots. They genuinely look great, but... is it really the conversion, or the practiced studio photographer? If he really uses this method, my guess is that he's learned how to nail his desired B&W results time after time by rigid adherence until it has become very natural to use and light for this scheme.
Bob likes Lab too, according to the APUG thread. I'm still scratching my head, though I suppose that the same "use what works for you" logic could be behind his comments (and I have no argument with that line of reasoning, believe me). It's also true that using a combination of all three colors, regardless of just what that composition might be, has the potential to give you really smooth and gorgeous floating-point-precision gradients even without resorting to Dark Side trickery like HDR.
Still, I like the Caponigro
method, and have adjusted it slightly since the previous entry. I don't
try to put the color toning into the same operation, and I put all the
adjustments into a folder, so I can turn them of and on as a group (or fade
them by adjusting the opacity of the entire layer group at once).
I've also added a blank layer I label "burn" to the folder, and set its blend mode to "multiply." Anything I paint into this layer will essentially burn-down (darken) the corresponding areas of the final B&W image, and it too can ave varying opacity in case I get a little too heavy-handed wit the brush (which happens a fair bit). The illustration shows a complete "Modified Caponigro Method" folder.
What about that undisplayed "Layer 2" above the folder?
It's the result of my very favorite Photoshop key commands, a trick I've only heard verbally described as "The Move." It's "ctrl-option-shift-E" and does in one step what the Gorman method does in two -- it merges all visible layers into a new layer at the top of the stack (in the Gorman method, this is done by creating a blank layer and then running "merge visible" on that layer -- exactly the same result).
That "Layer 2" is just such a layer, which has then been hidden for later use (as we'll see).
A problem with Photoshop is that it doesn't let you specify arbitrary blend operations (or filters) on a folder. So the only way to use those sorts of effects are to do a "move," create that new layer, and then execute whatever on that layers pixels. That's what the Gorman method does for its high-pass layer, and how I use it will be described below.
These "merged" layers are great, but do remember -- if you edit any of the underlying Hue, Curves, etc layers, those changes will not automatically appear in the merged layer. Instead, you'll need to hide or delete the old merge and make a new one (clicking the little visibility icons then makes A/B comparisons pretty easy too, btw).
Recently, I've been experimenting with using these merge B&W layers to manipulate color images:
Here are some pics: the first is an un-modified original, followed by two possible B&W conversions, and then the color result of applying those conversions back to the original color image. In the first, darker one, I liked the somewhat bad-color-printing appearance it had. In the second, which also washed-out a lot of the detail in the freckles, the color becomes very soft, looking almost like hand coloring. The last in this group uses the same brght luminance source, but the effect is faded back by reducing the luminance layer's opacity.
As long as we're in Photoshop, it's hard to resist trying near-useless tricks, too. Here's a completely negative luminance applied to the original colors, and its inverse (which gives positive luminance to negative colors).
These samples use a different blend mode: the "lighter color" mode. The result (which looks best, IMO, when slightly faded back) gives slight variations in the overall color saturation according to the overall luminance -- another rather film-like effect and one I really like.
Finally, why not blend components of techniques for something new? The pics below show the high-pass layer from the Gorman technique, applied via "overlay" to the original color image.
So what about video games?I would be remiss not to mention that all of these methods, except for the high-pass filter, can be executed in a single unified pass in hardware shaders, thus also making them appropriate for using in video games (the high-pass filter would require an additional render-to-texture pass). If you've been paying attention to John Nack's blog, you may also know that such effects will eventually be available in real time for Photoshop and Flash via "Pixel Bender" shaders.
n00b 0.0
As a departure from the usual photorant, today's entry is on the game EVE Online. Specifically, it's about how to play by going against the usual guidance for new players: instead of taking it slow and learning the ropes in the safety of the center Empire area, to move as quickly as possible into the lawless and higher-powered realms of 0.0 space.
I'm writing this for (new) EVE players, so I'm not really going to explain terms or basic game info, though I'll insert links along the way to wikis and so forth.
Despite what you may have heard, 0.0 space is not an ongoing death-to-all-comers destruction derby. In fact, a lot of 0.0 space is pretty quiet, populated by players performing the usual EVE chores: killing rat pirates, mining ore, or sitting docked in a station selling and processing the results of those activities.
Borders are the dangerous regions in EVE. The borders of Empire space itself (security 0.4 to 0.1) are often camped by player pirates who want to avoid CONCORD but also avoid the tougher opponents they might encounter in 0.0.
Gates from Empire Space into 0.0 space are often guarded too. What's often not apparent to new players is that the gates aren't so much guarded against players from Empire as they are being guarded against other players from 0.0, who may be trying to flank a border within 0.0 space; or to blockade transports and freighters that may be trying to move goods back and forth from sources and markets in 0.0 and Empire.
"Borders within 0.0?" you may ask. Do yourself a favor, and get some maps. Get a copy of the Ombey PDF maps, which can guide you from system to system, and a current copy of the EVE Political JPEG Map, which will show you the layout of alliances within 0.0 space.
Systems that are along borders -- especially borders to areas marked "contested" -- will inevitably be the ones most closely guarded.
So how to get past them?As cheaply as possible. By that, I mean: make sure that if you get blown up it will cost you the bare minimum, so you can be cloned and zoom right on back again with minimum ISK loss. Don't bring in anything expensive, and be aware that you will lose any fight in 0.0 at first. Your only defense is to run like crazy. That means you should use a rookie ship (if you get podded you'll get another for free), a shuttle, or even blast around in just a pod. All of them are quick, small enough that they may be hard to target by battleships and the like, and easily replaced.
You can also use an alt character to do exploration for you -- have the alt run around into various systems, check them out, and if the alt survives, log it off, jump back to the main character and follow. Losing the alt -- repeatedly -- is usually close to free for a new player.
The best time to try the run into 0.0? Just before or just after daily EVE downtime. Just before, people in 0.0 will be busy docking-up and packaging or setting up transactions. Just after downtime, the population will be low. My first successful run from Empire to deep within the Stain region was done right at the beginning of the day -- I crossed most of it in the first two or three minutes. Within five or ten minutes, the dangerous and more hardcore 0.0 players were starting to appear.
To make the run, do not use autopilot. Pick a destination and fly it manually. In systems that are empty, warp to zero. If the next system is occupied, warp to a planet or moon (add planets to your overview), then warp to a gate. Beware of the straight-line path between gates in occupied unknown 0.0 systems, as there may be someone who has placed a bubble along that line specifically to snare inter-gate warpers. Use a planet to come in from the side.
If go don't think you can get through, warp back and forth between planets until you run out of capacitor and get stranded somewhere in the middle of nowhere. This is the safest place for you to be, away from any celestial body. Make a bookmark of your new safe spot, and then log off. Come back later and re-assess the situation. Are the people who were blocking you before still blocking you? Rinse and repeat.
Where are you going? Hopefully, somewhere where the local rules are "NRDS." That is, "not red, don't shoot." These are increasingly rare. The usual alternative rule is NBSI: "not blue, shoot it." Assuming you have no special standings, you will be neither red (hostile) or blue (friendly) to any existing corporation or alliance of corporations. If you can make it to an NRDS area, you should generally be safe from other players.
Regardless, things change. It's important in 0.0 to have allies as quickly as possible (more on that below).
Make your destination somewhere that has a station that has medical services (which you can identify either from the Ombey maps or the in-game map view). When you dock (be careful -- some stations may not let in non-friendlies), change your clone to that location. You are now in 0.0 space, and can't be easily expelled.
Now what?
You can't rat. Even the smallest 0.0 rats will probably blow you up quite handily. Your first priority should be to get into a local corporation and alliance, if at all possible. They may give you guidance on how to work your way up their own speciality path -- PvP, industry, etc.
If you can't do that immediately, your next plan should be salvaging -- that is, looting -- from the wrecks of rats destroyed by other players (and on occasion, from the wrecks of other players). The wrecks in 0.0 will have much more valuable stuff than the wrecks you might find in Empire. Be careful here, as some players may get torqued at you and until your skills and resources are up, you won't have much ability to retaliate if they decide to pop you. Better to be on "Local" channel, be friendly, ask permission. If this is your course, learn the "salvaging" skill and learn to use a destroyer -- they tend to have a large cargo bay and if you learn to use "salvager" units you can mount a lot of them (a destroyer is not much of a combat ship in 0.0).
Finally, you can mine. The minerals you will get in 0.0 are worth much more than what you can find in Empire. Be careful in the local asteroid fields, as the rats can appear suddenly and may be quite strong compared to you. Learn trade skills, so that you can set up sell-orders for the minerals you find.
And of course, learn the learning skills as quickly as possible, as they'll have ongoing effect on the speed with which you acquire all other skills.
Skill you should have before you go: Infomorph Psychology. You should really be able to clone jump. This can be invaluable when you first arrive. Get a jump clone in Empire before you leave, and once it's moved, you'll be able to move back and forth to Empire once a day freely. This is important to new players because the availability of rookie-level skill books in 0.0 is close to nil. Jump to Empire, buy all the books you can (especially learning skills), start to train each one just for a minute -- now they are "inside" your character, and you can keep studying the skill even after you jump back to 0.0.
You can also jump back and forth if you're having a rough go in 0.0 -- go back to Empire, do some rookie missions, build up what you need to get into a 0.0 corp. If you need a corp that's tolerant, try JMHF.
This post is long enough! Good luck, and fly safe -- or not.
The Price is Right

In my blog draining from yesterday: Kristopher Stallworth of Bakersfield found a poster of Gursky's "99 Cent Store" hanging in -- where else? -- a 99 Cent Store, and Conscientious has the shot.
When Gursky was here at SFMOMA a couple of years back, he commented that he had met the CEO of K-Mart, who also had a (probably "real" and pricey) print of "99 Cent Store" in his office. It was left ambiguous as to whether the exec felt that the photo criticized or glorified its subject... a little less ambiguous in Stallworth's discovery?
I reminds me too of the days of ancient Pixar, before Toy Story, when advertisers would repeatedly approach the studio with what they considered their Big Idea: they had seen Luxo Jr. Their quick-reacting repitilian brains had smelled food and would Pixar please do another spot just like the one that Pixar had done for the Luxo company, only for product XYZ? They simply couldn't imagine that the film had been made for any reason other than to sell more lamps.
(I actually have no idea if it had any actual effect on the sales of real-world Luxo lamps, but that was not remotely the film's intent -- the only intent was to entertain, using Pixar's then-new pre-RenderMan renderer)
This idea of wrongly-perceived purpose opens a narrow window on a problem that seems inherent with any sort of mass media -- its existence automatically valorizes any subject, even when the intent of the maker may be to condemn (a situation not inherent in Gursky -- he is usually rather deliberate in his neutrality, at least when speaking about his images). Thus "anti-gangster" films like Scarface are idolized by gangsta wanna-be's, proliferating celphone videos of misogynist "honor killings" promote more of the same, books of war photos become promoted to politely-fascinating coffee-table items, or used as images not to prevent war but to foment and celebrate it. One man's horror made into another's grand circus.
Always the old twisting knot of intent and effect. Natchwey has said he feels compelled to make the very best photos he can, with every aesthetic tool he can muster, out of respect for the people he photographs and their situations. Salgado does the same thing and gets criticized for "aesthetic anaesthesia," that somehow presenting his subjects in a compelling way wraps them up in Too Much Art. How much is too much? Does less reduce the value to the subject? The more you wriggle, the tighter the knot gets. Andreas? Ed? Henri?
GPU Gems 3 - It's Here!

We got the first copy back from the printer today, and it's available from Amazon if you're not going to Siggraph in San Diego this week.
Ready for Siggraph

Here it comes! GPU Gems III will indeed be available at Siggraph 2007.
This is the first year in a while that I won't be bogged-down with meetings and official Siggraph duties -- I'll be free to get some actual research done!
Is Photography Inherently Humanizing? (III)
I've been in Seattle for the past couple of days, attending and speaking at the Online Games Developer Conference.
(This post is part of a series which can be found through these links: Part I and Part II.)
Yesterday morning, I found in the New York Times an editorial by Nick Kristof which has been widely copied to other locations such as this one the article, "Save the Darfur Puppy," tries to grasp at some of the issues revealed by psychological research and "the implication of a series of studies by psychologists trying to understand why people good, conscientious people aren't moved by genocide or famines."
The research found that people were more likely to want to help individuals, rather than groups even groups as small as two. By coincidence I was about to write a little on this topic here myself, as something of a followup to the previous posts, in large part spurred by a recent post by Jim Johnson entitled "Photographic Conventions & Their Vicissitudes: The Irony of 'Vividness'," in which Johnson challenges the convention, common among photojournalists and other documentary-styled photographers (and TV) that mass-scale social issues are best shown by revealing the stories of individual persons (often the suffering of those people: think Salgado, think Abu Ghraib, think Smith's Spanish Village). In that post's comments, another reader mentioned a recent Situationist article, "Too Many to Care," which likewise cites the same research referenced by Kristof.
Personally, I think that such research validates the usefulness of these photographic conventions: that a direct appeal to people's emotions comes from proximity (perhaps by engaging the "mirror neuron" regions?) and that emotion is far more important in driving action than is reason. Is this something of a bitter pill, does it reveal something in human nature that we'd wish were not true? Yes. Does it mean that there can't be better approaches? No, and Johnson's to be lauded for proposing alternative photographic solutions, approaches that photographers could make to large-scale social issues that convey both emotional power and yet a sense of larger scales and stories.
My inclination is to think that humans, who evolved over most of their history in very small bands, have a hard time feeling direct-affect compassion towards groups larger than their own atomic families. We can reason that a compassionate stance is a good one, but that reasoning is less immediate. So far we have had some bits of luck in our large social systems. After all, isn't democracy itself a large-scale form of "love thy neighbor"?
As humans, we are not perfect animals. Our inability to grasp at large-scale problems on an emotional level is, as Paul Slovic writes, a "deeply unsettling insight into human nature." What's positive is the notion that it is an insight, and that we do find it unsettling. It means that we know we can do better. And if we know it, we can seek better-informed ways to act on that knowledge.
Nub is in the Details
This is a little game development (or general graphics) tip that I've been thinking about for the past couple of nights, with additional applications for photographic and other images.
It's really a simple observation, followed by some implementation tricks. The dumb observation is that people like noisy pictures. This has been well known, of course, in famous older papers like Rob Cook's 1985/86 paper Stochastic Sampling in Computer Graphics (PDF). And for many years photographers have been keen on using grain as a means to elicit a sense of sharpness that may be actually greater than what's really in the picture. This isn't really news, but in playing with noise I've found a really simple trick or two that have pretty broad uses.
First, we're going to make a texture.
• Start up Photoshop, and create a new image that's twice as wide as it is high preferably both values will be powers of two. In this example, I'll use 512 by 256, RGB.
• Set the foreground color to middle gray (128/128/128 or #808080), select-all, then shift-F5 to get the fill dialog and fill with the Foreground color at 100%. You image is now gray.
• Select only the red channel by selecting it in the channels palette or hitting ctrl-1 (or cmd-1 on a Mac). You should see a plain gray rectangle and the select-all marching dots are still active.
• Select from the Menu bar: Filter -> Noise -> Add Noise.... and set it to 15% and "Gaussian." (Note that if you squint so the at the image is out-of-focus, and click the "Preview" checkbox on and off, the overall gray value doesn't change).
• Now select the Green channel.
• Apply noise in exactly the same way as before.
• Jump back to RGB display, and you should see something pretty similar to this:

• We're going to save this as a DDS texture. You'll need the NVIDIA Texture Tools DDS plugin if you haven't got it already (if you are a game artist, you almost surely do).
• When the dialog appears, select the "Use existing MIP Maps" option and save.
• Close the window.
• Open the resultant DDS file and click "Load MIP Maps" to see all the data.

What happened? The DDS exporter assumed the right half of the original image was filled with an image pyramid the data in the black area was thrown away, since it's not used. We now have a MIP data set where all layers of the MIP stack have noise of roughly the same statistical characteristics for each and every level (rather than each level being a scaled-down vesion of the layer above it).
What this means is that if this texture is applied to a 3D model, the on-screen frequency of the noise will tend to be constant, regardless of scaling. The texture mapping hardware will always select a level appropriate to the current pixel's screen size, and that level will always have noise of about the frequency we see here on the screen.
Let's try it out on everyone's favorite teapot:

Whether near or far, you can see that the texture feature size that is, the on-screen size of the noisy "blobs" is about the same regardless of whether near or far.
I call this approach "constant frequency noise."
If you're experienced in game shading, you may already suspect why we added noise to the red and green channels, but left the blue channel alone.

Applying this as a tangent space normal maps, you can see that the nubbly detail maintains its on-scren size regardless of whether the pot is near or far. This is different from typical MIP map behavior (which would degenerate towards a smooth surface see the example below), and while not "physically correct," gives a better consistent feeling to the nature of the rough but shiny material, regardless of rotation, scaling, or distance.
As long as we've got this noise texture, let's try something else. Here are two teapots, one with a standard color texture and one with our noise-mips added to the texture UV values:

In areas where textures are greatly over-extended, this method can be used as a variation of "detail texturing" so that instead of soft linear-interpolated blobs, we get little bits of noise.

Of course, in this application we don't want to offset the texture too much when we're not super-close, so rather than using constant-frequency noise, we can just make a square texture, rather than a rectangular one, and let the DDS exporter "Generate MIP maps" insteead the lower maps will smooth to a center, zero value, so that at a distance there's no visible offset.
Here's an example. As you can see, it's identical at the largeest MIP but smooths quickly to middle gray at the smaller sizes. In this case, where we are using the channels as signed values, middle gray equals zero: no offset, no bump.

The noise-offset-as-faux-detail technique can be applied to still pictures, too. In Photoshop, you may be familiar with the idea of using the "add noise" filter to cover-up the defects of a picture that's out of focus or enlarged too much.
Let's take the thumbnail of this photo as a sample. If we blow up the thumbnail, it looks pretty soft (especially if using bilinear filtering, which is typical for realtime applications like games).
But if we "add noise" (here quite a lot the same amount we used when creating the noise texture), the effect is "Grainy" rather than "Muddy," as we can see in these side-by-side views:

Alternatively, we can apply the same noise pattern offset method we used for 3D detail texturing to the 2D image.
• Make a red/green noise pattern as before, but the same image size as our soft enlarged image. Save if as a .PSD file say, "imgOffsets.psd."
• Then go back to the soft enlargement, select "Filter->Distort->Displace..." In this example, the scale was set to 4, the wrap mode was on, and no stretching (since the images were the same size). When the file dialog appears, select our just-created "imgOffsets.psd" as the offset sourcefile.

This version creates an illusion of small detail even though there is none and without altering the colors directly. Some of the obviously-aliased details, such as the highlight on the lower lip, really look far better this way.
Both approaches can be combined offsets and also a smaller bit of color noise to enhance the apparent sharpness. Another option might be to make the offset image a smaller size and then stretch it in the offset filter, so that the "clumps" are larger than single pixels.
Understanding these uses of noise can extend well beyond Photoshop. An obvious application that would join together these techniques would be better, more sophisticted video scaling performed in real time on a GPU.
Here's a last combined-noise version with clumpy offsets, followed by a sharp version (the thumbnail was a scaled-down version of this) for comparison.


Second Job

The Second Job doesn't come with a second paycheck. Ah well.
Besides working on GPU Gems III (the quality of the submissions just keeps rising with each successive edition! Far more fantastic work than we even can squeeze into one large book... choosing the most-appropriate from so many good choices is tough); prepping for the upcoming Game Developers Conference in San Francisco; creating proposals and abstracts for conferences in the months after that; working on developer tools and ongoing work in helping 3D artists expand their abilities to create great-looking GPU-savvy games... I'm also busy dealing with lots of MMO and Virtual-World developers and researchers.
I guess it was my inevitable destiny: the origins of the name for this very site, Botzilla, come from the now-slumbering BotBot program, designed to create customized avatar scripts for the mid-90's virtual world The Palace.
It would certainly be useful to have a second me around, mostly to do errands while the FirstMe was busy with... well, you know, stuff.
Stuff like keeping track of the household, making sure people get fed, homework completed, DVDs and library books returned, Tivo watched, pictures occasionally taken or printed, books read, scuba gear used, friends acknowledged and seen, or keeping up with my RSS feeds, which I set up in theory to make it easier to keep up with blog pages and the like. Unless I'm insanely diligent they just keep falling behind, behind, behind... all the labor-saving technology is a powerful mechanism for giving me too much to do. Rather than being thrilled that, say, Alec Soth has posted 58 entries over the past month or so, entries I know I will enjoy reading should I get the chance, I just end up feeling guilty that I haven't had the chance for a settled time to read them :/
And then there are the games... I'm still lingering in the late second act of Final Fantasy XII, interupted by two weeks of computer-less and console-less holiday break, and looking in the immediate future my hope of playing any of my existing consolers gets increasingly slim under the encroaching shadows of Wii and PS3 or any of the many great PC titles that are stacking up next to "Lolo," my game-and-itunes machine.
Just the same: if you do wander into SecondLife, give an IM holler to "Shashinka Komparu" or just seek out (and join!) the "NVIDIOTS" group.
(Or if you play EVE: drop me a line either here or via eve-mail to "Fenris Chow" our corporation is likely to open for recruitment again in the near future)
Write My Book!
Yes, it's happened: we've gotten the go-ahead to create and publish GPU Gems 3, and once more I'll be a section editor. GPU Gems has been the best-selling text on GPU rendering and computation since the first edition, I'm excited to be bringing it back along with the other editors at NVIDIA. Supervising editor this time 'round will be Hubert Nguyen, who besides his graphics experience is also chief editor of ubergizmo.
Here's the official call for partipation.
Following the success of GPU Gems and GPU Gems 2, NVIDIA has decided to produce a third GPU Gems volume to showcase the best new ideas and techniques for the latest programmable GPUs. We were honored that GPU Gems won the 2004 Game Developer Front Line Award and that GPU Gems 2 was a Finalist in the 2005 Game Developer Front Line Awards. What's more, GPU Gems and GPU Gems 2 were the best-selling books at the Game Developer Conference and SIGGRAPH in their respective years.
This latest GPU Gems will, like previous volumes, be hardbound and in full color. Tentatively titled GPU Gems 3, it will be edited by Hubert Nguyen, Manager of Developer Education at NVIDIA. Nguyen contributed to previous GPU Gems volumes and brings to this role vast experience in the field of computer graphics. Section editors include a team of expert NVIDIA engineers: Cyril Zeller, Evan Hart, Ignacio Castano, Kevin Bjorke, Kevin Myers, and Nolan Goodnight.
NVIDIA is looking for innovative ideas from developers who are using GPUs in new ways to create stunning graphics and cutting-edge applications. GPU Gems 3 will present techniques and ideas that are broadly useful to GPU programmers and that can be integrated into their applications. And, it will continue the tradition of featuring chapters exploring non-graphics applications of the computational capabilities of GPU hardware (learn more at www.GPGPU.org). Because our goal is to provide a comprehensive set of authoritative and practical chapters, we strongly suggest submitting ideas about techniques that you have already developed and tested.
If you would like to contribute to the GPU Gems series, please read the following submission guidelines. The deadline for proposal submissions is Monday, December 11, 2006. If your proposal is accepted, you will receive additional time to complete the chapter.
Guidelines for Chapter Proposal
Each chapter proposal should meet the following qualifications:
• Subject. Your chapter can be about any topic related to applying GPUs in useful and compelling ways. For example, you may choose to write about a specific shader or technique for rendering an interesting effect, or you could write about a strategy for integrating shaders into a game engine. Or, you might discuss an interesting way to apply the GPU's horsepower in a non-graphics area. The main requirement is that your subject has practical value for the community and that you are committed to writing a clear, concise, and informative chapter.
• Submission. Send an e-mail to articlesubmissions@nvidia.com with your proposed chapter title as the subject line, and a concise chapter description in the e-mail body (preferably no more than 300 words). To increase your chances of acceptance, we recommend that the description include screenshots or movies that demonstrate the technique in action. Ultimately, you must be able to provide a working program that demonstrates your technique. Complete source code is not necessarily required, though a self-contained example will be a plus.
• Deadline. We will be working on an aggressive schedule, so you must submit your proposal by Monday, December 11, 2006.
Notifications will be sent out by the end of the year. If your proposal is accepted, we will contact you via e-mail and discuss our expectations for the full chapter, as well as the next steps in the process. To assist you in finalizing your chapter, we will create your figures and provide copyediting services.
Final Chapter Information
• Length. The final chapters should range from five to twenty pages of formatted book pages. This requirement accounts for figures, code samples, and page layout, so there would be approximately 200 to 300 words per page. In some cases, we may accept chapters that are shorter or longer than the suggested length, depending on the content. A chapter does not have to be long or complicated to be accepted. In fact, an idea that is simple and compelling is more likely to be accepted.
• Rights. You must have the right to publish your work, code and images (diagrams and screenshots).
We look forward to reading your submissions.
The 2point8 Book Corner

A couple of weeks ago I was reading Michael David Murphy's 2point8 and started clicking the "previous entry" lin ks eventually, over the course of a few hours, I worked my way back through the entire history of the blog, mostly in a straight line backwards but with a few Memento-like sidebars of reversed reverse time. Regardless of direction the time was well-spent (later I tried the same thing with this blog, and frankly Botzilla doesn't bear extended reading nearly as well, with its many random discursions and distracted tone. You do what you can).
Since Michael reviews many books in his blog I thought I'd dig some of them up. In my current large bedside (and bedtop!) stack of readables, then, are two streetphoto books from the 2point8 book club: Rosalind Solomon's Chapalingas and Gary Stochl's On City Streets. I've had to wait for Gus Powell's The Company of Strangers, though Powell's website and his gallery on in-public.com provide a lot of material for "casual reading" of his work.
Chapalingas has been a difficult book for me to approach, starting with its size seven pounds, 460+ oversized pages. Enough material for a number of smaller books, and to a degree I feel that what Alec Soth blogged recently that a gallery show, even a great one, may become just a blur when there are more than about sixty images applies similarly to books. Chapalingas is so sprawling that it requires repeated return viewing, at some pace of the viewer that's seperate from the book's own sequence of pages. Perhaps Solomon realized this in her arrangements of photos: chapters connected loosely by themes like "Holds: Grasps, Ties, Clutches, Grips, Bars" or "Heads: Hats, Hair, Hoods" that can be more easily consumed as mini-books by themselves.
Solomon is clearly a product of her interactions as a student of Lisette Model, and like other Model prodigies (most famously Dianne Arbus), she has set herself that classic task that is so simple, yet so infuriatingly and breaktakingly difficult: "I wanted to take portraits of people that showed them as real human beings, no matter where they were or what their background was."
Indira Ghandi or a random couple in Burger King, department store Santa or a Peruvian funeral. So many photos that push hard at these same themes of photographic specificity, and with the sort of surrealist eye that only the hyper-realism of photography can really reflect without seeming cartoonish. As with many of the best photographs (imo), very few of these would make good paintings not only because of their immediacy and the natural appeal that photographs have as evidence of a privileged view, but also (despite David Hockey's own recent assertions) because I really believe that no other medium could be as expressive in its presentation (a characteristic that expalins the large size of this book, too the photographs suffer when printed poorly, or small or reproduced on the web).
Solomon's prodigious output, stretching over decades, is sadly her own worst enemy here. It's easy to start turning pages too quickly after a few too many wonderful shots. Better to come back later, and open instead to a random page as if this were some other book on another day.
Stochl's On City Streets, like Chapalingas, collects photographs made over the decades from the 1960s until now. Yet his results, like his small camera, are more handily grasped: about fifty pictures in an easily-held volume. Stochl's story has already been well-told by others. His photographs, made in Chacago, seem a natural extension of the style of the Chicago School's formalism, particularly in his repeated use of some graphic conceits from which he draws repeated surprises, making good use of the Leica's suddenness and the particular natures of black, white, and still photography.
Unlike Solomon, Stochl has no apparent direct connection with the people who appear in his photographs. At most their glances into his camera are curious or at the cusp of accusatory. Instead, like Winogrand, Stochl is involved in surprising arrangements of figures, of fragments of figures, and of the tones of the figure against the background. Unlike Winogrand, if I understand them correctly, Stochl seems to be more aware and deliberate in setting himself up for particular locations and awaiting a photograph, as opposed to Winogrand's more ambulatory through-the-crowd approach. Yet both depend on surprise and a quick hand.
Both Chapalingas and On City Streets represent a slice of the output of an artist who spent many years working at focused ideas and with a unity of technique. Both seem to have used one film and one camera for the entire period: Stochl his 35mm, Solomon her 6x6. It's hard to imagine a photographer embarking on a similar task today. Even photographers who have already been working on prolonged projects are finding themselves being rushed into a changing era of technological churn, and many have been collecting stockpiles of their materials against the days when those materials may suddenly disappear even while being used, as Marshall Oils and Kodak Azo paper have vanished in recent months (indeed, all Kodak B&W paper).
What [digital] camera of today can one imagine using steadily until 2046? I'm not saying it's impossible. But I'd like to know. New cameras are beautiful. The pictures possible can be truly striking in their detail and flexibility. But I wonder what might be lost when artists are unable to stay the course with a consistent program. Or: perhaps this constant technical rootlessness is a more honest expression of the accelerating and changing environment in which we all now find ourselves embedded.
The newest entry at 2point8 is this one: "How To : No Flash Corner," where Michael reveals his favorite no-flash spot. To my surprise it wasn't on Market Street where I expected, but a corner that might be the one I used for the photograph above, just a couple of weeks ago (or maybe it was a block away...). Go figure.
Also in my bookstack is a non-photography book, Seminal Graphics, a collection of older graphics-research papers including "An Image Sythesizer" by Ken Perlin. That's a no-flash Ken on the left, alongside our mutual buddy Mark V.

So Long Siggraph 06

That's it! Back to Santa Clara and cats and snakes and kids. But not for long, Microsoft Gamefest is only about a week away....
2B0ST0N6

It's SIGGRAPH time and I'm here in Boston getting ready to host three sketch sessions ("People, Puppets, and Pillows," "Fast and Cheap," and "About Face") in addition to various NVIDIA events all week. As always I'm booked for multiple things at once most all day every day, and there's lots to see and learn and sometimes share.
At this moment I'm sitting in the sketch audience watching a terrific presentation on the facial action capture used for King Kong (short version: they built a solver for their facial mocap that reduced the many XYZ motion-capture tracks into tracks along the axes of FACS (Facial Action Coding System) (axes in this space correspond to human expressions, and to a strong degree those expressions correspond to specific immediate emotional states); then remapped them to a roughly-corresponding set of thier own created "gFACS" gorilla FACS which gave really terrific high-quality results. As a bonus, the FACS tracks are a lot more intuitive for subsequent tweaks and revisions than just trying to manipulate dozens of scattered XYZ tracks. Cool!)
Pop Smarts

At the moment, my iTunes library has just grown over the magic five-digit mark: 10,000 tracks. Or 51.9 GB. Or most importantly, far more than I can casually browse.
I like iTunes' "Smart Playlists" function and use it a lot. I have more smart playlists than "regular" playlists in fact, mostly because they can be used as inputs to other smart playlists.
For example, I have a smart playlist called "-No Talk" that eliminates anything tagged as "Books & Spoken," "Dialogue," "Sound Effects," and so forth, and I usually use is as an initial restrictor when building playlists based, say, on how many stars a track has been rated and so forth (examples below).
Smart playlists are handy in this way for either paring-down or joining tracks that iTunes doesn't see are connected by itself: combining Death Cab for Cutie and Postal Service into a "Ben G" list for example, or collecting all the tracks relating to Beethoven, or Ben Folds and his various ensembles (including Shatner).
Lists based on lists are the only way you can combine "logical and" and "logical or" operators on conditions (called "all" or "any" in the smart playlists dialogue) for example, if I want to get all tracks labelled "Pop" or "Rock" (by genre or potentially by a "hidden" field like "Grouping" or "Comments") but none with a ranking of lower than four stars, I need to use at least two smart playlists (simplified here as an example):
Combining and intersecting playlists and conditions in this manner is probably the only way I'd actually ever get to hear a lot of the music squirreled-away in my iPod at this point. I have a number of playlists based on variations of one I call "neglect":
In plainer English: music tracks that I've rated as ones I like, but haven't played in a long time. Variations on the idea usually focus on genres, or intersect with some other playlist or another.
With the multiplicity of playlists calling other playlists, I've tried to keep some order among them in the pulldown menus (which are alphabetized) by using extra characters like "-" and "." in the names of lists that are meant purely as "abstract inputs" (like "-No Talk").
One set of playlists is based on a root playlist called "Bunch of Stuff I Like Right Now" I stick in new albums as I get them, or stuff I know I'd like to hear more often but not based on its star rating. And likewise I may remove whatever based on... well, whatever. Basing a bunch of different playlists on the one lets me explore new and favorite music in novel ways while only having to maintain a single list "by hand."
Lists based on that one are variations on my standards, with relatively descriptive names: "Bunch o Faves," "Bunch o Neglect," etc. Like many computer-related topics, most of the interesting things happen when the structures of algorithms collide and combine with the unstructured intents of the user (me).
Everyone who uses iTunes for a while seems to have their own organizing scheme: I ran into one woman DJ a bit ago who kept all her tracks indexed by the comment field, and had inserted the BPM counts of every track in there so that she could be sure to build lists with consistent rhythms (more work than I'd ever put in, to be sure).
As flexible as it is, I still often wish for more: particularly conditions that might aggregate values or relate them, so that I could create selections like "albums that contain at least two tracks that I've rated as *****" and so forth. There doesn't seem to be any way to really manage the relationships of groups of tracks, only (in limited ways, such as date stamps or alphabetic order) between individual tracks.
(Added)And how could I forget regular expressions, or at least wildcards?
Maybe someone knows of tools that could piggyback more functionality into playlists?
Some other smart playlists that I've found useful to balance familiarity and variety:
If anyone has suggestions for their own unusual or cool playlists, let me know I'm easily entertained by this sort of thing, heh.
As an aside, it's astounding to me that no matter which track I can pick randomly, once it starts playing, I can most always remember it and such memories usually are embedded among others such as some location where I heard it, who I might have been with at the time, and so forth the music very often serving not just its own function but as a trigger to other, often emotionally-based, recollections. To me it's a vivid illustration of the fluid character and complexity of memory how we are not just tape recorders and cameras, but much more (and sometimes less).
Older Entries:
3 August So Long Siggraph 06