[x3d-public] Philosophical contemplations
John Carlson
yottzumm at gmail.com
Tue Dec 6 08:24:42 PST 2016
Ah it's the form versus function again.
On Dec 6, 2016 8:40 AM, "Roy Walmsley" <roy.walmsley at ntlworld.com> wrote:
> Hi again,
>
>
>
> I had some personal replies as follows:
>
>
>
> Imperative includes verbs. Declarative does not????
>
> Or, declarative is who what where when and imperative is how.
>
> And why is causative. X5D?
>
>
>
> A question then: Is X3D, in its current form, declarative or imperative?
>
>
>
> For example, I might have the following simple scene extract:
>
>
>
> <Group>
>
> <Transform translation = “0,0,2”>
>
> <Shape>
>
> <Box>
>
> </Box>
>
> </Shape>
>
> </Transform>
>
> </Group>
>
>
>
> Is this declarative, or imperative? I’ve simply told it to draw a box, in
> the specified location, with the default size and appearance. I haven’t
> told it how to draw the box. On the other hand, I didn’t say “Draw a box
> with its centre two metres off the ground.”. Neither did I say “Draw a
> scene”. Granted, there are no verbs. There again, X3D doesn’t have them! In
> comparison, however, I have told it how to draw a scene.
>
>
>
> It’s all a matter of the level of abstraction that you’re basing your
> judgement on… And whether you are looking up or down …
>
>
>
> Roy
>
>
>
> *From:* x3d-public [mailto:x3d-public-bounces at web3d.org] *On Behalf Of *Roy
> Walmsley
> *Sent:* 06 December 2016 12:00
> *To:* x3d-public at web3d.org
> *Subject:* [x3d-public] Philosophical contemplations
>
>
>
> Hi,
>
>
>
> First, a disclaimer. The contemplations below do not claim to represent
> the viewpoint of the Web3D Consortium. Indeed, they may not even represent
> my own personal viewpoint. They are expressed purely as stimulation for
> discussion.
>
>
>
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -----------------------------------------------
>
>
>
> *Contemplation 1*
>
>
>
> Recently Leonard has been seeking comments about “Essential elements of
> X3D”. While I would suggest that the question is not well phrased, since he
> is probably thinking about what should be in the next version of X3D, it
> did lead me into thinking more liberally.
>
>
>
> *X3D*
>
> X3D – Extensible 3D.
>
>
>
> Imagine sitting in your own office or living room. Contemplate what X3D
> structures (nodes) you would want available to model it. Pause for thought …
>
>
>
> Now, consider what structures (nodes) you would want to build a
> representation of the real thing, as opposed to the virtual one. Pause for
> thought …
>
>
>
> Now, extend that last thought to consider what structures (nodes) you
> would want to build a representation of the whole building. Pause for
> thought …
>
>
>
> And why stop there, what about the whole town (or city, or village, as
> appropriate), or the whole country, or the whole earth, or the whole solar
> system, or even the universe. Long pause for thought (and ignore any
> practicalities such as data size) …
>
>
>
> But why just 3D? These places aren’t static. They are dynamic. A fourth
> dimension, time, is involved. It took time for me to write this e-mail. It
> will take you time to read it (or maybe tl:dr).
>
>
>
> What structures (nodes) are required to fully support this extra
> dimension? At any or all of these levels. Pause for thought …
>
>
>
> So should we, perhaps, be calling this extensible 4D? I.e.
>
>
>
> *X4D*
>
> Coincidentally, the next version of X3D is planned to be version 4 !!
>
>
>
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -----------------------------------------------
>
>
>
> *Contemplation 2*
>
>
>
> Imperative, or declarative. There’s no such thing! What they really are is
> levels of abstraction.
>
>
>
> Let’s take, as an illustration, humanoid animation. Assume we have built
> an H-Anim figure, fully skinned, and clothed (or, to use other terminology,
> we have taken our mesh model of a humanoid and fully rigged it ready for
> animation). Now we can define a simple “step left foot forward” motion, by
> specifying a few joint rotations. Is this declarative or imperative
> programming? All the details about vertex transformations are hidden from
> the animator by the H-Anim implementation.
>
>
>
> Similarly, we can define “step right foot forward”, “swing left arm”,
> “swing right arm”, “look left”, “look ahead”, etc, etc.
>
>
>
> Now, consider the requirements for defining “walk from Point A to Point
> B”. We could define it in terms of the basic motions referred to above. Is
> this declarative or imperative programming?
>
>
>
> Similarly, we could define “get in the car”, “drive from Point C to Point
> D”.
>
>
>
> We can then consider generalising it some more, to define the motion “go
> to work”. This might involve the sub-steps “Leave the house”, “walk to the
> car”, “get in the car”, “drive to the work car park”, “get out of the car”,
> “walk from the car park to the office”. Each of these steps is broken down
> more. So “walk to the car” involves, at the very least, “step left foot
> forward”, “step right foot forward” multiple times (no comments about
> hopping please!). Each single step motion involves individual joint
> rotations, which in turn are used to calculate vertex transformations. To
> say nothing of rendering the model at each frame from the start to the
> finish.
>
>
>
> So, it’s really about choosing the abstraction levels. Optimising each
> one, and allowing appropriate parameterisation …
>
>
>
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -----------------------------------------------
>
>
>
> Well, that’s enough for now,
>
>
>
> Feel free to come up with your own …
>
>
>
> Roy
>
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20161206/e0945b1b/attachment-0001.html>
More information about the x3d-public
mailing list