to X3D Resources
               

X3D Developers Guide

               
to Web3D home page

The X3D Developers Guide describes system configuration and setup recommendations that support various software projects supporting the Extensible 3D (X3D) Graphics International Standards.

Ant | Cygwin | DES | DIS | Donate | Example X3D Models | Free as in Freedom | Java | JavaScript | Licensing and IPR | MySQL | NetBeans | Projects | Subversion | telnet | Time | Tomcat | Tools | Xj3D | XML | XML Catalog | X3D‑Edit authoring tool | X3D Progress | X3D Resources | X3D Scene Authoring Hints | X3D Tooltips | X3D Validator (currently offline) | Xj3D |  Contact

🔖 Ant to top

Ant is a Java library and command-line tool used to automate common tasks for building projects. Ant task syntax is in XML, making task definition and validation much simpler than other build systems.

Ant is used to maintain most web3d.org X3D projects. Key references include:

Recommended ant configuration details follow.

Further configuration options are described under Ant Setup.

🔖 Cygwin Unix for Windows to top

Utility tools in the Cygwin distribution provide Unix command-line functionality for Windows systems. It is not needed for macOS or Linux systems.

🔖 Discrete Event Simulation (DES) to top

The DES projects are a suite of integrated tools for analytic simulation. This work is entirely built using open-source Java, XML and X3D.

🔖 Distributed Interactive Simulation (DIS) Protocol to top

The IEEE Distributed Interactive Simulation (DIS) protocol is an IEEE standard for conducting real-time platform-level simulation across multiple host computers. DIS is one of the most widely used modeling and simulation networking standards. DIS is used worldwide, especially by military organizations but also by other agencies such as those involved in space exploration and medicine.

Overview (from the standard). Data messages, known as Protocol Data Units (PDUs), that are exchanged on a network among simulation applications are defined. These PDUs are for interactions that take place within specified domains called protocol families, which include Entity Information/Interaction, Warfare, Logistics, Simulation Management, Distributed Emission Regeneration, Radio Communications, Entity Management, Minefield, Synthetic Environment, Simulation Management with Reliability, Information Operations, Live Entity Information/Interaction, and Non-Real-Time protocol.

Active Work. NPS is actively implementing complete coverage of the IEEE DIS version 7 protocol.

Key References

🔖 Donate to top

The X3D software and models discussed here are openly published without charge and funded by research proposals. You are welcome to donate funds to support these efforts if you wish. The non-profit Web3D Consortium supports this work.

🔖 Free as in Freedom to top

The free cost of open-source software has been fundamentally important for the X3D and HAnim community, enabling contributors to create applications and content that are highly capable, compliant with open standards, highly capable, maintainable, and repeatable by others.

This long-term stability is essential for long-term standards development. It further anyone else to utilize this standards-driven work compatibly with program life-cycle requirements and industry support.

The development and use of free software avoids common problems of "vendor lock in" through proprietary restrictions, inability of ongoing government efforts to fund the renewal of prior licenses, and inability to pay a company that is otherwise unwilling to perform software bugfixes and corrections.

This approach also avoids the common "short half-life" problems of companies that can either go out of business or else get acquired (and perhaps buried) by other companies. Such business pathologies not only break software but also negate correspondingly significant investments to create content of interest. In turn, such dependency on proprietary software leads to personnel vulnerabilities when an expert programmer or content developer can no longer apply their skills to improve prior accomplishments.

Further information on these software imperatives can be found in the Licensing section and through the following key sources.

🔖 Java to top

Java is the primary programming language used in the web3d.org X3D software projects.

To configure Java on your development system:

Additional, older Java resources:

🔖 JavaScript to top

JavaScript is a common programming language used in Web browsers for HTML and X3D scripts. n.b. JavaScript is not the same as Java, they are different programming languages.

🔖 Licensing and Intellectual Property Rights (IPR) to top

Web3D License

Rationale for success

Whenever possible, our standards-development efforts utilizes open standards, along with open source licensing for models and software.

