Rich Gossweiler
current date


Grid is an infrastructure for rapidly prototyping and developing interactive 3D graphics applications. Grid runs on top of OpenGL in C++ to achieve higher graphics throughput. Grid provides a clean application interface so that interpreted languages such as python can interact with Grid. An interpreted language allows the developer to experiment and tune without enduring a lengthy recompile cycle each iteration. Grid was developed from the ground up on the PC, based on my experience developing the graphics system for Alice and my work at SGI.
Grid also provides a modular system architecture, making it easier to manage, modify and extend. By providing a COM interface and plugin architecture, developers can plug-n-play with other software products. Initially Grid is targeted at 3D graphics for information visualization applications, but is a general infrastructure easily capable of extending into other realms (e.g. 2D and audio).

A Quick Example of an Application Using Grid

To get some grounding, here is an example using a snipit of code that creates Grid-based 3D objects. The example is not complete, but it gives you the basic idea. It is written in C++ since that is what I am developing in right now, but you can imagine what the python version would look like.
GridObject *root   = GridDB::GetRoot();
GridCamera *camera = GridDB::GetCamera();
Grid3DGeom *ball   = GridShape::CreateSphere();  // defaults to unit sphere
Grid3DGeom *room   = GridVRML::Load(root, "D:\room.wrl");

ball->translateTo(1.0,0,0);     // move to X=1.0 meters

// Now you can do your application, and move the ball around
// It is interesting to note that you can make the camera a
// child of the ball and get a "ballCam" or you can make the
// ball a child of the camera, and it will be part of the dashboard
// (Head Up Display)

Grid Features

Grid Inheritance