FreeWRL welcome graphic


Home

Download
Install
Extend

Use

Conformance
Examples
Contact

      

FreeWRL/FreeX3D Extend Page

This page shows you how to change or modify the way FreeWRL behaves for you.


Programming Interfaces (APIs)

If you want to write a program that manipulates the Scene Graph, here is a document showing the internals.

If you want to use the EAI (External Authoring Interface) in Java, click here. There are some test programs at the end of that webpage; there are also some FreeWRL examples, such as AddRemove.

If you want to use the EAI or SAI with a C program, click here. There is an example program listing in the web page.

If you want to use the SAI (Scene Authoring Interface) from an external Java program (ie, not an X3D Script), look at the Web3D Consortium webpages for SAI information.

If you want to show the world that you do neat things, look at interfacing with MIDI for both control in/out, and for sound.


Modifying FreeWRL Source Code

FreeWRL is Open Source, and as such, the development team consists of individuals, like you, spread around the world. Feel free to get the source code, and modify it, or fix issues with it. If you do this, please think about submitting your changes, because by being able to modify the source, you can become a valuable member of the FreeWRL development team.

Some documentation is available; look at the web pages: Adding new nodes to FreeWRL/FreeX3D and general coding notes for FreeWRL/FreeX3D.

That web page should answer some questions, but it not, please join the mailing list, and ask your questions there.


Environment Variables

Some of these environment variables can help tailor FreeWRL to your specific hardware and X3D model.

If you are running from within an HTML browser (Netscape and equivalents on Linux, and Safari on OSX) you can change "shell environment variables" before starting either the HTML browser, or FreeWRL. There are different ways of doing this, but one way is to type "export xx=1" in a terminal window before starting the browser/FreeWRL, where "xx" is one of the following environment variables. For example:

# run FreeWRL in strict parsing mode
export FREEWRL_STRICT_PARSING=1
freewrl myfile.x3d
Here is the list of currently supported environment variables:
  1. FREEWRL_NO_GL_ARB_OCCLUSION_QUERY stops FreeWRL from trying to use the graphics processor for pruning geometry. This can speed up rendering under certain conditions, that are entirely dependent on your computers' hardware and OpenGL library implementation.

  2. FREEWRL_256x256_TEXTURES limits textures from the system texture size (generally 1024x1024 to 2048x2048) to increase loading and rendering of texture-rich worlds.

  3. FREEWRL_512x512_TEXTURES limits textures from the system texture size (generally 1024x1024 to 2048x2048) to increase loading and rendering of texture-rich worlds - like the one above, but not so drastic.

  4. BROWSER tells FreeWRL what browser to invoke when an Anchor is required to load an HTML page.

  5. FREEWRL_DO_PLUGIN_PRINT is a diagnostic tool that helps us see what is going on with FreeWRL-HTML browser interactions.

  6. FREEWRL_FONTS_DIR helps Linux users with non-standard systems tell FreeWRL where to find the fonts for Text and on-screen messages.

  7. FREEWRL_STRICT_PARSING enables more parsing checks; when run as "freewrl", this is not set, when running as "freex3d" this variable is set. This gives users the ability to allow strict input analysis, if desired.
  8. FREEWRL_PRINT_OPENGL_ERRORS causes queries to the OpenGL engine, and will display any warnings/errors for the user. Note that on some systems this query has been shown to cause significant slowdowns, thus it is not enabled by default.

Info

This project is managed by John A. Stewart.

Please send bug reports to freewrl-09 --at-- rogers.com including the word ``freewrl'' on the subject line will make sure that I'll notice it. Also, see the FreeWRL home page at http://www.crc.ca/FreeWRL.

There is absolutely no warranty, express or implied for this software. For details on the conditions of use, see the FreeWRL distribution.

FreeWRL is Copyright (C) 1998, 1999...2009 Tuomas J. Lukka, John Stewart and others.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

DISCLAIMER: All information and programs presented on these pages is presented strictly on an as-is basis without an explicit or implicit warranty or guarantee of any kind, not even for fitness for any particular purpose. The FreeWRL logo is based on the Linux Penguin logo by Larry Ewing. All trademarks are owned by their respective owners.

SourceForge.net Logo