RobertHodgin.com

January 11th, 2010

I have launched a portfolio site.

roberthodgin.com

A Single Step

December 30th, 2009

As I mentioned in the previous post, I have a hard time getting started. Much like I have a hard time committing to doing laundry. Or cooking dinner. I think about all the steps needed to successfully wash clothes or cook a 3-course meal and I get all flustered and the lazy gene kicks in. But if I stop thinking about all the necessary steps and just focus on the next logical step, the chore seems to finish itself.

I suffer in the same way with coding. I’ll think, “I really want to make a robust environment complete with weather systems and night-day cycles and wind and trees and grass and clouds and bugs and birds and valleys and…” and before I even have a chance to get started, I overwhelm myself with all that needs to be done.

(note: Any code you see will likely be pseudocode based on bits from Cinder, Processing, OpenGL, GLSL, and whatever else might strike my fancy. These posts aren’t meant to be source-code repositories. I want to talk more about my process and not my actual code. There are much smarter people out there that can explain how to code. I’d rather talk about why I code).

Vec3f point = Vec3f( 0.0f, 0.0f, 0.0f );

What could be simpler than a single point? It is a location in space. A single x, y, and z position. It helps to ground me in the void. It is something to look at. By creating a point, I am giving myself an anchor. It becomes the focus of my attention. Something infinitely small in a space that is infinitely large.

There is definitely something compelling about the single point in a void. It is a perfect representation of duality. The void represents the infinite, an expanse which has no end. The point represents the finite, a location which has no dimension. What better place to start?

I have been referring to the void as black and the point as white. I do this because of the obvious correlation to outer space. We know the universe to be mostly empty space which to our eyes comes across as black. It is generally devoid of any light. In programming, we show this by setting the red, green, and blue components to zero. I think of a point as being like a star in space. To our eyes, it is a pinpoint of white which is represented with red, green and blue values of one.

Next up: Giving this point some personality.

In the beginning…

December 29th, 2009

Void

This is how all my projects begin.

There is no red, green or blue. A complete absence of content or meaning. Anything can exist there. Any form. All possible worlds. But for now, it is the computational equivalent of nothingness.

Darkness within darkness. The gate to all mystery.

When I decided to attend art school, I was going to major in painting. I had a decent technique. I knew what paints to buy. I knew which brushes would last the longest. I would buy a large canvas, prep it with gesso, and then just sit and stare. Making that first mark was hard for me. I envied those that were able to just dive right in, seeming to know exactly where they wanted to end up. I was not like them. I wanted to plan it all out in my head before starting. As a result, I wasn’t a very good painter.

It is like the eternal void: filled with infinite possibilities.

My hesitance stems from not knowing what I want to create. When I start a new project, I occasionally have an idea in mind but far more often I simply want to create something new. I want to start down a path. I do not know where I want to go but I know that I want to go somewhere.

A good traveler has no fixed plans
and is not intent upon arriving.
A good artist lets his intuition
lead him wherever it wants.

All I need to do is place brush to canvas. The simple act of starting is enough. I need not know where I want to go. By simply going, regardless of which direction I choose, I will be well on my way. Even if I do not yet know where that destination lies.

A journey of a thousand li begins with a single step.

Next up: Taking that first step.

The quotes in this post are from the Tao Te Ching, as interpreted by either Stephen Mitchell or Jane English and Gia-fu Feng.

You have been warned

December 28th, 2009

I have been maintaining this blog since July 2005. Sometimes I post frequently, as often as once per day. Usually the frequency is closer to once per month. However, in that month there are usually several posts that were partially written and abandoned because I felt I wasn’t offering anything new. At some point I inevitably start to think, “Everyone knows this stuff so why bother writing it out.” It’s like I’m writing to tell you all that bacon tastes really good. Everyone knows that bacon tastes really good so what is the use in telling you.

