I finished my first version of a stereoscopic 3D rendering technique that I can use for my interactive installations. My technique uses Kinect tracking to adjust the 3D image based on the real-world position of the viewing person. This allows for a richer interactive 3D experience.
You can view this specific demo video without any special red/blue glasses. You only need to:
View it fullscreen
View it in HD
Cross your eyes to view a merged image in the middle
Adjust your viewing distance somewhere between 0.75 – 1.5 meters. The optimal distance depends on the physical width of your monitor and the space between your eyes.
During this university style interactive session, you will learn easy methods for connecting to the Microsoft Kinect 3D depth sensor using patching tools like Cycling ’74 Max. After briefly learning the basics, you will see how two streams of data from the Kinect can be manipulated easily using Max and displayed in an interactive OpenGL 3D graphics environment.
You will leave the session with access to the slides and patches slides and code examples from which you can learn and reuse. Prior knowledge of the Kinect, Max, or OpenGL graphics is not required. Questions from you, the participants, are encouraged.
It was developed and tested against Max 6.0.5. It is untested against earlier versions.
It is almost 100% backwards compatible with my OpenNI based external for the Kinect called jit.openni. Migrating to this object should be very easy.
dp.kinect is free for evaluation and non-commercial use. For all other uses, including commercial applications, you need to arrange for a license.
I do support creative endeavors and artists. I am an artist myself. As such, I believe that artists should be compensated for their work. No starving artists! When an artist builds on the work of another, I believe that one artist should recognize the other. That recognition can come in many forms (e.g. attribution, compensation, or a beer). The license is simply the means to formalize that recognition in a durable way.
Here are examples which will likely be granted a no or low-cost license::
Installation artist creating a work for a gallery installation
VJ performing in a local club
Here are examples which will require a paid license:
Bundled as part of a software solution sold to multiple customers
Used in the touring show of a performer, band, or DJ
Going to the gym is not fun for me. Every push, pull, and rotate is drudgery. Thankfully, I tend to be on the lean side; fat isn’t a concern. I want to increase my muscle mass for playing games and for my long-term health. For me to do this, I am more successful when it happens as a by-product of daily activities or games. Ten years ago, I had a pull-up bar in the door frame of my office at Microsoft. Almost every time I passed through the door, I would do a pull up. People visiting me in my office, or passing by, would do the same. It worked and I got stronger until I moved offices. The new office building had lower and metal door frames; I couldn’t install the bar.
Segway to my new flat. It has a 140cm x 275cm opening between two rooms. This is perfect for a generous pull-up bar. I searched online for a pre-made pull-up bar after learning the word for it is Klimmzugstange.
“Klimm” is from “klimmen” which means to clamber or scramble on.
“Zug” is a train. Often the word shows up as part of other German words like “Aufzug” (elevator) and another form of it appears in “Flugzeug” (airplane). For me, the word “zug” tends to mean a thing that provides conveyance.
“Stange” is a rod, bar, or pole.
Therefore, a literal translation would be: a clamber-on conveyance rod. Awesome!
And a bonus: “geistige Klimmzüge” can be used to convey “mental gymnastics”; like saying, “My physics class is nothing but geistige Klimmzüge.”
I discovered that longest pre-made bars are 1m. No good and no problem. I have power tools…I can make one. I used 17mm plywood (Sperrholz), 1-1/4″ steel pipe (strangely the pipe standard is in inches in Deutschland), 8mm lag bolts, Dübels, and glue. Kleber is the word for glue and I remember it by…it clings (sounds like Kle-) things together. I also had to buy a new wood/electricity finder; mine died. Total cost is now over 100€, but I get to build and use power tools. Grunt…grunt.
I cut the plywood into four pieces and glued them together in pairs to make it 3.5cm thick. Used my jigsaw (Stichsäge) to cut out three curved slots for the pipe in the plywood; impact drill for the bolt holes in the plywood and placing the Dübels in the wall; hacksaw to cut the pipe; and a metal file to smooth the pipes edges.
Stich is German for “stitch”, it is missing only the t.
Säge is saw.
Which makes the perfect word “Stichsäge” for a jigsaw because the jigsaw’s blade goes quickly up and down just like the needle on a sewing machine making a stitch. More awesomeness! And sadness…I miss my Singer sewing machine; it was 120v.
Success? Yes. I have used my new Klimmzugstange many times today as I walk through the corridor. It can hold two people at the same time in width and weight. And, I can adjust the height of the bar to three locations; the highest allows me to hang without my toes touching the floor. No cheating!
Rugby. It seems that I have joined the Berlin Bruisers; Germany’s first gay rugby club. We had the club’s first meetup last night. Yes, we are creating the club from the start. Join us!
Being in a rugby club excites and surprises me both. I’m excited to play a challenging game with a bunch of soon to be friends. I’m surprised in myself to be taking up a new aggressively athletic sport at 42. But like my wise Aunt said, “Do it while you’re young. ‘Cuz when you old, you’re tired and hurt.” My friend Trinity (a natural athlete, coach of several sports, and DJ) told me I shall learn to love the burn. I’m going to remember that and repeat it over and over while having fun on the pitch.
You will see the Berlin Bruisers out-and-about Berlin soon. Really soon. Like CSD on 23 June soon. We’re marching in the parade…im Straßenumzug. I love that word…Straßenumzug. It crudely translates as “a move occurring on the street”. Not to be confused with Straßeumzug which might mean the street itself is packing and moving; as if the stones and pavement would change towns. But no…we will be marching im Straßenumzug. The “n” is very important.
I’m looking at the sticker on a round of goat’s milk Camembert cheese. It has a diagram to show how the cheese ripens, how long it takes, and how it will taste. Its rather exact, down the the specific week. The expiration date on the cheese is 2 June 2012 which is 1.5 weeks in the future. According to the diagram, the cheese should be matured so that the core is small and it has an aromatic and creamy taste. And yes…the cheese is very close to exactly that.
As I continue to learn to read and speak Deutsch (German), I find some things grab my attention. I was sitting in a cafe yesterday with a friend and we joke and spoke about suffixes in Deutsch. I was talking about -keit (as in möglichkeit) and she about -mäßig. After reading a bit more and she sending me some other advice, I noticed on this cheese sticker the large use of suffixes and combo-suffixes: quarkig, cremig, Cremigkeit, haltbarkeit, and aromatisch. That last word is pronounced as if it ended with -ig (the -ig and -isch sound very similar in Berlin’s dialect).
Now reflecting back on the conversation between me and my friend, could I say “Rhabarberig” meaning the quality of Rhabarber (rhubarb)? Or “Rhabarberkeit” meaning the state of having/being Rhabarber?
“Just yesterday, I was filled with the spirit of Rhabarberkeit.”
“Yes, that salad was very rhabarberig.”
I have always had fun playing with English language; warping words and creating new ones to suit a particular situation or feeling. As I learn more Deutsch, I can see that I am starting to play with the words in a crude way. But, its this verboten? I might be tempted even more for the verboten…keit.
I have written a rich Max Jitter external called jit.openni which allows usage of sensors like the Microsoft Kinect and ASUS X-tion PRO in your patchers. It exposes almost all the functionality from sensors like the Kinect in an easy to use native Max Jitter external for Windows computers. It has support for:
Configuration of OpenNI by an OpenNI XML configuration file; see OpenNI documentation for format (an example is provided in the install)
ImageMap of RGB24 output in a 4-plane char jitter matrix
DepthMap output in a 1-plan long, float32, or float64 jitter matrix
IrMap output in a 1-plan long, float32, or float64 jitter matrix
UserPixelMap output in a 1-plan long, float32, or float64 jitter matrix
User events (e.g. user seen, user lost, etc.)
Center of mass for identified users
Skeleton joints with optional orientations
User events, center of mass, and skeleton joints in an native OSC format, max route friendly format, OSCeleton legacy format (as of 2011-07-25 OSCeleton codebase)
Attributes to filtering data based on position or orientation confidence, display or not the orientation data, and smooth skeleton data using OpenNI’s smoothing API