Support


Support

Cosmo Player 2.1 (and 2.0) FAQ for Windows 95 and NT

Last updated May 29, 1998

This is the Frequently Asked Questions list for Cosmo Player 2.x.

General Information

What is Cosmo Player?

Cosmo Player is the VRML browser from Cosmo Software. Cosmo Player runs in your web browser as a plug-in, and lets you navigate and manipulate 3D worlds and objects created using the VRML97 language.

VRML stands for "Virtual Reality Modeling Language," and is a file format for describing interactive 3D objects and worlds. It's used for a wide variety of applications such as engineering and scientific visualization, multimedia presentations, entertainment and educational titles, web pages, and shared virtual worlds.

The current revision of the VRML standard is called VRML97 (its official name is "International Standard ISO/IEC 14772-1:1997"). The full specification is available at http://www.vrml.org/Specifications/VRML97. VRML97 was known as "VRML 2.0" while it was a draft international standard; "VRML 1.0" is a much older version of the standard, which could only describe static, non-interactive worlds. Cosmo Player displays VRML 1.0 worlds by internally converting them to VRML97 format.

What is Cosmo Player 2.1?

NEW: Cosmo Player 2.1 is the latest release of Cosmo Player. Highlights of the 2.1 release are:

  • The Macintosh version is available! (in prerelease; see below)
  • Support for Direct3D hardware acceleration (based on DirectX 5), on 16-bit-color systems running Windows 95 (details below)
  • Cosmo Player is now fully compliant with the VRML97 event model, and now preloads scripts and EXTERNPROTOs to ensure predictable behavior.
  • Improved documentation
  • Improved support for 8-bit displays
  • Improved performance (especially startup speed, and Javascript parsing and execution)
  • New "Graphics" preferences panel for renderer selection (see below; also, see the Cosmo Player console for info about the current renderer.)
  • Many bugs fixed (see below)
If you're currently running a beta version of Cosmo Player 2.1 (or 2.0 beta, for that matter), we STRONGLY encourage you to update to the final 2.1 release. This FAQ does not contain information about problems that were specific to certain beta releases (but fixed in the final release.)

Where can I get it?

Download Cosmo Player 2.1 for free from www.cosmosoftware.com.

Where can I find the Release Notes?

Release Notes for the current versions of Cosmo Player (for each supported platform) can be found on the Support Resources page.

Or, if already have Cosmo Player 2.0 or 2.1 installed on your machine, just click the dashboard Help button ("?") and select "Release Notes" in the upper or upper-left frame of the Help page.

What platforms are supported?

Cosmo Player 2.0 and 2.1 run on PCs running Windows 95 or Windows NT 4.0, with either Netscape Navigator 3.01 or Communicator 4.0x, or Microsoft Internet Explorer 4.0.

Hardware requirements are: 75 MHz Pentium or better processor; at least 16MB RAM (32MB recommended) and 14MB free hard disk space; SVGA/256 color or better display (16-bit color is strongly recommended). A SoundBlaster or compatible sound card is strongly recommended.