Many of you have a stronger grasp on coding because you studied it in school or have just been doing it a lot longer than I. Many of you have a weaker grasp on coding because you are coming at it from a different discipline and just haven’t been doing it for very long. Some of you are only interested in source code. Some of you are only interested in viewing the outcome. Some want to know my inspirations. Some want to know about the tech. Some of you want music videos and send me links to your myspace page. To appeal equally to all of you is an impossible task.

I have decided that I will start publishing more of the abandoned posts. Hopefully, you will learn a bit more about why I do what I do, instead of just reading about what I have done. What’s the harm, right? It’s not like you can leave me mean comments. I turned those off long ago.


Cymatic Ferrofluid

December 9th, 2009


Picture by munkt0n

This black oil is the reason I code. Not literally but it has had a profound impact on what I find myself coding. In 2002, I bought a small amount of ferrofluid off the internet. It was around the time when I started to learn Processing. I began asking for advice on the Processing forum on how to translate the formulas for magnetism into code. I received a great deal of help and after a couple days, I had a working 2D prototype. I have been using some version of this prototype ever since. You can see the prototype here but it was written for a pre-beta Processing so the code is pretty old. If you are looking for source code, I recommend Shiffman’s tutorial on forces.

The reason the black oil appealed to me was that it allows you to visualize the invisible field surrounding magnets. Its like a three dimensional execution of the iron filings test but much more mesmerizing. I instantly wanted to know more about them. Why do they behave the way they do? Why are they spaced out just so? What insane amount of math is going on behind the scenes?

I recently came across a similar looking phenomenon when looking for late night distraction on YouTube. Cymatics is described by wikipedia as being “the study of visible sound and vibration”. Below is an image of how vibrations from audio can create non-newtonian structures in a cornstarch and water solution.

If I wanted to create a similar looking structure, I would fill a space with magnetic particles (which would all push away from each other) and corral them with a central gravitational force (which would pull them all towards the center). It would look like this:

It is not a bad solution, but it doesn’t really have any personality. It just looks like the result of a circle-packing exercise. Not only that, it isn’t descriptive of the process I am trying to model. With the ferrofluid, there was no central gravitational force tying everything together.

Recently, I revisited the magnetism code. Somewhere in a flurry of ‘what if‘ guesses, I tied the mass/charge ratio to the particle’s distance from the origin. It ended up working surprisingly well.

As a particle moves towards the center, it would gain mass. If it moves towards the edge of the threshold, it loses mass. I added a hint of Perlin noise to break up the circular boundary. It is mesmerizing to watch the particles fall into place. Something about it feels right.

The next step was to disguise these particles. I added them to the multitouch project I have been working on (which I will talk about in my next post). In addition to the goo being distorted by touch, it can now be distorted by the magnetic particles. Every particle tells the mesh at the corresponding location to distort itself by an amount equal to the mass of the particle. Additionally, each particle creates large but shallow surface ripples. Again, the larger the mass, the larger the ripple. This creates a lens distortion which keeps the mesh surface dynamic.

This project also uses webcam input as a simple environmental reflection. I realized I could get a simplified subtle global illumination effect by having the webcam pull in color and brightness directly from the output, creating a highly decaying feedback loop. In short, I draped a piece of white paper over the laptop webcam so that the camera only saw light coming off the monitor.

Here are a couple short renders. They reflect realtime performance. I hope to have videos with audio soon.

Cymatic Fluid from flight404 on Vimeo.

Cymatic ferrofluid, lighting test from flight404 on Vimeo.

Cymatic ferrofluid from flight404 on Vimeo.

Next up, I will talk about the process I used for creating the goo itself. Perhaps eventually, I will be able to code my own cornstarch monsters. Stranger things have happened.

Homage to Radiolab

November 12th, 2009

As I mentioned in a previous entry, I am working on an application to be presented at the V&A Decode exhibition opening in December. I was asked to rework the Solar piece so that it could be audio responsive in real-time.

During the development, I realized my usual habit of listening to music was not going to serve me well. As far as I know, the gallery will not be blasting The Knife throughout the space. I switched off the music and started making beep boop blah blah blah noises into the microphone but this got old, fast.

