2000-03-12

It seems that a representation both compact and flexible should be based on mathematics. VRML's cones and cylinders are just special cases of intersections of volumes defined by equations:

f(x,y,z)>=0

NURBS and Beziers patches are just special cases of surfaces defined
by 3 functions R^{2} ---> R^{3}

(u,v) ---> (X(u,v),Y(u,v),Z(u,v))

- convex hulls,
- recursive constructs like fractals and L-systems,
- transforms, deformations, parametrization, movement

Also an advantage of mathematical representation is being able, by formal differentiation, to compute exact normal and tangent plane for light-ray reflection rendering.

VRML has existed for years, and has not met a huge success. The current X3D specification seems merely a word-for-word translation of VRML97 in old XML monolythic DTD style. It's more than time to have a modular state of the art XML VR vocabulary, with all the facilities of XML Namespaces, XML Schema, and possibly XSLT, SMIL, etc.

It's also more than time to search other partners for the 3D geometry subset outside of the video circle, notably CAD and scientists involved in numerical simulations, and biological descriptions. See below the wide perspectives opened by this convergence.

Also there is a big opportuneness to have skilled computer scientists
from the numerical simulations domain join the design process. They are
shure, like I am, discouraged by the current design of VRML, and its too
narrow scope.

- volumic objects definition (see above)
- colors and textures on volumic objects
- behavior of volumic objects among them (contact, glued or sliding, rotating, interpenetrable, etc)
- behavior of volumic objects with User Interface
- a scene as composite Design Pattern of volumic objects
- light sources
- scenarios (time-dependant aspect )
- sounds

- Computer Aided Design (CAD)
- Architecture
- simulation in mechanics, physics, and biology

- implementation
- use primitives of Open GL
- generate triangular facets on the fly; for this there are nice algorithms from INRIA using Voronoï-Delanay methods in 2D Riemann space (see images)
- use XSLT to generate other math format, like Mathematica, Maple, Scilab, etc
- use an XSLT engine embeded in VR renderer to generate an evaluation tree in memory for math expressions (see below an example with C++ where declarations are generated)
- performance issues for animation
- specification of the subset of MathML for 3D geometry, say Geometry ML
- how to validate an XML information with respect to Geometry ML: through XML Schema validation, through Schematron

Mathml2c.xslt

sphere.cpp generated C++

Geom3d.cpp additional declarations