Kiwini Oe
Theater of Feeling: We Feel Fine in Second Life
Submitted by Steve Nelson on Wed, 2008-03-12 16:56. Kiwini Oe | mashup | Second Life | TED | ted conference | We Feel Fine
One thing leads to another: I came back from the TED Conference inspired to write some software to find connections between the different TED speakers (something I do manually while listening to each speaker). While looking for concordance software, I stumbled upon DMDigest that led me to the We Feel Fine project.
You'll have to check it out, but basically they have scraped millions of blogs, etc. identifying sentences proclaiming feelings: "I feel..." "I am feeling...". They then go to town on the mining and interface of this, and turn it all into playable art. Mashable art, as it turns out, because they have open APIs. Which got me thinking....
And I threw together the "Theater of Feeling" in Second Life and I've installed it on Clear Ink Island. It's a work in progress as I'm also experimenting with the image and color data served up by the wefeelfine.org people. It's easy to use, but addictive. Just go up and chat "/feel" and a feeling. "/feel good" "/feel lousy" "/feel generous" and see 10 excerpts elaborating on those feelings floating above platforms. Click the platform to go to the source. That's it! But it offers both an insight into what people think they need to share with the world for all time, as well as the mashability of Second Life. Come take a look for yourself.
Oh, and I do feel good about this experiment!
Print to Second Life
Submitted by Steve Nelson on Wed, 2007-08-22 11:06. automator | Kiwini Oe | Mac OS X | printing | Second Life 

