Skip navigation.

VrmlMerge Features

VrmlMerge is a small but quite cool program that allows you to do several useful things with your VRML'97 files (.wrl extension):

  • Merge multiple VRML'97 files (.wrl) referenced by Inlines and EXTERNPROTOs into one big file. Having one big file has many advantages - it allows you to send files over the Internet much faster (one file instead of many), and it also allows gzip to compress it much more.
  • Replace references to texture files (ImageTexture nodes) with PixelTexture nodes placed inside of your VRML file. Together with previous feature you can actually turn your whole visualisation (VRML files and images/textures) into ONE file. VRML Files produced by this process are quite huge but they can be compressed VERY well with gzip (even 10 times).
  • (NEW - v0.5) Similarly to the previous feature - it can replace references to texture files (ImageTexture nodes) with ImageTextures which use a so called "data protocol". A data protocol allows to inline images directly to VRML/X3D files by encoding them using base64. Many good browsers support this feature (Octaga, Cortona etc)
  • Convert VRML'97 files to X3D files (X3D is going to be a successor of VRML'97)
  • Obfuscate VRML'97 files - after each of above processes files become quite unreadable for human but they are still correct and valid for VRML/X3D browsers.

Here are some tests: If you check out my VRML examples you'll find there one of my visualizations called "A House". I've made some test with this visualization and their results can be seen below:

This table demonstrates usage of the "Merge" feature
A HouseNo. of .WRL filesSize (Kbytes)Compressed size (Kbytes)Time to download compressed files at 64kbit/s (seconds)
After1303 (*)7020

(*) VrmlMerge removed all unneeded whitespaces, many urls for Inlines, EXTERNPROTOS etc...

As you can see time needed to download this visualization decreased three times!

This table demonstrates usage of the "Convert textures" feature
A HouseNo. of .WRL filesNo. of imagesTotal size (Kbytes)Compressed size (Kbytes)Time to download compressed files at 64kbit/s (seconds)

Here the time needed to download the visualisation didn't change despite the size of the visualization even increased! It's because only one file had to be downloaded instead of 66...

In both above examples it's also worth mentioning that the visualization is aesthetically much better because when user sees it it's fully loaded and ready to use. Normally he would have to watch all those textures and objects loading slowly...

It's also worth noting that those tests were performed before the "use data protocol" option was added. With this the output files could be even better, and load much faster, providing better textures quality.