Because of the convenience of a text-based format 3D content is often published in form of a gzipped file that contains an ASCII description of the scene graph. While compressed image, audio, and video data is kept in seperate binary files, polygonal data is usually included uncompressed into the ASCII description, as there is no widely-accepted standard for compressed polygon meshes.
In this paper we show how to incorporate compression of polygonal data into a purely text-based scene graph description. Our scheme codes polygon meshes as ASCII strings that compress well with standard compression schemes such as gzip. The coder is lossless when only the position and texture coordinate indices are coded. If loss is acceptable, positions and texture coordinates can be quantized and delta coded, which reduces the file size further. The gzipped scene graph description files decrease by a factor of two (six) in size when the polygon meshes they contain are coded with the lossless (lossy) ASCII coder.
Furthermore we describe in detail a proof-of-concept implementation that uses the Shout3D pure java API---a plugin-less Web3D player that downloads all required java classes on demand. Our prototype is an extremely light-weight implementation of the decoder that can be distributed at minimal additional cost. The size of the compiled decoder class is less than 6KB by itself and less than 3KB if included into a compressed archive of java class files. It makes no use of specific features of the Shout3D API. Hence, our method will work for any scene graph API that allows (a) to extend the node set and (b) to store the scene graph as ASCII.
For improved compression see also Binary Compression Rates for ASCII Formats.