My ongoing experiments in Second Life collaborative tools and real-life integration led me to devise a "Print to Second Life" function for Mac OS X. As shown in the pictures, you just select "Second Life" from the PDF pulldown button on the standard print dialog box from any application, and voila, the paged printout shows up on your printer in Second Life.
How it's done.
This uses an OS X Automator workflow with an additional FTP action added, and a scripted printer in Second Life that can load and page through the printout. An Automator workflow placed in the PDF Services folder can be selected to postprocess print-to-PDF output in the Mac's standard print dialog box. The workflow converts the PDF to jpeg pages, and uploads the pages via FTP to a specified location on a web server. The printer in Second Life uses the URL of the web server's specified location and sequential file names to set the parcel media URL. The printer's output page is the media substitution texture, and the printer's buttons control the paging back and forth.
I'm not ready to provide a ready-to-run kit of parts for this, but here's a more detailed version of the recipe for the inspired and/or able. Complicated to make, easy to use.
1. I started with the "Upload to FTP" Automator action for OS X.
Using this action as-is caused new printouts to pick up any excess pages from older but longer printouts. But Peter Dekker was kind enough to provide the source code for the action, so I added two lines of code and rebuilt the action (using Apple's Xcode) as "Delete Dropbox then FTP":
# Warning Will Robinson: this is where we remove all the contents of the dropbox and its folder!
$ftp->rmdir($ftp_dir , 1) or myerr("Could not remove directory: $ftp_dir.");
$ftp->mkdir($ftp_dir) or myerr("Could not create directory: $ftp_dir.");
(As the note indicates, this action will first remove the directory named in the action, without warning, so don’t accidentally doom your favorite directory of recipes!) To change the name, you’ll also have to poke around various files in the action source. The new action, “Delete Dropbox then FTP” is then placed in either the Library/Automator or ~/Library/Automator folder.
2. I created a workflow called “Second Life” using Automator.
The actions I used were:
- Get Folder Contents
- Render PDF Pages as Images (RGB, JPEG image, 200 dpi)
- Move Finder Items (replacing existing files, to a temp directory that I had to set up)
- Rename Finder Items (Make Sequential, new name “PDF”, place number after name, start numbers at 1, separated by dash)
- Move Finder Items (replacing existing files, to a second temp directory that I had to set up)
- Store Disk Item References
- Delete Dropbox then FTP (here you put my Server, Username, Password, Directory and Base URL info)
- Retrieve Disk Item References
- Move to Trash (clears out your second temp directory).
3. I created a printer in Second Life
The basic printer loads up a media parcel URL from a known location, and pages through the printer output. I have buttons to load and play the first page, load and play next and previous pages, and a button to set up the base URL of the printout directory on your server. The buttons talk to each other to sync up what page is currently being displayed (kept in memory) and what the base URL is (kept in the button’s description field). The real action is done by the llParcelMediaCommandList command. You have to either be the owner of the printer and the land under it, or the land belongs to a group you belong to, and you deed the printer to the group. [Update: I added portrait/landscape mode buttons to flip the printout page to a vertical or horizontal orientation.]
30 years ago, I would take a stack of cards up to a counter, where there was a sign that said “Turnaround Time”, usually something like 45 minutes. 45 minutes later, I’d pick up my printout, find the syntax error, repunch a card and put it in again. Little did I know that all I had to do was wait 30 years and I could sit in my easy chair, push the print button, and have it show up in my own little world of make believe.
Quick and Dirty Web Page Viewer for Second Life
Submitted by Steve Nelson on Mon, 2007-08-20 10:39. Kiwini Oe | Second Life
Inspired by Jeff Barr's experiments and investigations into HTML on a prim in Second Life, I threw together a quick hack to view web pages following the method he suggested at last year. Here's a more detailed recipe for doing this:
Setup:
- I set up a free WebThumb account. You give it an URL, it renders a picture of the web page.
- I installed some PHP code on my server, courtesy of Hasin Hayder, that will listen for a POSTed URL, send it to the WebThumb service, wait for the rendering, and return the URL to the thumbnail. If you install this code on your server, edit it it with your WebThumb account key.
- I wrote some LSL (see attached) that you can drop into an object that's textured with the parcel's media texture. Your object listen on chat channel 4 for a URL to view. When it hears an URL, it will submit it to your WebThumb service, wait for a reply, and set the parcel's media URL to the returned web page image.
That's it!
If you're going to try this at home, you either need to own the parcel under your feet, or the parcel needs to belong to a group you are in, and the viewer object needs to be deeded to the group. You can also get fancy and set the web page image to be different for each avatar who speaks to it, using the PARCEL_MEDIA_COMMAND_AGENT flag in llParcelMediaCommandList(). If you really get ambitious, have your server also scan your page for links and throw them up as a dialog...
Waves in Second Life Using Sculpted Prims
Submitted by Steve Nelson on Tue, 2007-06-12 15:18. Kiwini Oe | Sculpted Prims | Second LifeTROI Timtam asked me last week for a script for pond ripples using texture animation in Second Life, and that got me thinking about sculpted prims as an alternative. That led me to a site that is a PHP app that generates a sculpt texture, and last night I was playing around with it and voila - a wading pool that ripples when you touch it (or jump in!).
nand Nerd's Sculpt Texture Generator is a form-based method for specifying a z-position and radius value for a symmetric object, and I stepped through a series of these giving a rippled wave pattern. I ultimately use a sequence of 10 maps, and use the llSetPrimitiveParams() call to cycle through them.
The cycle occasionally hiccups and the prim doesn't resolve to its full size before the next shape is applied. As far as I know, though, the pool doesn't suffer from festering boils. [UPDATE: I got an IM from nand Nerd who suggested embedding/linking two cubes into the pool, with their faces textured with the sculpt textures. This keeps the sculpt textures preloaded and pretty much gets rid of the hiccups. Thanks, nand!]
Kiwini Oe had to fly over to the sculpted prim competition at Luna to see if there was anything like this. No, but lots of cool stuff. I set a couple pools out next to my office on Clear Ink Island; feel free to drop in!

User Centered Innovation in Second Life
Submitted by Steve Nelson on Mon, 2007-05-07 09:51. Avaty | innovation | Kiwini Oe | Rein Spire | Second LifeFollowing up on Igor's post about user-centered innovation:
Clear Ink's Kiwini Oe participated in a focus group conducted by Avaty's Rein Spire, a grad student from Innsbruck researching innovation management in virtual worlds.
Rein Spire introduces the topic to the group:
"Companies now start to integrate their customers into their development process of new products, because they strive to develop and produce exactly what customers want. Compared to traditional market research, toolkits that draw on ideas of innovative customers exist. Examples for Open Innovation projects are platforms where customers can develop their own products and bring in their own ideas. I guess not only to me, Second Life offers enormous potential for the development of innovative real life products."