X3DJSAIL, X3D Java Scene Access Interface Library

X3D Java Scene Access Interface Library (X3DJSAIL) supports programmers with standards-based X3D Java interfaces and objects, all as open source.

X3DJSAIL provides a set of strongly typed Java application programming interfaces (APIs) providing programmer access to an X3D scene graph. Two integrated Java packages are included that contain X3D SAI interfaces and support the X3D Graphics Standards for Java programmers.

  • org.web3d.x3d.jsail provides concrete implementation-oriented classes for building X3D scenes using standalone Java objects.
  • org.web3d.x3d.sai     contains standard X3D SAI interfaces to independently compile Script-node source for use in X3D players.

Goal outcomes: make it easy to create a fully valid X3D scene graph using Java, while also making it hard to create an incorrect or invalid X3D model. X3DJSAIL has succeeded in accomplishing these goals.

Available products include Javadoc documentation, several thousand self-validating examples, source code, build support, run-time jar archives, and draft specification annexes for node interfaces and abstract-node type interfaces.

Questions, suggestions, additions and comments regarding the X3D Java SAI Library (X3DJSAIL) and X3D Unified Object Model (X3DUOM) design are welcome. Please send them to Don Brutzman (brutzman at nps.edu).

Packages
Package
Description
The X3D Java Scene Access Interface Library (X3DJSAIL) provides a comprehensive set of strongly typed X3D Java interfaces for concrete implementation classes.
The CADGeometry component is provided for Computer-Aided Design (CAD) nodes.
The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing.
The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects.
The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers.
Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog.
The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world.
The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node.
The X3D Java fields package provides a comprehensive set of strongly typed X3D Java classes for concrete implementation of X3D field types.
The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time.
The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available.
The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere).
The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications.
The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph.
The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification.
Interpolator nodes provide keyframe-based animation capability.
The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world.
The Layering component describes how to layer a set of subscene layers into a composite scene.
The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content.
The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image.
The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene.
The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web.
The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes.
The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion.
The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions.
Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry.
The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified.
The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion.
The Scripting component describes how Script nodes are used to effect changes in X3D worlds.
The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry.
The Shape component defines nodes for associating geometry with their visible properties and the scene environment.
The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed.
The Text component defines how text strings are rendered in an X3D scene.
TextureProjection nodes project texture images onto geometry in a scene.
The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry.
The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface.
The Time component defines how time is sensed, computed and associated with events in an X3D scene.
The Volume Rendering component provides the ability to specify and render volumetric data sets.
The X3D Java Scene Access Interface (SAI) package is designed to provide access to a browser and its contained scene graph, either as an internal X3D Script node, or as an standalone Java program.
The CADGeometry component is provided for Computer-Aided Design (CAD) nodes.
The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing.
The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects.
The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers.
Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog.
The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world.
The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node.
The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time.
The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available.
The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere).
The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications.
The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph.
The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification.
Interpolator nodes provide keyframe-based animation capability.
The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world.
The Layering component describes how to layer a set of subscene layers into a composite scene.
The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content.
The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image.
The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene.
The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web.
The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes.
The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion.
The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions.
Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry.
The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified.
The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion.
The Scripting component describes how Script nodes are used to effect changes in X3D worlds.
The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry.
The Shape component defines nodes for associating geometry with their visible properties and the scene environment.
The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed.
The Text component defines how text strings are rendered in an X3D scene.
TextureProjection nodes project texture images onto geometry in a scene.
The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry.
The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface.
The Time component defines how time is sensed, computed and associated with events in an X3D scene.
The Volume Rendering component provides the ability to specify and render volumetric data sets.
The X3D Java x3duom package supports Java utility classes for Efficient XML Interchange (EXI) compression.
The X3D Java x3duom package provides a set of Java utility classes for the X3D Unified Object Model (X3DUOM).