Grid:
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->makeChildOf(room);
ball->setColor(GridColor::PUCE);
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
- Geometric primitives: Polygons, polylines, polypoints
- Text: 2.75D (screen-aligned, in-scene) and 3D text
- Object manipulation: 3D heirarchical model Transforms
- Wireframe
- Bounding Volumes
- 3D Object Abstraction
- Primitive and Parametric Shapes
- Switching/LOD
- Lighting
- Materials
- Color
- Translucency
- MFC integration
- Texture
- Fog
- Multiple Cameras and Viewports
- Audio
- Event Model
- Picking and Gestures
- Paths
- Keyframe Animation
- Behaviors
- import/export a subset of VRML 2.0
- COM interface: inter-application communication support
- Python integration
- plug-in architecture
Grid Inheritance
GridNode
GridArray
GridBBox
GridBV
GridColor
GridMaterial
GridMatrix
GridPoly
GridShape
GridStack
GridString
GridTranslucency
GridTree
Grid3D
GridCamera
GridLight
GridVertex
GridVRMLParser
GridVector3
GridDB
GridLightArray
GridLog
GridRenderer
GridTokenizer
GridWebTexture