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
(http://en.wikipedia.org/wiki/Laws_of_form).
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.
Dan Weston
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
employees thereof.
[EMAIL PROTECTED] 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@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe