Tuesday, January 19, 2016

No Good Deed Goes Unpunished in Computer Animation

In the following discussion, the primary Antagonist is someone many of you know, but not all of you. He will not be named in this post. He is a well-known computer graphics pioneer who lives in California. The Company is not well known except to a few, but is a well-regarded “special services” technical design company who is known for its Dept of Defense clientele. Its two founders are each of them charismatic, brilliant, and successful. They are also located in California. The person is someone I would have called a good friend. The company, a desirable company to work for.

About 10 years ago, my friend calls me up to help him out on a project that is about 6 weeks from delivery. But they do not have anything working yet. What he wants me to do is to use GPU programming to take two stereo images and deduce a depth map from them. I have just started learning the GPU which my friend well knows, and I have never tried to do depth correlation from stereo before, although I am aware that it has been done and that it is well known to have problems.

It also turns out that my friend, who is working for the above mentioned company, does not have much money, so it will not be a real consulting rate. So I tell him that I will look at the problem and get back to him. In the mean time they send me a contract which I put aside because I am not going to commit to this project if I can not do it well, nor am I going to charge him.

I wish to emphasize that at no time did I commit to this project and that from the very beginning I doubted it was possible. The only thing that might have made it possible, given that any program written would then have to be integrated into their larger system, would be a program that was already written, and just needed a little refinement. Otherwise, there is no way the larger deadline could be made. (See Note 1).

Now I of course am very disappointed. I would love to work with my friend, this is the first time he has asked me, and I would love to work with this company. But for that to work, obviously, our first project would have to be successful, and I see very little odds of success here.

So I look at the problem and discover that programming the GPU back in the pre-CUDA days is much worse than I thought, I could spend weeks just figuring out how to get floating point data in and out of the GPU. So, I call my friend and tell him I can not do it. Maybe two weeks has passed since he first called me, if that. Not only that, but I have been talking to him every day or maybe every other day during this period so he knew how things were going, which is to day, not well. They do not pay me anything, nor should they, no obligations were made on either side and no contracts signed.

But as we all know, no good deed goes unpunished.  The question is only when and in what form the universal cosmic "reward" for trying to help my friend gets paid back.

Fast forward to today.

My friend, who works thereafter at every blue chip company in silicon valley you can think of, never once offers to help me get an interview or find a job for me, even though he knows I am looking. So, finally I ask him why and he explains that it was because I failed so badly on the above project, the project that I did not commit to do and which had very little chance of success. And furthermore, to add insult to injury, he says that company thought I was crazy. Why? Because I did not sign a contract committing to a project I did not think I could do and for which they had very little money?

And so, it appears that my friend has held a grudge all these years, God only knows who he told, and how many jobs or projects I have lost because of it. In fact, I wonder if the whole thing was just a play to blame the problem on the consultant. Both my friend and the company could say that they relied on a contractor but he failed to deliver what he promised even though I did not promise anything.

So what is the truth here? What is the lesson? The first is that no good deed goes unpunished, I should have just said no, up front, not I will look at it. And second, that I wonder whether I actually do have any friends in this industry.   And the third is to wonder whether I am really a victim or not?  How much of this is my fault, how much is no fault of my own? To offer to look into a problem, is that a bad idea?  Perhaps.

I so deeply regret getting involved in Computer Animation, and I wish I had never left RAND. It was a mistake for me to do so and I pay the price of that mistake every day.

1. Furthermore, in the following years as GPU work has become more and more practical and desirable, I still advise people to not think that they can tack on the GPU part at the last minute. A GPU is not a panacea, it has its own strengths and weaknesses, all of which are much better understood today than then, but even so, exist. I am a big fan of using the GPU but not in all cases, and it has to be used with sophistication and insight, and most of all, you have to have time to make it all work together with the main program, at least in many cases.

No comments:

Post a Comment