
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. jerzy.karczmarczuk@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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe