Here are proposed extensions grouped according to classes involved:
|
Support planetary motion |
Vrml node: PROTO |
Class: kinematicsBean and DynamicsBean |
Since VRML/X3D does not support this directly I suggest inventing some custom standard nodes (not part of VRML/X3D specification) when saving to a standard VRML/X3D file they would have to be converted to a PROTO, scripts, etc.
The kinematicsBean would control such things as spin speed, orbit speed, orbit angle and optionally other parameters associated with elliptical orbit (semimajor axis, foci, periheilion, aphelion, etc.)
The dynamicsBean would calculate these from initial conditions, mass, inertia tensor, and forces.
|
User interface: wizard to create and edit planetary system |
Vrml node: |
Class: |
New screen, shows planets with moons in a row, allows:
- Planets to be added and removed.
- Moons to be added and removed.
- Any other space objects to be added and removed (from thumbnail library)
- For each of these we can alter:
- Size
- Distance
- Choose texture from library using thumbnails
- Using graphical user interface adjust the moons size and distances using mouse input.
- Choose atmosphere, which may be semi-transparent texture.
- Ability to save and restore to a library of the planets with a thumbnail view.
- Ability to save and restore to a library of the moons with a thumbnail view.
|
Support midi files |
Vrml node: AudioClip and Sound |
Class: SoundBean and AudioClipBean |
Get these classes to work, we do not need full functionality but it must:
- Play Midi file
- Play only the sound node which is nearest to the camera.
|
Texture support |
Vrml node: ImageTexture and PixelTexture |
Class: ImageTextureBean and pixelTextureBean |
- Make sure that texture nodes are fully supported
- allow image texture node to be converted to pixel texture and visa-versa. So that user can choose whether to have texture as part of VRML file or external file.
- When texture is imported convert to square bitmap with power of two dimensions (to allow it to work with OpenGL).
- Check that it works with files produced by, CyberMotion 3D Designer, Daylon Leveller and John Beales programs.
- For planets and moons use texture coordinates which are already provided by sphereBean, other shape space objects may require implementation of TextureCoordinateGenerator node.
|
Support texture transform |
Vrml node: TextureTransform |
Class: textureTransformBean |
Allow the texture to be moved relative to the object so that, for instance, the poles are positioned correctly. This requires:
- TextureTransformBean fully implemented correctly.
- User interface changes to allow texture transform to be adjusted graphically.
|
Support scripts |
Vrml node: |
Class: ScriptBean |
Implementation of script node using JavaScript
|
User interface: trackball system |
Vrml node: |
Improvement to movement tracking using mouse, to allow.
- More trackball type input.
- Ability to look around
- Ability to remain looking straight at planet or moon while moving around it.
|
background |
Vrml node: Background |
Class: backgroundBean |
Support for star background, either by Backround which links to image via URL or by using TextureBackground. I am not sure about all the issues with this. For instance how would the background move when the camera moves.
|
Surface of planet |
Vrml node: ElevationGrid and Geo nodes |
Class: |
If we are looking at moons from surface of planet, do we need some interesting surface on planet? For instance, elevation grid? This could be generated randomly? Or possibly if we used geo nodes we might be able to use data from earth locations?
|
atmosphere |
Vrml node: Material transparency field or ColorRGBA or Color RGBA color model or Fog |
Class: |
Atmosphere, Cloud map, etc. might be indicated by a partly transparent sphere around the outside of the planet/moon. Possible ways to implement this might be:
- Use the transparency field of Material node.
- Use ColorRGBA or Color RGBA color model so that texture field with transparent parts can be used.
- Use Fog node
|
LOD |
Vrml node: LOD |
Class: LOD |
Level of Detail (LOD) could be used to speed up rendering.
- Implement LOD node.
- When planets and moons are generated, low resolution versions should be generated automatically and placed under LOD node.