I put out a call on Twitter for podcast recommendations. A couple people were strongly in favor of WNYC’s Radiolab. I decided to give it a go and man… it is all I have listened to for the last three weeks. Im completely addicted.

I took a snippet from the episode entitled “Musical Language” which features a beautiful soundscape created by Jonah Lehrer. In the episode, Jonah and Robert Krulwich are analyzing the notion that sound is “touch, at a distance”.

Solar rework from flight404 on Vimeo.

Many thanks to Jad Abumrad and Robert Krulwich and the excellent Radiolab team for giving me so many hours of intelligent distraction.

Find out more about the podcast at: http://www.wnyc.org/shows/radiolab/

Hopefully, you will be entertained enough to support: http://www.wnyc.org/support/

The Classics Presents: Le Petit Dummy

November 3rd, 2009

Reposted from The Classics Presents site.

Three months ago, Bill and I decided to create an iPhone app. We had an idea in mind and though the idea was most definitely low-brow, we thought the challenge worthy of our efforts. So down into the gutter we climbed to begin working on the app that would become Le Petit Dummy.

Everything was going as planned. We were making great progress. Then it happened. Something entirely unanticipated. The more time we put into developing the app, the more it became respectable. Lo, our gutter-born brainchild was maturing! It sprouted wings of respectability and soared. The depths whence it came were now but a speck. It defied our intent and expectations and blossomed into something magical.

So, what does it do? What DOESN’T it do!

How many times have you longed to see the famous neo-classicist Jacques Louis David sing a scat rendition of Mouret’s Rondeau? If you are anything like me, the answer to that question is easily in the thousands. Well, my friends, long no more…

Too highfalutin? Okay. How about this? You could combine two disparate memes to create something greater than the sum of its parts.

Must go faster indeed! Perhaps you and TiVo want to collaborate to mock someone you saw on a Chevy commercial.

Not your thing, you say? You’d rather poke Kanye in the mouth as he tries to vocalize his innermost thoughts, you say? Be our guest.

Maybe a talking hotdog is more your thing. There’s an app for that!

Got a pet monkey? Does it often misbehave? Wish it could vocalize self-pity? Your wish is granted.

So many possibilities! Le Petit Dummy does it all! Well, it doesn’t do GPS turn-by-turn navigation but maybe we can work that into a 2.0 release.

Le Petit Dummy is available from the app store now. Enjoy, and don’t forget to tweet your new Twitter avatars.

Long time no see

November 3rd, 2009

One would think that me being technically unemployed would mean that I would technically have more time to post to this blog but one would technically be mistaken. I have been even busier in the last two months than I was in the several months prior. Doing my own thing has definitely revitalized my artistic efforts. In December, I am showing work at V&A (London), Wing Luke (Seattle), and GAFFTA (San Francisco). I thought I would write a bit about each.

Victoria and Albert Museum

I was contacted a couple months ago about contributing to the Decode exhibition. I will definitely be in good company. Among the contributors are Aaron Koblin, Jonathan Harris and Sep Kamvar, Golan Levin, Daniel Brown, Daniel Rozin, and many others. According to the site, Decode “will show the latest developments in digital and interactive design, from small screen based graphics to large-scale installations.”

They asked me if I could make a real-time audio reactive version of Solar. I created Solar two years ago. It originally came about because I was working on a demo for a talk I was to give at UCLA. It quickly became one of my more popular works. It features a magnetism and gravity sandbox where particles react to the intensity of the audio. Creating a compelling real-time version is definitely a challenge. The original Solar render probably ran at about 0.5 to 1.0 frames per second. Getting that up to between 30 and 60 fps is not going to happen easily.

Thanks to some great advice from Andrew Bell, I was able to create a robust version that still had a nice visual density but would still run at a good clip. It involved using instances of the parent sphere and child particles instead of calculating a set of particle positions for each sphere. Since I was definitely CPU bound (the magnetic repulsion calculations can get really heavy really quickly), this turned out to be a great way to still show tens of thousands of particles but only need to do repulsion calculations on a set of a few hundred.

