This is a list of projects that people are working on or have created that could be of potential interest to the community at large. The way code works through this process is:

  1. If you have something that may be of interest, post a description here.
  2. (optional) Post a request for comments on the opensg-users mailing list.
  3. Get feedback from OpenSG developers and community about the need and interest in the code.
  4. If there is interest, create a new ticket about adding the capabilities and reference that ticket from here.
  5. Once the code has been completed and contributed, remove the item from this page.

A mix of utility code by Marcus Lindblom

This is a list of things that I have produced and I think would be useful to the OpenSG community. /Marcus Lindblom (macke 'at' yar 'dot' nu)

I've attached my implementation of this below, which have been copied straight out of our application. So do not expect them to compile straight away, but feel free to be inspired by and/or include in OpenSG.

Small things (See #83)

  • A OpenSG->dot printer, useful for debugging scene graphs.
  • A small library of graph traversors, useful for setting/modifying materials & chunks, computing normals & tangentspaces, etc.
  • A string<->GLEnum mapper (with istream-operator), useful for the string->field setter noted below.
  • A string<->Enum mapper (as above, for any custom enum type)
  • Some node-search functions (find core of specific type and/or with name or in node with specific name)
  • Some math operators for osg::Colors.
  • IStream-operators for math & colors, see #170.

A few larger items:

  • A dynamic string->field setter and istream-operators for most OpenSG types, which makes binding fieldcontainers to script/xml easier.
  • A file caching system, which reads .vrml/.png (or anything) then caches to osb with checksums checking. (See Dev/FileIO)
  • A very simple Java demo, showing how to render OpenSG into a Java window. (See #16)
  • TextViewport / LogViewport: A simple output-only text console.
  • HiResScreenShot : Allows taking _huge_ screenhots, i.e. 8000x6000 (useful for print material)
  • TangentSpaceDebug : Useful for visualizing normals & tangentspaces of geometry. (See #98)
  • Simple CPU skinning : Two "graphops", one that builds skindata from mesh & bones and the other computes the current skin from bones & skindata.

VTK loader by Christoph Fuenfzig

Loader for files (ASCII, file extension "vtk") with poly data of VTK. /Christoph Fuenfzig (c.fuenfzig@…)

  • # vtk DataFile Version 3.0
  • vtk output

The loader creates a single geometry node with default (lit) material and calculated vertex normals (could also be left out).

Out-of-Core Terrain Rendering by Julien Koenen

Terrain Node supporting efficient Rendering and Out-of-Core Streaming of huge Terrain Heightfields.

Cal3d integration by Dirk Reiners

A wrapper for the Cal3D character animation system.

  • License: LGPL
  • Current Maintainer: Dirk Reiners
  • Initial Author: Dirk Reiners
  • Additional Libraries Needed: cal3d
  • Added: 2005/09/11
  • Last modified: 2005/09/11
  • Last tested: 2005/09/11


This has not been tested in a multi-thread environment and it probably won't work there. The hardware skinning shader triggers a bug on nVidia drivers and doesn't work, ignore for now!

Rocks Roll integration by Gerrit Voss

  • OpenSG based viz roll for rocks cluster installations
  • constains OpenSG + scripts to controll the opensg servers
  • tested only for x86_64 and rocks 4.1
  • does not include dmx or sage for distributed desktops (so far)

An OpenCascade based IGES/STEP reader by Antonio Bleile

Find the attached source at the bottom of this page ( It currently includes only a Visual Studio solution, but porting it to linux is probably not a big issue, as the footprint is very small. All you need is OpenCascade, get it from For Windows, a precompiled version can be downloaded:

Please note that not all IGES/STEP entities are currently converted, just the surface entities are transformed to triangle meshes. Entity names and colors are currently ignored. As OpenSG supports nurbs, it would be nice to read the nurbs surfaces from the cad files directly, but that's not trivial and requires some deeper understanding of OpenCascade structures. I've tried to start writing a loader, there's some code to start with, so if you're interested, drop me a mail.

It would also be nice to write a fully compatible OpenSG reader to work with the SceneFileHandler::the().read(...) method.

Enjoy&don't hesitate to contact me (antonio.bleile at

Last modified 7 years ago Last modified on 02/13/10 04:34:49

Attachments (7)

Download all attachments as: .zip