Open Inventor
OpenGLは低レベルなライブラリであり、単純なポリゴンのリストを入力として、それらを可能な限り高速に描画する。「家を描画する」といったもっと現実的な何かをしようとすると、プログラマはそれを単純なOpenGL命令列に分解し、それらを逐次的に実行させる必要がある。問題はその命令列の順序であり、OpenGLの性能はどういう順序で命令を与えるかに大きく左右される。そのため、プログラマは最終的な画像では見えない部分を注意深くより分ける必要があった。単純なプログラムであっても、プログラミング量は非常に多くなった。
Open Inventor はこの問題への解決策として開発された。まず、立方体やポリゴンといった基本形状がクラスとして用意され、それらを容易に新たな形状に変形できるようにした。Open Inventor が実行しているシーングラフ(英語版)に描画すべき "world" を置く。そのとき、自動的にオブジェクト間の遮蔽 (occlusion) を適用する。また Open Inventor にはいくつかのコントローラオブジェクトがあり、それをシーンに適用することで一般的な対話型タスクが容易に作れる。Open Inventor は "worlds" を格納するファイルフォーマットを用意しており、自動的なセーブとロードのためのコードも付属していた。これらの機能により、簡単な3DCGアプリケーションを数百行以内で書くことができる。
Open Inventor の欠点は、OpenGLを直接使った場合よりも性能が低下する点である。もう1つの問題は、Open Inventor が自前のファイルフォーマット以外をロードできない点で、開発者は変換プログラムを書く必要があった。