Decode 01

Decode 02

Gray Area Foundation for the Arts

Im still not 100% certain what I will be showing at GAFFTA but it will likely be a series of prints based on modifications of the Solar engine I worked on for V&A. I created a tangent project called Moment of Fission. For this project, I place a few hundred charged particles in an extremely small space and then run the simulation. The particles don’t want to be that close so they instantly start moving away from the centroid. I trigger a render shortly after the particles start their rush to expand into unoccupied space. Below are a couple images from the series. More images can be seen in my Fission flickr set.

GAFFTA 01

GAFFTA 02

Wing Luke Asian Museum

The Wing Luke is having a show called Cultural Transcendence. I chose to try and recreate a memory I have of my time in Japan. My father met my Japanese mother when he was stationed at Okinawa for the Air Force.I lived there for only two years, between the ages of 3 and 5. I recall little of that time. My only strong memory is of a trip my family took to Mount Fuji. I remember climbing the gentle slope at the base of the mountain. It was very foggy and the path we took meandered through dense bamboo. There was an old man selling walking sticks from a wooden shack. My father bought one. I cherish that memory fondly.

A couple years ago, I asked my mother about the time we spent there. She laughed and said we had never gone to Mount Fuji. The memory I had was totally fabricated. We were actually in a public park just outside Tokyo. Mount Fuji was visible in the distance. It was not foggy. There was no bamboo. I had apparently made the whole thing up.

Fuji 05

In this piece, Mount Fuji always remains far away but looms over the landscape. It is always partially obstructed by bamboo and mist and other weather effects. Sometimes you can only see it because it is silhouetted by the passing full moon. It is a moody piece running in black and white.

Here is some test footage I shot off the monitor. Okay, the wind speed is cranked up too high but it should give you a decent idea of how the final piece will look.

Fuji test footage from flight404 on Vimeo.

Busy busy! I will post better documentation after the pieces are shipped and in place. Im excited for all of them. I am particularly excited for Fuji because I have been working on it for a few months. It is starting to feel right.

Moving forward

September 15th, 2009

I wouldn’t be surprised if many of you had no idea I was a Sculpture major. Well, originally, I was a Painting major, then Illustration, then Industrial Design, before finally settling on Sculpture in the second semester of my sophomore year. I spent the next two and a half years learning how to cut wood, bend metal, blow glass, weld steel, shave plaster, cast wax. It was all very exciting to me and I loved every minute of it. Well, not EVERY minute. The sound an oxy-acetylene torch makes when it backfires is comparable to a gunshot. Oh, and did you know if someone cuts themselves on a bandsaw, you are not supposed to clean up their blood? I ended up sprinkling saw dust on the small puddle next to me because, frankly, it was off-putting.

By the time I reached my senior year in 1997, my experience with the internet was limited to poking around on AOL while I was home for Christmas. I was told by my thesis instructor that it would be a good idea for me to make a simple website so I could upload photos of my work which might make it easier to get employment or eventually, maybe even a gallery showing. I picked up a web design book, downloaded a trial copy of Flash 3, and stumbled backwards into a life making websites.

Seven and a half years ago, Benjamin Palmer (CEO of The Barbarian Group) approached me and asked if I would be interested in starting a company with him. I told him I would think about it. Benjamin was a new friend at that time. We had worked on one project together for Arnold Worldwide earlier that year and met up for coffee every now and again. Our friendship solidified on the afternoon of September 11th, 2001. At that time, I pretty much lived in the shadow of the John Hancock tower in Boston. When it was reported that a couple planes were still unaccounted for, worries began to spread that the Hancock tower might be on the list. Benjamin called me and told me to come over to his place where a few people were gathered to watch the story unfold on the news. We have been close ever since.