In preliminary testing, Cosmo Player 2.1 seems to work fine with Windows 98 (but hasn't been fully tested on that platform yet.)

NEW: Cosmo Player 2.1 for the Macintosh is now available in a pre-release version, and requires a PowerMac running MacOS v7.6.1, 8.0, or 8.1, Netscape Navigator 4.04, at least 40 MB DRAM (this release only), 15 MB allocated to Netscape, and at least 20 MB disk space.

Where can I report bugs?

If you're running Cosmo Player 2.1 and are connected to the web, just click the "Submit Feedback..." button on the "Advanced" preferences panel. This button will bring up a web page with information about your version of Cosmo Player already filled in, ready for you to type in your feedback.

Where can I find cool VRML content?

All over the web! But a good place to start is in our 3D Gallery.

Can I redistribute Cosmo Player 2.x with/from my not-for-profit/educational CD-ROM/web site?

We are very happy to have additional distribution channels of Cosmo Player. All you need to do is fill out a simple redistribution license. Please see the Cosmo Player License and Distribution Program for more information.

Can I redistribute Cosmo Player 2.x with my for-profit VRML application/magazine CD-ROM/ OEM graphics card/computer system?

Yes, with the appropriate software licensing agreement. Please see the Cosmo Player License and Distribution Program for more information.

Supported Platforms

When will the Mac version of Cosmo Player be available?

NEWS FLASH: Cosmo Player 2.1 for the Macintosh is now available in a pre-release version! System requirements are a PowerMac running MacOS v7.6.1, 8.0, or 8.1, Netscape Navigator 4.04, at least 40 MB DRAM (this release only), 15 MB allocated to Netscape, and at least 20 MB disk space.

Download it from www.cosmosoftware.com. See the release notes for more info.

How about IRIX?

The 1.1 release will be out "soon" as part of IRIX 6.5; this release has some minor improvements and bug fixes over version 1.0.2 (which is currently shipping). We don't have any concrete information yet on the status of Cosmo Player 2.x for IRIX.

We've also gotten lots of requests for a Linux player; there are no plans for this in the immediate future, but it may become more of a possibility as we get closer to releasing the IRIX version.

How about Windows 3.1?

Cosmo Player 2.x does not support Windows 3.1. However, the previous release of Cosmo Player (version 1.0 Beta 5) is available for Windows 3.1; see www.cosmosoftware.com.

Can I run Cosmo Player 2.x with Internet Explorer 3.x?

IE3.x isn't officially supported, but Cosmo Player 2.0 and 2.1 are known to work with IE3.02, at least. You'll need to install some extra software on your system before installing Cosmo Player, though, including DCOM (for Windows 95) and the updated Microsoft Java Virtual Machine. Both of these can be found on the Support Resources page.

Can I run Cosmo Player 2.x on a 16 bit version of Netscape?

16 bit browsers such as Netscape for AOL will not be able to run Cosmo Player. You need a 32 bit browser.

Which video cards work best with Cosmo Player?

Most graphics cards which provide 3D acceleration and which have either OpenGL or Direct3D drivers will increase the rendering performance of Cosmo Player 2.1 on your system. (Cosmo Player 2.0 only supports OpenGL rendering, so your card must provide OpenGL drivers in order to get hardware acceleration.)

See the section on Rendering and Graphics Cards for more information, including a list of specific cards known to work with Cosmo Player.

Installing/Uninstalling

How do I install Cosmo Player?

Download the software from www.cosmosoftware.com, double-click on the downloaded file and follow the instructions given by InstallShield. The installation will then proceed automatically. See the Release Notes for installation instructions with Netscape 4.5.

How do I uninstall Cosmo Player?

Use the "Add/Remove Programs" Control Panel to uninstall Cosmo Player. To get to the Control Panel, hit the Start button on the taskbar, select "Settings" -> "Control Panel" and double-click on "Add/Remove Programs". This is the usual way to uninstall software under Windows 95 or Windows NT.

I get an error when installing Cosmo Player!

Here are a couple of problems people have run into during the installation process:

  • It says I'm out of disk space, but I have plenty of space free.

    We've heard of this problem happening when there was an environment variable set called "tmp". Try removing this variable (either in autoexec.bat or in the System control panel) and reinstalling.

    Or, if you're trying to install Cosmo Player 1.0, there was a known "bogus disk space error" installation bug with that version. Please update to Cosmo Player 2.1!

  • I get an error like "An error occured during moving data process : -115"

    This usually means that one of the files that the installer is trying to update is in use. This can happen if you try to install Cosmo Player while your web browser is running! Make sure you quit your web browser (and any other Windows applications) and then re-run the installer.

  • I can't install Cosmo Player 2.x because it says I already have Cosmo Player 1.0 installed.

    This is true —you can't have both versions installed on your system at once. Just use the "Add/Remove Programs" Control Panel to uninstall Cosmo Player 1.0. (Or, see the next question if you have problems removing Cosmo Player 1.0.)

I get an error when UNinstalling Cosmo Player!

This can happen if your installation of Cosmo Player was accidentally corrupted somehow. For example, you won't be able to uninstall if you manually deleted the "uninstall logs" created during the installation process.

The easiest way to fix things is to reinstall the same version of Cosmo Player that's already installed on your system. This will re-create the "uninstall logs" and then you'll be able to safely uninstall the software.

If all else fails and you need to uninstall Cosmo Player 1.0 without just reinstalling it first, here's how to manually remove it:
(WARNING: Manually editing the registry is dangerous! You should only do this if you're comfortable using regedit.)

  1. Remove the file "npcosmop.dll" from your netscape plugins folder (select "About Plugins" in Netscape to see the path to the plugins folder).
  2. Use "regedit" to delete the following key from your registry:
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CosmoV1
    This will manually remove the Cosmo Player 1.0 entry from the "Add/Remove Programs" Control Panel.)

More notes on uninstalling: Make sure you don't have any .wrl files on your WinNT or Win95 desktop when uninstalling Cosmo Player! (The reason: if .wrl files exist on the desktop, some of Cosmo Player's .dll's will be kept open by Windows and will not be removed properly during the deinstall. This causes failure of the deinstallation, and an error when a new version of Cosmo Player is installed.)

And finally, on some systems with Internet Explorer 4.x, if you try to uninstall Cosmo Player 2.1 (via the "Add/Remove Programs" Control Panel) you can get an error saying "cp21_main.dll is in use" even if you've already shut down IE. This happens because closing all your IE windows doesn't really shut down IE; there's still a process remaining which has Cosmo Player's DLL open and which stays around as long as you're logged in! The solution is to log out and log back in (or just reboot), and then immediately uninstall Cosmo Player.

How can I tell which version of Cosmo Player 2.x I have installed?

Bring up the "Add/Remove Programs" Control panel, and find the entry for Cosmo Player:

If Add/Remove Programs says: You have:
"Cosmo Player 2.1 (38675)" Cosmo Player 2.1 (5/5/98)
"Cosmo Player 2.1b (35761)" Cosmo Player 2.1 beta (4/7/98)
"Cosmo Player 2.0 (27191)" Cosmo Player 2.0 (12/14/97)
"Cosmo Player 2.0 (26723)" Cosmo Player 2.0 "first MR" (12/9/97)
"Cosmo Player 2.0 Beta 2 (25626)" Cosmo Player 2.0 beta 2 (11/24/97)
   Just "Cosmo Player 2.0" (with no build number)       Cosmo Player 2.0 beta 1, or an earlier alpha!   

If you're using any version earlier than Cosmo Player 2.0 (27191), or any beta version, you should definitely upgrade to Cosmo Player 2.1!

Where does the Netscape plugin get installed?

Note that all of this is transparent to the user during a typical installation — InstallShield automatically handles the plugin installation. (In other words, you don't need to know any of this.)

The plugin is named npcosmop.dll. In Netscape Navigator 3.x, this file is installed in the \Program Files\Netscape\Navigator\Program\Plugins directory. In Netscape Communicator, it is installed in the \Program Files\Netscape\Communicator\Program\Plugins directory. Removing the npcosmop.dll file will disable Cosmo Player (however it will not uninstall the plugin —see Installing/Uninstalling.)

You see your list of installed plugins by selecting "About Plugins" from the Netscape Help menu. If you have Cosmo Player installed you'll see the exact location of the npcosmop.dll file, and you should also see the following MIME type information:

Mime Type Description Suffixes Enabled
model/vrml VRML World wrl, wrz Yes
x-world/x-vrml VRML World wrl, wrz Yes

You do not need to manually specify a "Helper Application" for any of these MIME types.

I get a message that says I need to install "Microsoft DCOM for Windows 95."

On some Windows 95 systems, you need to install DCOM (from Microsoft) in order to use Cosmo Player with Internet Explorer or with the Cosmo authoring tools. The Support Resources page contains a link to the DCOM installer on Microsoft's web site; please install it, and then reinstall Cosmo Player.

If you're using Cosmo Player only with Netscape, DCOM is not really necessary (so you can ignore this warning, and continue installing Cosmo Player.)

What additional software components can I install to improve the Cosmo Player 2.x experience?

Here are some related software programs and packages that might be useful. You can find links to these components and more info on the Support Resources page.

But note that none of these are required for Cosmo Player 2.x! They're just recommended enhancements. (For example, DirectX 5.0 will enable audio hardware acceleration on some platforms and better 3D audio spatialization, and ActiveMovie will enable some extra audio/video formats.) See the following table for more details.

DirectX 5.0
(Windows 95)
provides realistic, spatialized 3D sound as well as hardware acceleration of sound via DirectSound3D . Note that the link on the Utilities page points to an ENGLISH version; international users need to go to Microsoft's DirectX download page for international versions of DirectX.
ActiveMovie 1.0
(Windows 95)
provides additional support for AVI, AIFF, and QuickTime. NOTE: If you already have Cosmo Player 2.0 and you install ActiveMovie on your system, you'll need to reinstall Cosmo Player (or, better, upgrade to Cosmo Player 2.1!)
DCOM 1.1
(Windows 95)
On some Win95 systems, you'll need to install DCOM in order to use Cosmo Player with Internet Explorer or with the Cosmo authoring tools.
Service Pack 3
(Windows NT 4.0)
provides realistic, spatialized 3D sound as well as hardware acceleration of sound via DirectSound3D. Provides additional support for AVI, AIFF, and QuickTime.
Patch for Service Pack 3
(Windows NT 4.0)
MSIE or Netscape Communicator may lock up when loading a Web page that contains a Java applet or a VRML world, on systems where the Display Color Palette is set to "True Color". See below for more information.
OglPanel
(Windows 95/NT)
If you have Cosmo Player 2.0, this program allows you to enable or disable hardware OpenGL acceleration. (If you have Cosmo Player 2.1, you don't need OglPanel! Just use the "Graphics" preferences panel instead.)

Rendering and Graphics Cards

General info

The renderer is the software module that Cosmo Player uses to display the 3D image of a VRML scene on your screen. Cosmo Player 2.1 is able to use two different rendering APIs: either OpenGL (an industry standard), or Direct3D (a Microsoft standard, available under Win95 with DirectX 5 or greater installed.) Also, graphics cards on some systems may provide 3D hardware acceleration (for OpenGL, D3D, or both) which can greatly increase rendering performance.

In most cases, Cosmo Player will automatically pick the renderer providing the best possible performance on your system. In some cases, though, you may wish to manually control the renderer selection. With Cosmo Player 2.1, you can use the "Graphics" preferences panel to choose between OpenGL and D3D (on systems which support both), and you can also choose between hardware-accelerated rendering (if your system supports it) and software-only rendering.

If you're using Cosmo Player 2.1, please see the OpenGL, Direct3D, and hardware graphics acceleration section of the Release Notes. That section contains information on:

  • Differences between OpenGL and Direct3D
  • Notes on hardware graphics acceleration
  • Lists of supported graphics cards for both OpenGL and D3D
  • How to force software-only rendering, and why you might want to
  • Notes on the OglPanel program
  • Some known problems with specific graphics cards

With Cosmo Player 2.1, if you have a graphics accelerator with OpenGL drivers, then Cosmo Player will use the hardware for OpenGL acceleration. If you are using Windows 95, have DirectX 5 or later installed, and have a graphics card which supports all the D3D features needed by Cosmo Player, then Cosmo Player will use Direct3D hardware acceleration. To see which renderer you're using, just bring up the Cosmo Player Console (press \ [backslash]) and check the info under "Current Graphics Renderer":

"Current Graphics Renderer" info from the Console
Name Description Renderer
"SGI" "Generic 1.1.2 SGI" SGI software-only OpenGL
"Microsoft Corporation" "GDI Generic 1.1.0" Microsoft software-only OpenGL, or hardware acceleration using MCD driver
(your graphics card manufacturer) (card-specific info) Hardware-accelerated OpenGL
using ICD driver
... "Direct3D Renderer" ... "Software Emulation" Software-only Direct3D
... "Direct3D Renderer" ... "Hardware acceleration through Direct3D HAL" Hardware-accelerated Direct3D

Cosmo Player 2.0 supports only the OpenGL renderer. You can enable and disable hardware acceleration by using the OglPanel program, found on the support resources page.

OpenGL-specific issues

Some OpenGL cards which are known to work with Cosmo Player 2.0 and 2.1 are:

  • Cards based on the 3DLabs Permedia 2 chipset (eg. the FireGL 1000 Pro from Diamond Multimedia, which has OpenGL drivers for both Win95 and NT; make sure you have the latest drivers!)
  • Cards based on the ATI Rage Pro chipset (eg. the ATI Rage Pro, which has OpenGL drivers for NT.)
  • Cards based on the Nvidia Riva 128 chipset (eg. the Diamond Multimedia Viper V330, which has OpenGL drivers for Win95.)
  • Cards based on Mitsubishi's 3DPro/2mp chipset (eg. the Diamond Multimedia Fire GL 4000, which has OpenGL drivers for NT; make sure you have the very latest drivers!)
  • Cards based on the Intel 740 chipset

Direct3D-specific issues

The Direct3D renderer is only available with Cosmo Player 2.1, on Win95 systems with DirectX 5 or greater installed. The officially supported Direct3D cards are:

  • Diamond Viper 330 (nVidia RIVA128 chipset)
  • Diamond FireGL 1000 Pro (3DLabs Permedia 2 chipset)
  • ATI 3D Rage Pro (ATI Rage Pro chipset)
  • Real3D StarFighter (Intel 740 chipset)

Some D3D issues to watch out for are:

  • WARNING: If you're using the D3D renderer and do not have a graphics card from the above list, be aware that you may encounter rendering problems (since not all D3D cards support the full set of features needed to render a VRML scene!) If you see any problems, such as no performance increase between CP2.0's software rendering and your current D3D card, or any obvious rendering problems (like no transparency), the best fix is to bring up the "Graphics" preferences panel and switch your renderer to "OpenGL".
  • With the Direct3D renderer, Cosmo Player 2.1 supports 16-bit color, Direct3D hardware acceleration (based on DirectX 5); 8-bit color is not officially supported. We have successfully done some preliminary testing with D3D and 8-bit color (using certain cards) but this is not a supported configuration.
  • With some D3D cards, you can still sometimes fall back to software-only rendering if the Cosmo Player window is too large; this can happen if the card doesn't have enough video memory to display the window at the size you asked for. The maximum window size is different for each card (depending on how much memory the card has), and also depends on the resolution and color depth of your screen (eg. running in 24-bit color uses 50% more memory for the front and back buffers as 16-bit color). So, if you know your card can do D3D hardware acceleration but the console says you're using software rendering, try making your window smaller. (This can also happen with some OpenGL cards!)

Some known problems with specific graphics cards

  • The Matrox Millenium II card has several known problems, including generally bad 3D performance as well as problems on some systems with worlds using navigation type NONE (you just get a black screen). You can switch to software rendering to work around these problems.
  • The Diamond Multimedia Stealth 3D 2000 card has also been reported to have problems with navigation type NONE.
  • Several cards (including cards based on the 3DLabs Permedia 2 chipset, like the FireGL 1000 Pro) can't correctly display specular and emissive colors on textured objects with Cosmo Player 2.1. The best workaround is to disable the "specular and emissive color shine-through" preference item (see below), which will give reasonable (but not completely spec-compliant) results.
  • Cards based on the S3 Virge VX chipset (eg. the STB Velocity 3D card) have been reported to have texturing problems on some systems (textures appear but look bad.) Changing the "Image/Texture Quality" setting on the "Performance" preferences panel might help; otherwise, switch to software rendering to work around this problem.
  • Some 3D cards which advertise OpenGL support can only do OpenGL acceleration in full-screen mode, not in a window. This works great for games like GL Quake, but doesn't help an application like Cosmo Player (which needs to coexist with everything else running under Windows). For cards like this (such as cards based on the 3Dfx Voodoo Graphics chipset, like the Diamond "Monster 3D" card) try switching to software rendering and see if you get a performance improvement.

My scene looks wrong or different in Cosmo Player 2.1 although it looked fine in 2.0 (especially lighting or materials).

First of all, if you're using the D3D renderer and your graphics card is not one of the cards we support (see above), you could easily be running into driver bugs or simply have a card that doesn't have the capabilities to render a VRML scene correctly. The D3D renderer tries to emulate the OpenGL renderer as closely as possible. However, problems can still happen, especially when using an unsupported graphics card (there are no standard "conformance tests" for D3D hardware, and some cards might not correctly support all the rendering features needed by Cosmo Player).

If you're using OpenGL: There were very few changes in the OpenGL renderer between CP2.0 and CP2.1; the only noticeable one was a fix involving specular and emissive colors on textured objects (see below). If you find any other cases where a scene looks different between CP2.0 and CP2.1 using the OpenGL renderer, please submit a bug report via the "Submit Feedback..." button on the "Advanced" preferences panel.

You can report rendering problems via the "Submit Feedback..." button>. Be sure to mention which card you're using, along with all version numbers of the drivers you're running (click "Display Type" on the "Settings" page of the Display Properties panel). Also, if you're reporting a rendering problem that used to work right, be sure to say whether you're comparing OpenGL with Cosmo Player 2.0 versus OpenGL on 2.1 (see above), or if you're comparing OpenGL on 2.0 (or 2.1) versus D3D on 2.1!

If you're having problems with the D3D renderer and you're running in 8-bit mode, please try 16-bit mode and see if the problem still happens (but let us know in any case.) 8-bit mode isn't officially supported by the D3D renderer.

Textures look wrong, or lower-resolution than they should be.

Be sure to check the setting of the "Image/Texture Quality" item on the "Performance" preferences panel. This allows you to control how the renderer samples textures (the renderer can either do point sampling, or linear filtering); the tradeoff is rendering speed versus texture quality.

Note that the beta release of Cosmo Player 2.1 artificially limited textures to a size of 256x256. The final release allows whatever maximum texture size is supported by your hardware and renderer (just like CP2.0 did.)

I changed my renderer setting, and now Cosmo Player can't run!

If you accidentally change your Renderer Selection (in the "Graphics" preferences panel) to a setting that prevents Cosmo Player 2.1 from working at all, it will display an error message, re-initialize itself (with no active renderer), and automatically bring up the "Graphics" preferences panel in order to let you choose a different renderer.

It's possible in some rare cases, though, to select a renderer setting that crashes the browser (or your whole system) before Cosmo Player can recognize there's a problem; this might be caused by bugs in your graphics card's OpenGL or Direct3D drivers. If this happens, and you're comfortable editing the registry, you can manually reset Cosmo Player's renderer preferences by running regedit and looking in:
     HKEY_CURRENT_USER/Software/CosmoSoftware/CosmoPlayer/2.1

The renderer preference keys are:

    "forceSoftwareRendering"
either 0 (use HW if available) or 1 (force SW rendering)
    "renderer"
"AUTO" or "OpenGL" or "D3D"

Spec Compliance Issues

Cosmo Player 2.x supports all of the VRML97 specification. It is compliant with the syntax and semantics of the final version of the specification, which is officially called "International Standard ISO/IEC 14772-1:1997" and is available at http://www.vrml.org/Specifications/VRML97/ .

Here are some frequently-asked questions dealing with fine points of VRML Spec compliance:

I can't see my IndexedLineSet!

According to the VRML spec, IndexedLineSets are not lit —they only pay attention to the emissive component of their Material node (ie. you should be using emissiveColor instead of diffuseColor.) Many earlier browsers interpreted this incorrectly.

Why is my geometry only visible from one side?

If you're using an ElevationGrid, Extrusion, or IndexedFaceSet node, you must set the solid field to FALSE to tell the browser that all polygons should be visible regardless of the viewing direction. When using "solid TRUE" (the default), polygons are invisible (backface culled) when viewed from the back.

Also, note that with the primitive shape nodes (Box, Cone, Cylinder and Sphere) the spec requires outside faces only! When one of these shapes is viewed from the inside the results are undefined. (So if you need to put the camera inside a sphere, you'll need to manually build one using an IndexedFaceSet.)

In an IndexedFaceSet or Extrusion with caps, why is my L-shaped, T-shaped, arrow-shaped, other concave polygon drawn incorrectly?

If the polygon (or extrusion cross section) is not convex, be sure to specify convex FALSE. If the "convex" field is TRUE (the default), the browser uses a faster triangulation algorithm which is only guaranteed to be correct within the convex hull of a concave polygon.

Navigation speed is slower than other browsers.

Cosmo Player 2.x strictly interprets the NavigationInfo node's "speed" field; this is covered in the Release Notes under "Navigation Speed". Also, see below under User Interface Issues for more info.

Using a PlaneSensor I get a jump in the z direction.

This was a bug in the beta 1 release of Cosmo Player 2.0. It's fixed in the final version of 2.0, and in Cosmo Player 2.1.

My HTML link (or VRML Anchor) to a URL like "filename.wrl#ViewpointName" doesn't take me to the specified Viewpoint!

This was a known bug in Cosmo Player 2.0, but it's fixed in Cosmo Player 2.1. (According to the VRML spec, this URL syntax is supposed to cause the specified Viewpoint to be bound initially when the world loads, although Cosmo Player 2.0 always binds the first Viewpoint found in the file regardless of the Viewpoint name specified after the "#" character.)

Both Cosmo Player 2.0 and 2.1 do correctly handle Anchors like "#ViewpointName" within the current file (you can use an Anchor like this to take the user to a named Viewpoint within the current world.)

Cosmo Player 2.x (or some other VRML browser) gives me parse errors on nodes like "CoKeyframeAnimation" or "CoTextGraph" or "CoRouteDebugger", even though my world works fine in the IRIX version of Cosmo Player!

This happens when you create a world using Cosmo Worlds on an SGI machine, but forget to "package" it before using it with other browsers!

It's a necessary step to run the packager when using the IRIX version of Cosmo Worlds (version 1.0.x). This is because CosmoWorlds's intermediate files (ie. the VRML files it saves before you run the packager) contain some special nodes (like CoKeyframeAnimation, CoTextGraph and CoRouteDebugger) which are used internally by CosmoWorlds, but are not legal VRML97 nodes.

You run the packager from Cosmo Worlds using the "File -> Package..." menu item.

In Cosmo Player 2.1, textured objects appear too bright or "washed out"!

This can happen if your content uses a bright emissiveColor on the material underneath the textured objects. According to the spec, the object's specular and emissive colors should shine through the textures, and not just modulate the texture values. (Cosmo Player 2.0 did not correctly shine the emissive and specular colors through!)

The real solution is to fix the content: reduce the emissiveColor or specularColor until the object looks correct. Or, as an end user, you can go to the "Performance" preferences panel and un-check the "Enable specular and emissive color shine-through on textured objects" item; this will force the same non-spec-compliant behavior as Cosmo Player 2.0.

User Interface Issues

Please see the Online Help for general information on Cosmo Player's user interface. (Click the "?" button on the right side of the Cosmo Player control panel to display the Help pages.)

What are the keyboard shortcuts?

For the full story, see the "Going Further" section of the Cosmo Player 2.1 Help pages. Here's a summary of the keyboard keys:

Modifier Keys

SHIFT Turbo Speed
CTRL Tilt (GO mode)
Zoom (EXAMINE mode)
ALT Slide (GO mode)
Pan (EXAMINE mode)

Action Keys

Arrow Keys Move in Direction of key. Keys on the numeric pad also work.
Page Up/Page Down Previous/Next Viewpoint
Home Entry Viewpoint
End Straighten
Delete or Backspace Undo
Insert or SHIFT-Backspace Redo
TAB or Keypad + Gravity/Float toggle
'/~ or Keypad - Walk/Examine toggle
Keypad * Headlight toggle

Developer Action Keys

= Toggle frame rate display
SHIFT = Adds display of last frame time
\ or Keypad / Display Cosmo Player Console

Why is my navigation speed so slow?

(This is also mentioned under "Navigation Speed" in the Spec Compliance section.)

The current behavior is spec-compliant. In earlier versions of the browser, the default navigation speed was much faster than the value specified by the author.

If you're viewing a world where navigation really is too slow to be usable, that's an authoring error. However, you can work around this problem by setting the Navigation Speed to "Faster" or "Much Faster" on the "World" preferences panel. (Click the check-mark icon on the control panel to display the preferences panel.)

Authors should especially be aware that the default "speed" value (from the VRML97 spec) is 1 meter/sec, which is a very slow walking speed in a life-size world! (In other words, if you're building a VRML world using real-world scaling, you should probably use a NavigationInfo node with "speed" set to somewhere between 3 and 5.)

How can I make the dashboard disappear?

As a user: You can always minimize or maximize the dashboard by clicking on the little triangle at the upper-left of the dashboard.

As an author: The only way the VRML spec provides for this is to use a NavigationInfo node with type "NONE". This will give you a world without a dashboard, but it will also disable all navigation by the user!

Or, you can disable the dashboard without disabling navigation, by using the VRML-DASHBOARD=FALSE embed tag. See the "VRML Developer Information" section of the Release Notes for the full story. Some other browsers (including WorldView) support this tag too, although it's not part of the VRML spec.

There's no way for an author to make the dashboard initially come up minimized.

Help! I've navigated to a point where the cursor is stuck in the "starburst" shape, and I can't move around any more using the mouse!

This is a typical problem when a world is full of sensors and anchors or if there is one big sensor or anchor that fills up the screen. There are several ways to navigate in this situation:

  1. Drag on the dashboard controls. You can always navigate this way even if there's a sensor covering the whole screen.
  2. Use the keyboard: press the arrow keys to navigate.
  3. Use seeking —click the "Seek" button on the dash and then click on an object in the world (even one with a sensor on it) to get closer to it.
  4. Use "Continuous seek mode" —either double-click on the Seek button, or use the "Mouse" preferences panel to assign it to the SHIFT key or put it on a mouse button. In continuous seek mode, you can always navigate in-scene because VRML sensors are turned off.

International/Localization Issues and Info

How do I use International Text in CosmoPlayer?

NOTE: This information is valid for Cosmo Player 2.0 running on WinNT, and Cosmo Player 2.1 on both Win95 and WinNT. International text in the Text node is not available in Cosmo Player 2.0 on Win95.

First you want to make sure you have a font installed that will support the characters you want to display. To do this use the 'Character Map' program, which you can find by going to

"Start->Programs->Accessories->Character Map".

The NT version of this program is helpful and the W95 version is not very helpful. From this program you can find out the language subsets that are supported for each installed font.

Pick a font and a language subset, for example "Times New Roman" and "Cyrillic", and then you can see the characters and the Unicode values of each character. Not all fonts support all language subsets so it is important that this is correct. This font will be needed for the family field of the VRML FontStyle node.

If you do not have a font installed that will support the characters you want to display you can install any TrueType font into the system fonts directory. Many TrueType fonts can be found on the web.

Another thing that is required is the 'language' field of the VRML FontStyle node. This is a two letter abbreviation based on ISO639.

Here is a list of the supported languages; be aware that the default is for Latin1 language support which is most Western European languages. This list is dependent on the languages supported in NT and W95 O/S:

  • EN - English, US (not required, default will work)
  • JA - Japanese
  • RU - Russian
  • TR - Turkish
  • EL - Greek
  • KO - Korean
  • LV - Baltic
  • LT - Baltic
  • TH - Thai
  • IW - Hebrew
  • AR - Arabic
  • ZH - Chinese (Big5)
  • SX - used to define Windows Symbol Character set (wingdings)

The trickiest part is then to convert the characters you want to display into utf8 format. This can be handled by a variety of text editors and some authoring tools. CosmoWorlds will convert data to utf8. There are also small programs available that will take Unicode data and convert to utf8. Once this is done you can build a VRML Text node.

Here is a simple example:

#VRML V2.0 utf8

Transform {

translation       -5 -3 0

children [

Shape {

appearance

  Appearance {

      material Material { diffuseColor 0.8 0.0 0.0 }

   }

geometry

  Text {

    string [ "РУССКИЙ"

      fontStyle FontStyle {

         language "RU"

         family "Times New Roman"

       }

   }

 }

 ]

 }

Bugs on some Specific Platforms

IMPORTANT: Please check the Release Notes for your version of Cosmo Player for lists of specific known bugs!

Known Cosmo Player 2.0 bugs fixed in 2.1

Bugs in Cosmo Player 2.0 which are known to be fixed in the 2.1 release (several of which are also mentioned above) include:

  • Many problems fixed with Script and EXTERNPROTO initialization; Scripts and EXTERNPROTOs are now pre-loaded to ensure predictable behavior
  • Multiple events to Group add/remove children nodes in one event cascade now behave properly
  • Several memory leaks (especially in the EAI) fixed
  • Vastly improved the look of the Cosmo Player dashboard in 8-bit display mode
  • Links or Anchors to URLs of the form "myWorld.wrl#ViewpointName" now correctly take you to the specified Viewpoint
  • Anchor descriptions are now displayed in Internet Explorer
  • You can now animate the camera's Field of View by routing directly to the fieldOfView of the currently bound Viewpoint (previously you had to re-bind the Viewpoint to make the FOV change take effect.)
  • Viewpoints are now removed correctly from the Viewpoint popup list when they get removed from the scene, or after a replaceWorld() call.
  • Absolute time reported by event timestamps is now correct (was shifted)
  • You can now access a browser in a different frame using the EAI "getBrowser(applet, frameName, index)" call

Some other known problems are:

I get a black screen when trying to view a world that uses navigation type NONE.

Some systems have a bug in their MCD driver for OpenGL; we've especially seen this on Pentium II (MMX) machines with the Matrox Millennium II card with Matrox's MCD driver, and have also heard of this happening with the Diamond Multimedia Stealth 3D 2000 card. With Cosmo Player 2.1, you can work around this by forcing software rendering in the "Graphics" preferences panel.

I get a crash when I hit the "Preferences" button!

This only happens with certain OEM-specific versions of Windows 95; it's caused by a bug in a system library (COMCTL32.DLL) that comes with Windows.

Several Microsoft programs (such as IE4, IE3.02, Word97, and DevStudio 5) include an upgraded version of COMCTL32.DLL; installing any of these programs will fix this problem. Or, you may be able to get an OS upgrade from your system manufacturer. (Because of Microsoft licensing restrictions, we can't distribute just the updated DLL without shipping all of IE4!)

The full story:
   To run Cosmo Player, you need COMCTL32.DLL Version 4.70 or higher. All NT 4.0 and most Windows 95 systems have this version.
   To install a new version of this dll, install Internet Explorer 3.0.2 (MSIE302MIN.EXE), which contains this dll, from the Microsoft site. Once Internet Explorer and this dll are installed, you may safely uninstall Internet Explorer if you wish (the updated COMCTL32.DLL will remain on your system).
   Microsoft does not permit packaging of COMCTL32.DLL with the Cosmo Player Installation images.

I can't bring up the Cosmo Player console!

There's a known bug in Cosmo Player 2.0 (fixed in 2.1) where the Cosmo Player Console may get "lost" if you shut down Cosmo Player while the console is minimized. Then, the next time you try to display the Console, it will appear in the Windows Taskbar but you won't ever be able to see the actual window.

The easiest way to fix this is to right-click on the Console icon on the task bar, and select "Move". Then, use the uparrow key to move the window into view; once you can see some of it, then you can move or resize it as usual using the mouse.

Or, if your console somehow gets its size or position set to ridiculous values, you can fix this by running "regedit", looking under "HKEY_CURRENT_USER\Software\CosmoSoftware\CosmoPlayer" and deleting any keys there beginning with the name "console". This will reset the console to its default position and size, which is guaranteed to be visible on the screen.

Problems with MIDI sounds

We've heard a small number of reports of problems involving MIDI on some systems; symptoms can be either MIDI sounds in your world not playing correctly, MIDI sounds crashing the browser, or a crash in Cosmo Player if you try to bring up a VRML world while some other MIDI sound is playing (eg. a MIDI sound on a different web page).

These problems are caused by bugs in your specific sound card or MIDI drivers. Please try downloading newer versions of the drivers from your system or sound card manufacturer.

Specifically, SB16 audio drivers can cause an exception when we attempt to initialize MIDI while Netscape is also playing MIDI with its built-in support. This doesn't happen with later versions (SB32/SB64), so one conclusion is that the earlier drivers were not thread-safe. Usually this exception is caught by WINMM, the original Windows multimedia library, but apparently in some cases it is not.

You're likely to notice this problem with Chomp, because the first "Chomp" page includes a direct embed of MIDI content, which is usually still playing when you click the "Let's Eat" button.

Browser-specific Issues

IMPORTANT: Please check the Release Notes for your version of Cosmo Player for the full list of known Browser-specific problems!

Why can't I get Cosmo Player to work in Internet Explorer?

Make sure IE is configured to enable ActiveX controls and plug-ins. In IE3, make sure the "Enable ActiveX controls and plug-ins" item on the View -> Options -> Security page is checked. In IE4, if you're configured for a "Custom" security level, make sure the "Run ActiveX controls and plugins" item is set to "Enable".

Using IE4, Cosmo Player can't load .wrl files that have spaces in the pathname! (Or: I can't load Chomp from my local disk!)

This is a known bug in certain versions of IE4: Cosmo Player can't load a local VRML file if there is a space in the pathname to the .wrl file. This works fine with Netscape, though.

You're likely to see this problem with Chomp because the local Chomp files are installed under \Program Files\CosmoSoftware\CosmoPlayer\examples (note the space character in "Program Files".)

In general, when you can load a certain world from a web server with no problems, but can't get the same world to work from your local disk, this might be what's happening. Try copying the file(s) in question to a path with no space characters. Or, another workaround is to set up your machine as a web server, and access the files via the web server instead of the file system.

This problem is reportedly fixed in IE4 version 4.72.2106 or later.

Why can't I see Anchor descriptions in IE?

This was a bug in Cosmo Player 2.0 when used as a plug-in for Internet Explorer. When you move the mouse over a VRML Anchor, that Anchor's "description" string is supposed to be displayed somewhere in the web browser's UI. With CP2.0, this feature worked under Netscape (the string is displayed in the "status message area") but not under IE.

This problem is fixed in Cosmo Player 2.1; Anchor descriptions are displayed properly in both Netscape and IE.

Note, by the way, that in both Netscape and IE the displayed string is the Anchor node's "description" field, not its URL! That means that as an author, you must specify a description in your Anchor node in order to see anything in the status message area (since the default "description" value is an empty string.)

Cosmo Player can't run; it just locks up while displaying "Starting Java..."

This bug can happen with certain versions of Netscape, running under Windows NT 4.0 with a TrueColor (24-bit) display. If this is your configuration, this problem isn't specific to Cosmo Player; Netscape isn't ever able to start Java! (Just try to display the Java Console: select Communicator -> Java Console. If that hangs, you have the Java/TrueColor bug.)

More information on this bug is available from Netscape at http://help.netscape.com/kb/client/971009-22.html, and a fix is available on Microsoft's ftp site (the file you need is "admnfixi.exe", which is an auto-installing executable).

Also, there's a similar problem which is specific to the Matrox Millennium graphics card (when using outdated drivers); more information is available from Netscape at http://help.netscape.com/kb/client/970805-1.html.

Embedded VRML works in Netscape and IE 4.0 but not in IE 3.x.

If your web page with an embedded VRML world works on all browsers except IE3.x, make sure that you are using double quotes (not single quotes) in the EMBED tag in your HTML. The SRC attribute should look like SRC="coolVRML.wrl", not SRC='coolVRML.wrl'.

Some browsers can't load VRML files with a .wrl.gz extension.

Using the file extension ".wrl.gz" for gzip-compressed VRML files is a deprecated feature, and will not be supported by releases of Cosmo Player after 2.1. (In other words, this release of Cosmo Player does support the same file extensions - including .wrl.gz - as Cosmo Player 2.0. But don't use .wrl.gz filenames in the future!)

The problem happens because some HTML browsers don't work well with multiple file extensions on a single file (such as "foo.wrl.gz"). Specifically, IE4.01 will not deliver .wrl.gz files to Cosmo Player at all, even when Cosmo Player is fetching an Inlined file! (So in any version of Cosmo Player, content using .wrl.gz files will be broken in IE 4.01).

Until this is clarified by the VRML consortium in a "Recommended Practices" document, the safest thing for authors to do is to rename files that end in ".wrl.gz" to ".wrl". The ".wrz" extension is an acceptable, but less correct, alternative.

In IE4, clearing the cache doesn't affect cached files used by Cosmo Player!

If you're using IE 4.0, Cosmo Player uses the system-wide "Temporary Internet Files" directory as its cache. However, by default IE4 itself does not use this same directory; it uses a directory under windows-system-directory/Profiles/user-name.

For best results, be sure to set your cache directory to the system "Temporary Internet Files" directory (either \WINNT\Temporary Internet Files or \WINDOWS\Temporary Internet Files); this setting is found under "General" on the IE Internet Options page. This will make sure that any cache-related actions you do in IE (such as clearing the cache) will also affect files cached by Cosmo Player.

Installing Netscape 4.05 after having installed Cosmo Player

Netscape Communicator 4.05 includes Cosmo Player 2.0. If you attempt to install it on a system that already has Cosmo Player 2.1, though, the result will be a broken installation of Cosmo Player 2.0 (which won't be able to display textures, among other problems). To avoid this problem, be sure to reinstall Cosmo Player 2.1 after installing Netscape 4.05 on your system.

If you already have Cosmo Player 2.0 and you install Communicator 4.05 this should work fine, although we've heard reports of audio breaking after doing this. If you have this problem, just reinstall CP2.0 (or better, upgrade to CP2.1!)

Java / EAI / JSAI

  • "EAI" is the External Authoring Interface, which allows a Java Applet to communicate with a VRML browser on the same web page.

  • "JSAI" is the Java Script Authoring Interface, which allows you to use Java to write Script nodes within a VRML scene.

  • There's a helpful EAI FAQ at http://www.tomco.net/~raf/faqs/eaifaq.html.

Why can't I run any EAI applets?

The most common configuration problem is if you've installed some other VRML browser, which added references to its own VRML classes in your CLASSPATH. The CLASSPATH is set in the autoexec.bat file in Windows 95, or in Control Panel -> System -> Environment in Windows NT 4.0. Make sure no VRML class files from other browsers appear in your CLASSPATH.

If you're running under Internet Explorer, you should make sure that the file \Program Files\CosmoSoftware\CosmoPlayer\npcosmop.zip exists, and that this filename appears in the registry entry \HKEY_LOCAL_MACHINE\Software\Microsoft\Java VM\ClassPath . The npcosmop.zip file must appear before any other VRML browser packages you might have installed before Cosmo Player! For more information, see the "Install and Classpath" section of the EAI FAQ.

Where are the Java class files? (Or: I can't compile Browser.getBrowser()!)

They're all packaged up in a ZIP (or JAR) file:

    Navigator:
\Program Files\Netscape\Navigator\Program\Plugins\npcosmop.zip

    Communicator:
\Program Files\Netscape\Communicator\Program\Plugins\npcosmop.jar

    IE:
\Program Files\CosmoSoftware\CosmoPlayer\npcosmop.zip

To compile EAI or JSAI Java programs on your system, you need to make sure the appropriate zip file (or jar file) is in your CLASSPATH (ie. not just the directory where the zip file lives). For example:

CLASSPATH=C:\Program Files\Netscape\Navigator\Program\Plugins\npcosmop.zip

Why do I get the message about "security exception: cpmsjava.dll" when using Java with Cosmo Player 2.0 beta 1?

This was a bogus message —ignore it. It's gone in the final release. Please update to Cosmo Player 2.1!

I keep getting security exceptions in Netscape when opening a socket through Java back to the server that's serving the .class file.

This should work. We are currently enabling 3 privileges in the Netscape PrivilegeManager:

  • UniversalConnect (for connecting to and opening sockets)
  • UniversalFileRead
  • UniversalThreadAccess

So it should be possible to access sockets through the JSAI. However, there still may be socket problems in the Java implementations of certain releases of Netscape.

Specifically, there's apparently a bug in Netscape that's erroneously throwing a security exception when trying to open sockets from Java using the JSAI (inside a Script node). We're not sure which version of Netscape this started happening in, but it's definitely a problem in 4.04. We're waiting for a work-around from Netscape.

Note that this is not a problem when using sockets through the EAI. Overall, in fact, we've found sockets in Java to be very reliable using the EAI.

I sometimes get null pointer exceptions when calling vrml.external.Browser methods under Netscape when using the EAI. (Or: Browser.getBrowser() sometimes returns null!)

This only happens in certain releases of the Netscape browser. This seems to be caused by a bug in Netscape's LiveConnect interface (which is very sensitive to the timing of the Reload sequence). Cosmo Player 2.1 automatically works around this problem, so you're only likely to see this happen with CP2.0.

If you can't upgrade to 2.1, though, the workaround for Cosmo Player 2.0 is to put your getBrowser() call inside a loop, like this:


     Browser browser = null;

     for (int count = 0; count < 10; count++) {

         try {

             try { Thread.sleep(200); } catch (InterruptedException ignored) { }

             browser = Browser.getBrowser(this);

         }

         catch (Exception e) { }  // getBrowser() can throw NullBrowserException

         if (browser != null) break;

         Browser.print("browser was null, trying again...");

     }

     if (browser == null) {

         throw new Error("Failed to get the browser after 10 tries!");

     }

     Browser.print("Got browser!");

How can I use getBrowser() to access an embedded browser in a specified frame name?

According to the EAI Spec, you can specify a frame name by using the call "getBrowser(Applet pApplet, String frameName, int index)" instead of the usual "getBrowser(Applet pApplet)" which assumes the current frame.

This works correctly in Cosmo Player 2.1. Unfortunately, though, it's broken in CP2.0 (so there's no way to access an embedded Cosmo Player instance from another frame.)

How can I print out debugging info?

From Java, there are two ways of printing messages. You can use the standard Java System.out.println() method, which prints to the Java console. Or, you can use Cosmo Player's Browser.print() method, which prints to the Cosmo Player console (also called the "VRML console".) Browser.print() is available in both JSAI scripts and EAI applets.

Or, from Javascript in a Script node, you can use use the print() function to print to the Cosmo Player console.

To bring up the Cosmo Player console, just use the "\" key (or the keypad "/" key). Or, you can also bring up the console from the "Advanced" preferences panel, as well as set the console to automatically pop up any time there's a VRML error or warning, or to just always appear any time you load a world.

One console feature to watch out for: with the default value of the "Automatic Muting" preference (on the "Audio" preferences panel), any sound produced by the VRML scene will be muted when the console is the active window! So if you're heavily using the VRML console and need to hear your scene's audio, you should probably set this preference to "Never mute".

Where can I find the 'netscape.javascript.JSObject' class? (Or: why do EAI applets need to use a Netscape-specific mechanism to get a handle to the Browser?)

You shouldn't need the 'netscape.javascript.JSObject' class! Instead, you should be using the Browser.getBrowser() method to get a handle to the browser, not the old-style JSObject calls! The JSObject classes use the Netscape-specific "LiveConnect" interface, which is included only with Netscape's JVM. It's very important to use Browser.getBrowser() instead of the JSObject calls, since this will let your applet work under IE as well as Netscape, and will also let Cosmo Player work around LiveConnect bugs in certain versions of Netscape.

My EAI applet works great the first time, but then crashes if I try to use it after hitting "Reload" (or after going to another page and then hitting "Back")!

This is a very common content bug: The usual reason is that your EAI applet is getting its handle to the VRML Browser in the init() method, not the start() method. It's vitally important do to all VRML EAI setup in start(), to avoid having stale Browser and Node pointers when the user leaves and then revisits (or reloads) the web page containing your applet. ("VRML EAI Setup" refers to the Browser.getBrowser() call itself, and any calls to the Browser object to look up Nodes or EventIn/Outs.)

The init()/start() distinction is important because a new instance of Cosmo Player is created every time the user revisits a web page, but only one instance of the EAI applet is ever created. If you do the EAI setup in init() (which only ever runs once) and then hang on to the Browser object, after the user goes to another web page and then returns to your EAI page you'll have stale pointers to the Browser object and any nodes you looked up! This won't happen if you do your EAI setup in start(), since that method is run each time the applet is revisited in a Web page (so you'll get a handle to a new valid Browser object every time the page is visited.)

Some applet initialization does belong in init(), of course, such as building any Java AWT UI in the applet (which needs to be done only once, when the applet is first initialized.)

Some final notes on crashes when Reloading:

  • Be sure you're using the Browser.getBrowser() call instead of the old LiveConnect JSObject calls! (see above for why.)
  • If you're still running Cosmo Player 2.0, try updating to 2.1. We've updated our internal implementation of Browser.getBrowser() to work around some LiveConnect bugs; reloading in CP2.1 under all versions of Netscape should now be very reliable.
  • Make sure you don't hold onto any Nodes (or EventOuts or any VRML objects) ACROSS calls to the start() method! (For example, say your applet creates a new Node and keeps a pointer to it. Make sure you don't try to access that Node after a Reload cycle, since it won't exist in the VRML scene any more!) In general, to be safe, any of your applet's instance variables which have anything to do with the VRML scene should be re-initialized in the start() method.
  • The "loop while doing the getBrowser() call" trick (mentioned above) is no longer necessary in Cosmo Player 2.1, since we now do it internally.
  • Even with a correctly-written EAI applet, it's still possible to get the LiveConnect interface into a broken state by hitting Reload while the VRML scene or the applet are in the middle of loading or shutting down. To avoid this, try to only hit Reload when your applet and the VRML scene are fully loaded.
  • In Netscape, using SHIFT-Reload (instead of Reload) is less likely to cause these problems with EAI applets (since it forces the applet as well as the VRML browser to be completely reloaded.)

One final note: This whole issue (EAI setup in init() vs. start()) doesn't matter in Internet Explorer. IE always calls init() and start() every time an applet is revisited in a Web page, rather than only calling init() before the first time that the start() method is called. This behavior is a bug in IE, though, and you shouldn't count on future releases of IE behaving the same way.

What base URL is used from a Java Script or EAI applet?

When calling loadUrl(), createVrmlFromUrl() or createVrmlFromString() from a Java Script or EAI applet, those calls now use the location of the running Java class as the base URL for relative URLs. So say the Java class is http://foo.com/a.class and the current VRML world is http://bar.com/b.wrl; if the Java class calls loadUrl("other.wrl"), "other.wrl" will be loaded from http://foo.com.

This is the correct, spec-compliant behavior. See section 4.5.3 of the VRML97 spec for more details.

I see memory leaks with my EAI applet (or: When I create large VRML objects using the EAI, they never seem to get garbage collected.)

You might be running into a known problem with Cosmo Player 2.0 and 2.1, having to do with the EAI EventOut.advise() method. When you use EventOut.advise(), the 2nd parameter is a Java Object ("userData") that's passed back to you as the 3rd argument to your "callback()" function. The problem is that objects you pass in as "userData" to EventOut.advise() will NEVER be garbage collected!

The workaround: don't pass large objects (like VRML nodes) as "user data" into advise(), especially if you're repeatedly adding new objects to the scene and calling advise() on them!

Some final notes on other possible problems affecting Java (JSAI or EAI) with Cosmo Player:

  • Make sure to compile your Java files into .class files!
  • Make sure to remove anything from your CLASSPATH (such as Worldview Java classes) that might conflict with Cosmo Player. (In fact, Cosmo Player 2.0 and 2.1 do not require a CLASSPATH to be set! )
  • For IE, lower the security level for "local intranet" to None.
  • If going through a proxy server, try bypassing the proxy when accessing fines on your local network (or local machine!)
  • Make sure Java classes are declared public.


Copyright © 2000 Computer Associates International, Inc. All rights reserved.