## Maintaining My Ability to View VRML 2.0 on the Web

What some modern readers may not realize, is that even before the Shockwave Flash plug-in allowed it, and before WebGL inherited the responsibility of displaying 3D content in a Web-browser, there existed A more-straightforward way to display 3D scenes within our Web-browser, which was referred to as “VRML”.

Most browsers today lack the ability to display this format of content, but I usually make sure to custom-compile a version of the plug-in which does this, which is named “FreeWRL”.

When doing so, I need to set up the configuration of the source-tree with the following line:


./configure --enable-plugin --with-plugindir=/usr/lib/mozilla/plugins --with-target=motif --with-imageconvert=/usr/bin/convert --with-unzip=/usr/bin/unzip --enable-libeai --enable-docs --with-wget=/usr/bin/wget




And, even if I give this command, often, the Firefox plug-in will not be built, because an additional dependency which I may not have installed, would be

‘npapi-sdk-dev’

This build-dependency gives our computers the header files necessary, to compile old-fashion plug-ins, which ‘Netscape’ and ‘Firefox’ allowed as add-ons, to view additional content-types embedded within the browser. And, Mozilla recently gave notice, that they would be dropping support for this plug-in API shortly. However, ‘firefox-esr’, available under Linux, still supports this plug-in API.

What I find additionally, is that even if I get the most-recent versions of ‘FreeWRL’ to compile, the resulting program does not work correctly, and that I need to compile an older version instead.

Well on the box which I name ‘Plato’, I just recently compiled and tested v2.3.3 of ‘FreeWRL’ and found that it still works. What I was also reminded of, was that support for VRML 1.0 was dropped a long time ago, and that only VRML97 / VRML 2.0 is still supported for on-line viewing. Thus, VRML 2.0 was already defined, in 1997.

Content can still be found on the Web, even though the examples are sparse. Other examples, not linked to here, such as the NASA examples, were simply hosted on a non-NASA computer, and then abandoned, which means that most NASA VRML-links are broken links. Further, some graphics students will display their VRML-worlds, as proof that they’ve achieved some level of competency in graphics in general, but will fail to publish a URL.

## How to Add a Web-browser to GNURoot + XSDL.

In This earlier posting – out of several – I had explained, that I’ve installed the Android apps “GNURoot Debian” and “XSDL” to my old Samsung Galaxy Tab S (first generation). The purpose is, to install Linux software on that tablet, without requiring that I root it. This uses the Android variant of ‘chroot’, which is actually also called ‘proot’, and is quick and painless.

However, there are certain things which a ch-rooted Linux system cannot do. One of them is to start services to run in the background. Another is, to access hardware, as doing the latter would require access to the host’s ‘/dev’ folder, not the local, ch-root’s ‘/dev’ folder. Finally, because XSDL is acting as my X-server, when GNURoot’s guest-software tries to connect to one, there will be no hardware-acceleration, because this X-server is really just an Android app, and does not really correspond to a display device.

This last detail can be quite challenging, because in today’s world, even many Linux applications require, direct-rendering, and will not function properly, if left just to use X-server protocol, à la legacy-Unix. One such application is any serious Web-browser.

This does not result from any malfunction of either Android app, because it just follows from the logic, of what the apps are being asked to do.

But we’d like to have a Web-browser installed, and will find that “Firefox”, “Arora” etc., all fail over this issue. This initially leaves us in an untenable situation, because even if we were not to use our Linux guest-system for Web-browsing – because there is a ‘real’ Web-browser installed on the (Android) host-system – the happenstance can take place, by which a Web-document needs to be viewed anyway – let’s say, because we want to click on an HTML-file, that constitutes the online documentation for some Linux-application.

What can we do?

## Iceweasel to Firefox Transition

In the past, there had been a split between Debian / Linux Devs, and the Mozilla team, where at first Linux was allowed to share “Firefox”. According to that split, Debian / Linux continued to develop its own version of the Web-browser, naming that “Iceweasel“. Newly, this split seems to have been resolved, so that Debian is now offering Firefox again. The packages have been made available.

Just now, I did my own transition, from the deprecated Iceweasel to Firefox. This process was quick and painless.

Dirk

## I discovered an IPv6-related malfunction.

During past weeks, I had noticed that sometimes my browser’s home page, which is the Google Site I’m logged in to, would simply fail to display as I started my browser, or would fail to display even if I tried to click on a link that leads to it. Curiously, although this could have been a traffic-filtering issue from the content-provider, it was not affecting the same browser, logged in to the same account, from my other computers. At first I suspected that this could have been due to memory fragmentation, and perhaps a poor attempt by the browser on this one machine to allocate large segments of memory at once, which it would have had to be keeping silent at the same time. But it turns out, that the cause of this malfunction was something different.

What gave this away was that almost, only Google sites were affected, and no other large, complex sites. E.g., calling up my own blog’s pages would never fail.

It so happens that I have a Teredo Client running, which gives me access to IPv6 addresses. More to the point, it gives the IPv6 world contingent access to my site. But my machine has been running as a dual-stack machine for some time, which means that it can work internally with IPv6 addresses as well as IPv4, even though my ISP isn’t IPv6 -ready yet.

Well apparently what was happening, was that Google specifically has ‘true’ IPv6 addresses for most of its sites (unlike my lower-grade, ‘fake’ Teredo address). Most other Web-sites which I’ll be clicking on, don’t. It seems that my browser was preferring to retrieve all Google pages via IPv6, which meant that every time I sat down in front of it, it was also using the Teredo proxy. This put an undue load on the proxy, who in turn started dropping most packets routed to Google by my host. Which in turn was leading to a blank page.

Also, every time I reboot my computer, I get assigned a new, virtual IPv6 address. This was the true reason, fw the malfunction would seem to go away directly after a reboot, but them simply set in again.

Since I use “Iceweasel”, which is the Linux equivalent to “FireFox”, my solution was to open a new tab, and to type ‘about:config’ into the URL bar, at which point the typical warning popped up, which I always dismiss with an affirmative answer. And then in the Search Bar, I typed “IPv6″. There was only one setting that matched: “network.dns.disableIPv6″. This setting defaults to ‘false’. I double-clicked the setting, which toggled it to ‘true’, and restarted Iceweasel. And Tada – Problem solved!

It suits me fine that I have IPv6 enabled for connectivity, but not for browsing. Nor for harassing my IPv6-providing Teredo server.

Dirk