Commercial models and software can take advantage of these same standards compatibly for best interoperability across any application domain, with open-source software offering clear shared visibility into how an open standard can be well implemented.

Motivation for open source: many authors think it important that their work is published publicly and made available freely. Web3D authors and researchers are working with worldwide communities of interest, and strive to maximize the interoperability and 3D visualization capabilities for X3D and HAnim models. Our strategy to accomplish these goals is the development, testing, adoption and evaluation of Web standards.

It is always important to observe Intellectual Property Rights (IPR) requirements. Because of our involvement in multiple groups developing open standards and open source, it is important that our work remains "untainted" and unexposed to software that may contain patent encumbrances. Since the functionality offered by the X3D and HAnim International Standards are royalty free (RF) for any use, we are careful to not jeopardize the IPR for any of the standards or codebases that we work on.

Ongoing benefits

The Web3D process requires at least two independent interoperable implementations for each specification. Commercial implementations are allowed and welcome, while at least one of the implementations being open source so that example algorithm solutions are sharable. We are further diligent about ensuring that licenses accompany Web3D models and software.

For primary development of Web3D standards, care is taken regarding tools with the following characteristics:

Successfully upholding these practices for standards development provides substantial accompanying benefits.

Worth repeating: industry players benefit from open standards development. Web3D Consortium serves as an accompanying trusted forum to discuss how private commercial imperatives can partner to gain significant long-term advantages.

Contributions

Contributors who wish to provide code or content for any of the archives we maintain can either use the Web3D Consortium open-source license or else another open-source license of their choice. In this way, these public archives remain freely reusable.

The Web3D Contribution Submission Guidelines and Web3D Intellectual Property Rights (IPR) Policy provide strong protections ensuring that both current and future technology in Web3D-produced standards remains Royalty Free (RF) for any use.

Additional resources

🔖 MySQL Database Support to top

NetBeans has excellent support for MySQL databases. The NetBeans help page "Using MySQL with the IDE" is a quick reference. Other resources include:

Additional resources:

A secure shell (ssh) tunnel makes it possible to create a local connection to a remote database on another server.

This makes a port on your local host appear as if it is a port on the remote host. In reality, the traffic is first going into the port on the local host, then going across an encrypted link to RemoteHost.nps.edu, then being decrypted on the other side, and then sent to the MySQL port on RemoteHost. Finally the ssh tunnel returns the data response from the database to the port on your local host. This technique is secure because it lets us avoid having to unblock the firewall to open the MySQL port on the remote host. It also ensures that all the passwords and data sent across the network are encrypted. If you are connecting to an NPS database server, you will first need to be connected to the NPS intranet.
ssh -N username@RemoteHost.nps.edu -L 3307:localhost:3306
ssh Unix command for secure shell. ssh support under Windows can be found as part of the Cygwin tools.
-N Don't run any commands on the mmowgli host. Optional but nice.
username@RemoteHost.nps.edu your ssh login account on the remote host
-L Set up a tunnel
3307:localhost:3306 Set up a port on your system, 3307, that goes to the MySQL port, 3306, on the remote host.
We use 3307 in this case because there's often a development MySQL server running on
your system that's already using 3306.

This technique is also helpful for locally listening to a Tomcat server port. For example:

ssh -N username -L 8080:tomcatServer.nps.edu:8181

lets you monitor remote tomcatServer response via your web browser at

http://localhost:8080

Further ssh details are available using the Unix help manual page, man ssh.

🔖 NetBeans to top

Apache NetBeans is the Integrated Development Environment (IDE) used for most web3d.org X3D project development.

Java Javadoc documentation is helpful, be sure to download a local copy of Java Javadoc as part of your current JDK release for faster development and debugging.

Once installed, default NetBeans configuration settings may need modification.

Earlier issues and fixes:

Further configuration settings of interest:

🔖 Projects to top

Extensible 3D (X3D) Graphics projects include the following:

The NPS Savage group maintained several open-source projects using X3D.