Recently a colleague and I were discussing the distinction between genotype and phenotype for synthetic objects. Two virtual objects can both be chairs, but look very different.
This is important, because in both cases, virtual humans would know that they are things to sit on. And this generalizes to virtual tables (things to put stuff on), walls (things a virtual human can’t walk through) and windows (things a virtual human can look through within a wall).
When you model a virtual object, it is useful to identify its genotype. This not only helps when using it, but also as you continue to refine its appearance.
No matter how you modify the appearance of a virtual chair, it should still be able to function as a chair in your little virtual world. And no matter how you modify your virtual human, you still want that virtual human to be able to sit down on any virtual chair.
It may seem like these sort of rules will add lots of constraints. But it turns out that having those constraints actually makes everything easier.