Crystal Reality


Crystal Reality is/was a project to create a virtual 3d world that used binary representations of primitive objects to minimize file sizes - this would allow complex worlds to be browsed over the internet using relatively low bandwidth. The aim of the project was to write a file format, then an object viewer and then a world viewer. I built a simple object viewer in Java, using Java3D, which demonstrates the concept nicely.

Object Viewer

Coded in Java with Java3D - runs smoothly with a 3D graphics card. Downloads object files via HTTP or loads them from the local filesystem. Object primitives supported include Sphere, Cone, Cube, Cuboid and Cylinder. Started experimenting with textures. Yet to implement link objects.

Metacode Compiler

Coded in Java, this program converts simple text files of object code into the bytecode of CRO (Crystal Reality Object) files. A lot easier than writing bytecode each time!

World Viewer

Not started. See ActiveWorlds for a similar kind of thing.

Prototype - Image: 43Kb - the original CR file is 31 bytes
The first CR file, worked out byte-by-byte by hand, before the viewer was created (!)

TicTacThing - Image: 62Kb - the original CR file is 193 bytes
An abstract jumble of shapes.

Pen - Image: 41Kb - the original CR file is 97 bytes
An object built from primitives.