[Haskell-cafe] A voice in the desert... (Was: Is lazyness make
westondan at imageworks.com
Thu Feb 15 14:42:32 EST 2007
Kudos to you for invoking Plato. This forum could use a bit of
epistemological levity. Your passionate and quirky style reminds me of
the "Laws of Form" by G. Spencer-Brown
One quibble: I work for a one of the world's largest 3-D visual effects
studios (based in LA) and I can say with some authority that of the work
I've seen, the vast amount of animation (complicated or not) both
embedded in photo-realistic live action and in full-feature animation is
NOT inverse kinematics, but forward kinematics in an endless chain of
deformer layers, painstakingly and lovingly coerced through endless
iterations into place. The "obvious benefits" of physical simulation,
IK, and rule-based autonomous behavior inevitably run into the brick
wall of a director whose inner vision cannot be easily converged on
through any complicated function of few input parameters. Even motion
capture (actual human motion) often needs tweaking to more effectively
tell a story. Experienced animators can fake the IK part of this fairly
quickly, in any case.
As such, it is not lazy programming, but greedy programming that is
prominent in my industry. Lazy algorithms work best when the goal is
well understood and the algorithm takes shape during development. In
visual effects, efficiency of process and predictability of result are
paramount (pardon the pun), and algorithms that optimize these are well
understood. It is the end effect that evolves by massaging and mutating
these algorithms strategically. Often, the exact goal is not known even
to the director until it appears out of a lineup (or "wedge", evaluated
greedily) of countless variations.
Perhaps your different experience is in the domain of robotics or games
programming, which have entirely different goals and requirements.
Senior Software Engineer
Sony Pictures Imageworks
NOTE: The opinions and observations expressed here are personal views
expressed by me alone and do not necessarily reflect those of Sony
Pictures, its subsidiaries, business partners, affiliates, or other
jerzy.karczmarczuk at info.unicaen.fr wrote:
> Citing the quoted citation, or the cited quotation, or whatever:
>>> > According to one guy's analogy: the Real World is strict - in order to
>>> > drink tea, you have to put the kettle on the fire, wait until water
>>> > boils, brew tea and then drink. Not the kettle is put on the fire,
>>> > water boils and the tea is brewed when you take the empty cup to >
>>> start drinking.
> etc. etc....
> I have been advocating for years that independently of theoretical
> advantages, and some nice realizations (Bird et al), there is something
> more. The laziness is a terric ALGORITHMIC TOOL, making it possible to
> write equations, with intricate cross-reference between variables, and
> to transform them without moving a finger into implementable algorithms.
> There are no miracles, and if a variable references another one, which
> will be instantiated later, it cannot use directly the concerned values.
> But plenty of algorithms *may* be effective, since they defer the access
> to those "future" objects. I wrote a bunch of papers on this...
> Getting back to the Real World. The main issue - in my opinion - is that
> we do not code the Real World, whatever may be your personal philosophy.
> The models we code bear some peculiar relations to the models we *see*
> in our Plato cavern. Take for a pedagogic example, the issue of robotics,
> or, if you prefer, the animation of humans/animals, etc.
> The physical causality works as follows. The brain issues the orders which
> propagate sequentially through the nerves, make the articulations and the
> limbs move, and *finally* the end effector - the hand - grasps the kettle
> and put in on the fire. Anybody protests?
> Now, a robot, or an animated personage has a *scenario* to obey, to grasp
> the damn kettle, and to put it on the fire.
> The intermediate limbs and articulations must move accordingly. Now you
> will code all this...
> And you fall well inside the domain called the Inverse Kinematics issue,
> which may demand some horrible calculi, such as the evaluation of the
> pseudo-inverses of Jacobi matrices, but doesn't matter. You must *reason*
> differently. The hand "pulls" the elbow, which pulls the arm, which "says":
> "may dear brain, I need the following commands from you, in order that our
> terminal effector obey its scenario..."
> Folks, this is no science fiction, but *ALL COMPLICATED ANIMATIONS* are
> done in this way. The IK is an established industrial domain, and in my
> humble opinion, the laziness IS the tool to code it in a readable manner
> (I work on this right now, but slowly...)
> Jerzy Karczmarczuk
> PS. BTW. The True Real World is quantum, not classical. A bottle of
> the most expensive champagne I can afford, to a guy who will convince
> me that the quantum world is strict in the computational sense of this
> word. In my opinion this category is not applicable at all...
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe