Kinect Hacking for Artists: Date Changed
January 1st, 2012
Due to assorted stuff there’s been a schedule change for the next Tiny Army meeting.
My Kinect/Animata talk is now scheduled for February 1.
This month (January 4) we’ll be seeing Bob Boze Bell instead.
This actually works out well. While I have stuff ready to show, I’ve learned all kinds of things about Animata that I’ve been working to include in my demos, so the extra time will allow me to also show some better Android/Processing/OSC neatness as well.
The general outline of my talk:
- Doing stuff with Animata, Kinect, and a laptop running OSCeleton
- Augmenting that with other sources of OSC commands
- Some discussion of the quirks of using Animata and how to save yourself some grief
- Some discussion about why OSC is important (e.g. how the demo actually works)
- Some fun with OSC and Processing (and Android devices)
There may or may not be some Wii stuff in there. SketchUp and LightUp will make an appearance as well.
I’ve a few goals with this talk, but one of them is to avoid overload. So I’m looking for a balance of interesting, practical “show and tell” and some extended observations on what’s now possible with readily-available hacker/artist-friendly tools like Processing, Android, Arduino, and such.
Kinect Hacking for Artists
December 10th, 2011
I’ll be giving a presentation at the next Tiny Army meeting (Jan 4 2012, Phoenix Art Institute) about using the XBox Kinect for real-time animation.
I’m still sorting out details, but I have three goals. One is to show some sweet demos. I know for sure I’ll be demoing Animata but I also hope to show real-time interaction with Google Sketch-Up using some Ruby code I’ve been working on.
I also want to spend some time on the in’s and out’s of using Animata; it’s really amazing software, but it has some quirks, so I’ll try to give some pointers on getting started while avoiding some possible annoyances.
Finally I hope to show how there has been an ever-expanding realm of tools, both hardware and software, that allows for non- (or less-) technical people to create serious (or not so serious) art with computers, software, and assorted hardware. Part of this is OSC (Open Sound Control), which can act as a sort of glue protocol among various inputs and outputs, but there’s also Processing, JRuby + Monkeybars, Wii controllers, Arduino, and more.
I do not plan on this being an especially technical talk (e.g. while I may be running custom software I am not going to be showing code or anything like that) but I do hope to show that there are all sorts of things one can do without needing to be particularly geeky, and to hopeful get more artists involved with, or at least aware of, a slew of available technology.
BTW, I’m more than happy to answer technical questions if people have them, either during or after the talk. It’s just that this isn’t meant to be a code-y presentation per se.
Art-official Intelligence
October 22nd, 2011
The votes are in , and contemporary art is boring.
At least one person has some interesting ideas, though.
“It strikes me that contemporary art should offer something wondrous and excellent. But a competition show? With assignments and judges? They could at least add a drinking segment where a judge shoots one of the contestants arbitrarily while repeating a single obtuse phrase as the credits roll.”
I’ve been watching Work of Art and it’s pretty funny. It’s anti-art, of course (but not in some plausibly interesting PoMo “the real art is anti-art because official art is so anti real” way) but that’s part of the fun.
This season has The Sucklord, who is often blunt in his assessment of others but much less snarky than most.
If you’re into drinking games, try watching the show and knock back a shot of whatever any time someone says, “I’m worried about …”. Warning: you will be shit-faced real quick. Seems everyone is worried about someone else. (Sucklord seems to have more thoughtful consideration of people’s skills, though, and props to him for describing one contestant as “a super villain.”)
Catching up on Rawr + Monkeybars
October 17th, 2011
For all sorts of reasons (work, mainly) I’ve not been very hands-on with either Rawr or Monkeybars. They’re basically feature-complete so it’s not like there’s all this stuff that needs to be done, but each new release of JRuby opens the possibility of some breakage.
I checked Monkeybars with JRuby 1.6.4 and got exceptions. A similar case has been reported for Rawr.
I want to assure people that both projects are alive and that current issues are being addressed.
Monkeybars home page: http://monkeybars.org
Rawr home page: http://rawr.rubyforge.org
Occupy Phoenix
October 15th, 2011
Went to Occupy Phoenix today. Pretty amazing. Everyone was exceptionally well behaved, even the group just off of Washington St. who seemed on the verge of killing one another. “Heated debate” would be massive understatement, yet as far as I know there was no violence. It may have helped that about eight Phoenix police officers stood by, but I really think it was the time and place. There was remarkable adherence to some very simple rules of basic discourse.
The cops were also quite well-behaved. Some time after it was determined by consensus that the assembly would later move to the park adjacent the main library just south of McDowell there was an announcement that the police were ready to provide a motorcade to lead the movement. Mind you, it was announced repeatedly that no one had any kind of permit for anything.
Also announced repeatedly was that this was not a leaderless movement, but a movement of leaders. We are all in charge. I am fairly sure I have major political disagreements with most of the assembled. I’m sure that’s true to varying degrees for pretty much everyone who was there.
But here’s the thing: Given how things are we do not need 100% agreement, but we do need 100% engagement.
I could not have predicted just what a powerful and moving experience it would be to stand in a crowd of 1000+ people and recite the First Amendment to the United States Constitution.
You have a voice. Use it.
I spent some time walking around helping give out water, seeing who was there, what signs people held, what ideals they espoused.. While I’ve heard #OWS described as anti-capitalist and anti-corporate, I don’t think that’s really quite the case. Yes, there certainly were people advocating radical Socialism, and the assorted Eat the Rich signs seemed a bit creepy, but I don’t think most people have a problem with businesses or corporations per se. It’s the government abuse of power and and blatant favoritism in the law that allows some people, via some corporations, to acquire inordinate amounts of wealth yet not be even remotely reasonably accountable.
I’m simplifying of course, and please do not take my word for what others are angry about. People are pissed off. Understand that it’s not a straight-up as some news media may paint it; it’s not even as straight-up as the #OWS folks themselves may paint it. You need to go out and find out for yourself, and especially to find a way to make sure that your own voice is heard.
Big props to the folks providing water, misters, medical services, and general common sense. There may be no leader, but certainly leaders were there.
EDIT: I updated the picture link. Apparently renaming the Picasa folder breaks older URLs.
Ruby-doc.org officially updated
October 3rd, 2011
I pushed what was the beta version to live. www.ruby-doc.org
I’m sure there are things that are not quite right, or maybe outright broken, but I’m also sure that this version is better than the previous one so it’s a win.
If you find a problem please let me know.
On a related note, I stopped being any sort of regular reader of the ruby-lang mailing list some time ago. There are all sorts of reasons; it’s not important why. Every so often I check to see if there’s anything that catches my eye, or anything about ruby-doc.org. Most of the time any reference to the site is about how the rdoc content is wrong|confusing|whatever. There’s nothing I can do about that since the docs come right from the source code.
But once in a while I read a complaint about the site itself, and sometimes there’s some discussion about the why’s and what’s, but rarely do the people posting ever bother to write to site maintainer. My name and E-mail address are plastered all over the damn site, I’m easy to reach, so it’s a little baffling why people don’t direct their complaint to the person who is best able to do something about them.
My theory is that too many people prefer to bitch in public than take corrective action. (I like this theory because I’m guilty of it at times some I have some data to back it up.)
Bitching in public is fine if it’s accompanied by some effort to correct things, even if that means bitching directly to someone in charge (and yes I do that as well; it’s more satisfying and often gets tangible results).
So please, if you’re using ruby-doc.org and something bothers you, let me know. Do not assume I’m reading any particular mailing list or blog or g+ circle or whatever.
Of course, the same goes if you like the site. But above all remember that the people to really thank are the ones writing the documentation.
Addendum: The RDoc template in use largely Darkfish, with some JavaScript copped from Babel, and some bastardized application of Inuit CSS. Any quirks, flubs, or unsavory nonsense is my own invention.
Ruby-doc.org beta
September 19th, 2011
I’ve been working on assorted updates to Ruby-doc.org. You can see the beta version at beta.ruby-doc.org
The changes are a new look, better template for the rdoc-generated API files, and the inclusion of Disqus for user comments on the API docs.
There are still assorted things I’m not quite happy with, but for the most part it’s a big improvement and I’m about ready to roll it out as the live site, minor issues notwithstanding.
I want to thank Ryan Davis and Eric Hodel for encouraging me to finally get these changes rolling (in particular, a modern rdoc template), and of course thank them for their outstanding work on rdoc itself.
Drop me a line if you have any bug reports or suggestions or just general observations. Please do not tell me about errors in the Ruby API docs themselves; that’s an entirely different matter; report those on the Ruby language bug tracker.
Dance Noise, 1979. Two Chinese Forehead gigs
September 2nd, 2011
I finally got around to uploading the full tracks from two Chinese Forehead gigs. They happen to be the first and last we played.
I had been putting this on archive.org vua ourmedia.org, but the UI was too painful so I switched to SoundCloud
Our first gig was at CBGB.
Our last was at Tier 3 AKA TR3 .
BTW, on that last link, if you look at the photograph of the band schedule you’ll see it starts on November 11, 1979. We played just before that, on November 15.
As best I know these are the only live gigs recorded.
Road Work
July 2nd, 2011
Been kinda sorta doing some work while on a kinda sorta vacation. And I’m discovering all sorts of issues, big and small, that did or could come up to make getting stuff done a real problem. For example, I took the smaller, lighter notebook but then realized it did not have all of my helper scripts and tools so my usual work routine was somewhat disrupted.
For people who make a habit of working on the road, what tips or lessons-learned can you share? How would you handle a hard drive crash? Lack of a ‘Net connection? Lack of available A/C power outlets?
I’ve been trying to keep assorted config files (vi, bash) in a git repo; I might also have them synced in Dropbox. Next trip I’ll bring my usual dev laptop, but I might also get a spare battery to bring along as well. I also need to get a stand-alone phone battery charger so I can be sure to carry a charged spare battery if I’m out all day.
Quick Impressions+
July 2nd, 2011
Been playing with Goggle+. So far, so good.
I like “circles”, which are groups of people who see this or that post. When you post something on G+ you can select what circles are allowed to see it. Something nerdy? Use the “geek” circle. Pix of your backyard? Pick “family” and “friends”. You start out with some default circles but you can create your own. You can place people into multiple circles as well, which is very handy.
Circles also let you filter what content you’re seeing from the people you follow (or “friend” or “plus” or whatever). Also very nice.
More broadly I feel less uncomfortable with Google than I do with Facebook. I’ve closed down most of my Facebook accounts; I have zero trust in Mark Zuckerberg and see Facebook now as a (currently) needed marketing venue for some commercial ventures but not for anything personal.
Google+ seems to have a better take on privacy, and hopefully people will be holding Google accountable from the get-go on this, as opposed to the Facebook bait-and-switch after lulling users in.
EDIT: Some good discussion here: http://news.ycombinator.com/item?id=2721621
Code & Coffee at OSP Tempe now a weekly event
June 1st, 2011
Code & Coffee @ Open Source Project Tempe is now a weekly thing.
It’s every Wednesday from 1pm-4:00pm at:
Open Source Project
1415 E University Dr, Tempe, Arizona, US
Free wi-fi, plenty of power, great coffee, and great hacking.
LYAHFGG!
April 15th, 2011
My printed copy of Learn You a Haskell for Great Good just arrived.
Came with stickers and stuff. Hooray!
I’ve been reading it on my laptop and phone, but I find actual books better for many kinds of reading.
3D physical reality FTW.
Arduino cookbook party, with food and demos
March 10th, 2011
MakerBench and SkySong/HackSpace are co-sponsoring a party/hackfest for the release of O’Reilly’s Arduino Cookbook.
It’s happening on Tuesday, March 29, at HackSpace
I’ll be one the presenters to help folks get rolling with Arduino goodness. There will be a demonstration/walk-through of how to use an Arduino to handle time-lapse photography.
Plus:
- Free pizza (or something) and soda
- Pre-registered Attendees receive a FREE COPY of the Arduino Cookbook e-book
- We’ll be giving away an Arduino UNO and a free copy of the Cookbook
- Purchase a discounted Arduino UNO & Arduino Cookbook Bundle PLUS Camera Kit for $64.95
- Purchase an Arduino UNO for $29.95 PLUS a free USB cable (supplies limited)
Come by, have fun, learn stuff.
If you’ve not been to HackSpace, please check it out. They’re open for co-working each weekday from noon to 5pm, and they host Hack Night each Wednesday evening.
Ruby, OSC, and SooperLooper
February 22nd, 2011
There’s a terrific audio looping application called SooperLooper:
SooperLooper is a live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more. It allows for multiple simultaneous multi-channel loops limited only by your computer’s available memory.
Among the interesting feaures is an OSC interface. In fact, OSC is how the applications’s GUI comunicates with the SooperLooper engine.
Wanting to drive SL using Ruby I found a Ruby OSC library and started experimenting.
Things seemed pretty straightforward while writing some simple Ruby client/server stuff, but when it came to controlling SL, no good. The only command that had any result was `/quit`.
I did some Googling on this, and found a few posts from people with a similar problem, but with no useful answer.
I thought perhaps there was something quirky in how SL was handling OSC, and looked for some existing SL/OSC code I could look at for clues.
I found some Processing code that played nice with SL and touchOSC.
There’s a very nice Processing OSC lib by Andreas Schlegel; the touchOSC link has an example for SL.
With a little tweaking and playing around I got it running nicely, with some additions to get it to load a session or add a loop.
So I wondering why my Ruby code was failing, even though it looked OK and apparently could interact with some other OSC apps and scripts.
The oscP5 example was creating messages by adding in a series of values:
OscMessage myMessage = new OscMessage("/loop_add");
myMessage.add(2);
myMessage.add(60);
That got me thinking about the Ruby code and how the ruby-osc lib was creating messages.
I was sending messages like this:
# WRONG!
sl_client.send Message.new("/loop_add 2 56")
That doesn’t work, at least not with SL. This is what works:
# Need to pass separate argument values
sl_client.send Message.new("/loop_add", 2, 56)
Note that the second version is passing three arguments; the Message class takes care of preparing them as a message to be sent. Passing in a single string that simply looks like an OSC command results in a message that is (surprise!) a request consisting of a single String item.
In retrospect this now makes prefect sense; why would the SL docs indicate different data types for parameters if the message is just a single String? However, with zero prior experience with OSC, and not one to RTFM a whole lot before hand, it’s an easy mistake to make.
There’s a certain “Doh!” aspect to all this I suppose, but maybe this post will help others avoid the same thing.
Basically, if you are not getting the results you expect, see exactly how your OSC code (Ruby or otherwise) is creating the messages being sent to SL, and if it requires them to be constructed in a particular way.
Now on to drive SL from my Kinect
Yes! Monster Commute, Book 2!
February 17th, 2011
I got a package delivered yesterday, a box of epic sweetness. It was Monster Commute, Book 2
I thought I knew what would be inside, but I was wrong. And the fun started before I even opened the box. Daniel M. Davis, the artist, has an amazing eye for detail, and he applies it to everything. The box had, aside from the expected shipping labels, assorted Steam Crow and Monster Commute stamps. (Click the images to see larger versions.)
The shipping box.
Once opened, more excitement! A special thanks.
Inside the shipping box.
And not only is there the lovingly-adorned packing paper but the book was gift wrapped in über süße paper.
Look! Gift wrapping!
Here's the book cover:
The book cover.
And I got Daniel's sig!
It's autographed, too.
I pre-ordered one of the special package things that included a print, but there was extra stuff packed inside as well. It's a party in box.
Extra stuff.
There's also a papercraft toy car. Print up a few dozen and make traffic jam.
Super wicked bonus!
You can grab a PDF for this here.