An open source 3D virtual world for Linux and OpenGL


OBSIDIAN is now a parked project, and no further work will be done on it. Feel free to use this code and study the thinking behind it, but we do NOT advise using it as the basis for any virtual world projects you may have in mind.

OBSIDIAN is an extensible virtual world system with a fullblown multiplayer client-server architecture. It is NOT a VRML2 world system (there are fundamental computer graphics reasons why VRML worlds will always be slow), though there are plans to include VRML2 as a world data format.


We have decided to make the source code available for those who are interested in compiling it up and having a play with it. Feel free to send in any improvements, patches, or bugfixes you may make.

Remember that for all Obsidian's sophistication, this is Alpha code. It is not yet an RPM or other standard install, though we are trying to make it as nice at this stage as possible.


Download Obsidian

  • Click HERE TO DOWNLOAD the latest BINARY tree (3.3 Meg).
  • Click HERE TO DOWNLOAD the latest SOURCE tree (600 k).

  • You'll need a linux machine with svgalib (see below for other platforms) and the "dialog" utility to get it up and running, and many linux distributions have these (or else they are quick to obtain). We used RedHat 4.1 (Vanderbilt) Linux on our development machines.

  • Click here for REDHAT 5.x PATCH (1k). This patch, the work of Richard Lyons, will be incorporated into the archive at some point. This patch makes the tree more "generic" and may help people compiling under various Linux distributions.
  • SLACKWARE Users' note:

  • When mailing code to us, be sure to quote the full source version number and the name and number of any patches you have applied.
  • Notes

    Even More Screen Shots

    forkbend.jpg (40k)
    forkbig.jpg (75k)Big version of the thumbnail at the top of this page
    toppit.jpg (80k)
    corner.jpg (86k) Boring but shows off SVGALIB
    bugpyra1.jpg (BIG 111k)

    Obsidian Mailing List

    Subscribe To The Obsidian Mailing List by sending an email with the word 'subscribe' in the Subject line.

    Send Mail To The Obsidian Originators

    Obsidian is a joint project between Duncan Robertson and Jon Holdsworth , with additional code by David Karla


    OBSIDIAN OpenGL and OBSIDIAN on Silicon Graphics

    Absolutely great OpenGL conversion done by Shane Arnott

    The raw source to this is now available. The OpenGL source and SGI binaries have now been separated.

    The OpenGL archives are divided into several parts: the Obsidian system using OpenGL, and also the GLUT tree we ended up with.

    We used GLUT 3.3. GLUT is generic, and you should be able to find and compile it for your system, otherwise try ours. GLUT needs to be installed once compiled in /usr/lib (or whatever suits your flavour) so that Obsidian can compile. The binaries in gmud/test/, along with the database stored under there, should run IMMEDIATELY on a silicon graphics machine.

    OpenGL Source (1.5 Meg)

    SGI OpenGL Binaries (3.5 Meg)

    Our GLUT3.3 Source and Silicon Graphics GLUT Binaries (8 Meg)

    Related Links


    Crystal Space: A Free 3D Engine - The Crystal Space 3D engine (an engine based on Portals that is looking pretty good)

    3D Engines List - A big list of engines

    More Engines and Link sites

    LinuxGames: Even Penguins like to have fun - The Linux Games site

    Welcome to the History of Home Video Games Homepage!

    Algorithms and HowTo's
    (Vital stuff for those wishing to write their own 3D engines)

    Computer Graphics : Principles and Practice (Systems Programming) by James D. Foley (Editor), Andries Van Dam (Contributor), John Hughes (Contributor), van Dam, Feiner, Hughs

    Find this book and READ IT! - It is the Holy Tome of Graphics Programming

    Frequently Asked Questions comp.graphics.algorithms - Very Good Stuff gets discussed here

    Graphics Faqs by Archive-Name- More resource material

    The BSP-tree - BSP trees are a very "modern" way of achieving fast rendering speeds on limited hardware (such as PC's) but at a considerable cost in flexibility. If you are prepared to put up with the limitations of BSP trees, you can lever some neat advantages out of them. Quake, Jedi etc all those games use BSP-tree worlds.

    BSP Tree FAQ - More background on BSP trees

    Philip M. Hubbard's Research - A series of abstracts and papers on some of the more interesting advanced stuff

    Some interesting links- From Philip's page

    SOLID - Interference Detection Library - One modern suggested approach to Collision Detection, never a trivial issue in 3D

    STL - The C++ Standard Template Library - I just put this here because people are starting to make noises about bringing current 3D programming into line with current distributed OOD stuff like ORBs (Object Request Brokers) and so on

    VRML (Virtual Reality Modelling Language)

    The VRML Repository - A good resource

    VRML . SGI . COM - SGI are/were the custodians of VRML research

    VRML97 Specification, ISO/IEC 14772-1:1997- The "New Look" VRML

    The Tenochtitlan Web Site - A big VRML World, used as tutorial material in "The VRML 2.0 Handbook" (pub. Addison Wesley)

    Michael Abrash

    Michael Abrash's Graphics Programming Black Book
    Find this book and READ IT

    Abrash Interview

    Other links

    Obsidian Systems - An unrelated (but friendly) InfoTech company we think are cool


    Special thanks to World Wide Warehouse