3D Scene Graph: What is it and why?
Welcome to the page describing my 3D Scene Graph project. The pursuit of the perfect Scene Graph will probably always be one of the Holy Grails of 3D graphics. To be the perfect scene graph for a project, the scene graph must have been designed for that project's domain. I.e. A real-time scene graph for games is not best suited for a CAD package.

This scene graph project targets real-time rendering (games, vis sim, etc) on single CPU platforms. Single CPU platforms were selected to allow support for the scene graph on the small/low-resource console style platforms, without the overhead required for the multi-threaded rendering. Some of the scene graph's design has roots in Performer, Cosmo3D, and a few other scene graph technologies out there. The project is written all in C++ and the architecture supports different rendering APIs, but currently using OpenGL.

Some may ask why develop a scene graph, as there are already many out there. First, this technology, or permutations there of, have been with me for quite some time. Second, this is my technology playground which I use as a testbed for my other projects, such as terrain tessellation. Third, the best way to fully understand a technology is to develop it. Finally, this gives me control to develop what I need for a project, how I need it.

Is it for sale? No. Besides being a test bed for my projects, also consider this technology a part of my resume. If you are interested in the technology, hire me. (Actually send me an e-mail, and we can talk.)


As I find the time, or desire, I put together pages about portions of the Scene Graph or about exploits in it. The pages have a tendency to lag behind the actual project but I try to keep them somewhat up to date. Here are the current pages:

  • Features: The current list of supported features in the SceneGraph. It also discusses some of the division of the SceneGraph architecture.
  • Architecture: A page discussing the general architecture of the scene graph. It discusses the categories of classes/objects that exist and has a diagram illustrating the classes.
  • Examples: A page which discusses examples uses of the Scene Graph.
  • Screen Shots: A page showing various screen shots from applications that run using the Scene Graph.
  • Terrain: A page showing much of the early work done on terrain loading, tessellation and rendering. (Delauney, ROAM, etc.) This includes a comparison between using Delauney triangulation and ROAM for a terrain.
The following pages describe demos or applications that have been developed with the Scene Graph:
  • Terrain Demo: A page showing all of the scene graph work rolled up into a demo to illustrate its capabilities for terrain rendering.
  • GeoReal Application: A page demonstrating the GeoReal application that was developed with the scene graph. GeoReal is a stand-alone application which loaded GEO files, and animates them in real time. Data for the animation can be received via Shared Memory, TCP/IP, UDP, or data file.

These pages are a general description of the SceneGraph, and do not cover it completely. More capabilities are available, but simply are documented yet or do not have images worthy of placing on the webpage.