The next day, another close friend, Keith Butters (ECD of The Barbarian Group), mentioned that he was thinking about Benjamin’s proposal to start a company. Keith and I worked together at Circle Interactive a couple years earlier. I slaved away over squeezing 100k worth of content into a 12k animated GIF banner ad, and Keith was at the next desk slavishly cropping the shadows out of hundreds of photos of watches and pens. We certainly paid our dues and through the drudgery, we became close friends. I trust his judgement so when he said he was going to accept, I called up Benjamin and said I would accept too.

We met up in Benjamin’s apartment in Roxbury and began to formulate a plan. It was there that I formally met Rick Webb (COO of The Barbarian Group). I had known Rick but only in passing. We both worked at Arnold at the same time, but didn’t have any direct interaction with each other. He impressed me right away. Im still amazed that someone with so many friends and social obligations can find the time to be so very well read. Rick can speak intelligently about almost any subject under the sun.

And so it began. Our first job was for Nike (through Wieden + Kennedy). Our second, Volkswagen (through Arnold Worldwide). Not too shabby for a start-up working out of Benjamin’s apartment. Ever since then, its been success after success. We received a ton of press, a ton of awards, and never had to go searching for clients.

And as we grew, those memories of art school and outside interests began to feature more heavily during my day dreams. I was becoming less and less interested in the work I was helping to create for clients. A pivotal moment came in 2006 when The Barbarian Group was asked to work on an installation projection for NextFest (with Goodby Silverstein & Partners for their client, Saturn). To date, this has been the most rewarding work experience I have been a part of. Sure, the deadline was short and the pay wasn’t exactly commensurate, but the final piece was exceptional.

I was hooked. This is what I want to do. I want to work on installation projects that require human interaction and feature millions of tri-color LEDS and proximity sensors and mirrors and robots… yeah! Then the reality of the situation started to sink in. Those jobs go to either 1) companies like UVA or rAndom international or Second Story who have a ton of experience in this field (which The Barbarian Group has been trying to become, but it’s hard to expand your capabilities in a down economy), or to 2) freelance specialists who can help out the previously mentioned companies.

And this brings me to my decision to leave The Barbarian Group. Over the last couple years, we have received numerous requests to work on installation oriented projects. Sadly, these clients were not interested in hiring a whole company. Rick Webb phrased the problem very eloquently:

The work that Robert does holds vast potential. And we’ve spent a lot of time and effort trying to sell it and turn it into some profitable work. We’ve had some success through the years, but it’s also been a frustrating process. The clients that want what Robert offers often want just that – Robert. And many of these clients are agencies that aren’t super psyched to hire the whole of The Barbarian Group. Many other of these potential clients are arts collectives, experimental endeavors, collaboration and low-budget, high art affairs that Robert would love to pursue, but often is unable to, due to the fact that he is working to contribute to the company as a whole, and these people cannot afford The Barbarian Group.

So what now? That is an exciting question. The amount of interest I have gotten in the two weeks since my departure has been quite heartening. However, I won’t be leaping right into freelance projects. I have a couple gallery pieces that I will be working on to be elaborated upon in my next post. Also, Bill Lindmeier and I are putting the finishing touches on an iPhone app that we hope to submit in the next two weeks.

In the end, I am extremely grateful to all the Barbarians for their support and friendship over the years. Especially the Barbarian partners who graciously extended me the freedom to pursue less traditional (and often less profitable) work. I cannot imagine a better way to have spent the last seven years of my professional life. Thank you.

It almost feels like I am a teenager again about to leave home to attend RISD. Im nervous, anxious, and extremely hopeful. Lets just hope there are fewer bandsaws out there.

Change is in the air

September 8th, 2009

I just wanted to leave a quick post about my departure from the Barbarian Group. They put up an awesome and flattering blog entry on the TBG website. I am in the process of writing up my version which includes a stroll down memory lane and will hope to have it posted shortly. I was with the Barbarian Group for over 7 years which is a good 10x longer than any other job I have had. It has been a fantastic experience and I want to extend my gratitude to all the Barbarians. Look for a much more in depth post about this in the next couple weeks.

What now? Finishing up an iPhone app and working on a couple gallery pieces. Busy busy! Exciting times ahead!