[x3d-public] Calerga's X3D implementation

Yves Piguet yves.piguet at gmail.com
Tue Nov 1 03:58:49 PDT 2016


Our current implementation of X3D can be seen live at https://calerga.com/vr

It runs in modern web browsers, relying on JavaScript and WebGL. If WebGL is not available, shapes are drawn as wireframe in a 2d canvas. The Classic VRML encoding is our first goal, because we write files by hand: our needs with geometries are relatively modest, so xml, which we see mostly as an exchange format, isn't our priority.

The four last links of the page are educational examples in the domain of automatic control applied to electromechanical systems. They give a good idea of what we want to achieve. While our X3D implementation is closed-source, you can read the x3dv files themselves which are stored in the html documents as html non-javascript script elements. There are also two playground pages where you can test everything you want.

Our version of X3D implements most of the suggestions I've made here for a few months, and more. Our examples take full advantage of them. Here is our rationale:

- implicit field names in Classic VRML: less verbose
- expressions in field values and (new) in routes: replace scripts in some cases
- TextureMatrixTransform: more general than TextureTransform which doesn't support shear
- innerRadius field in Cylinder nodes: much simpler than alternatives with existing nodes
- factor field in Transform nodes: replaces scripts or expressions in some cases
- x_changed, y_changed, angle_changed events: clearer, replace scripts in some cases
- node TextTexture: potentially more powerful than the Text geometry
- nodes NumberInput and Scope: convenient
- nodes DistanceSensor and ScalarBundle: useful in robotics, especially mobile robotics
- bevel field in Box and Cylinder nodes: smoother, more gentle, high-quality looking shapes, friendlier and more inviting to touch, much simpler than implementations with existing nodes
- node SysquakeFigure and url method "sysquake:" in Script nodes: wildly experimental stuff with the JavaScript version of Sysquake, our software for numeric computation, simulation and visualization
- custom (unregistered) profile com/calerga and com/calerga/sysquake: should prevent other implementations to fail on our extensions

These features are briefly documented in https://calerga.com/vr/notes.html and https://calerga.com/vr/notes-sq.html

Have fun!

Yves Piguet
Calerga Sarl

More information about the x3d-public mailing list