Select your language

Table of Contents

  1. History and Evolution of OpenSceneGraph
  2. Technical Characteristics and Features
  3. File Formats and Compatibility
  4. Interoperability with CAD Systems
  5. Comparison with Other 3D Visualization Formats
  6. CAD Interop Solutions for OpenSceneGraph
  7. Best Practices for OSG File Exchange
  8. Practical Applications and Use Cases

OpenSceneGraph represents a robust solution for the interoperability of technical data from CAD systems to visualization and virtual reality applications. This open-source 3D engine offers a powerful platform for transforming complex models into interactive visualizations accessible on various platforms.

OpenSceneGraph is a 3D engine programmed entirely in C++ and built around OpenGL, which gives it exceptional compatibility with many operating systems, including IRIX, Linux, FreeBSD, Mac OS X, and Windows. This versatility makes it a preferred choice for projects requiring multi-platform interoperability of CAD data.

Since its inception, OSG has established itself as a reference solution for visualizing complex 3D models in various fields such as flight simulations, marine and spatial applications, scientific visualization, education, and even games. Its ability to handle complex 3D scenes while maintaining optimal performance explains its persistent popularity despite the emergence of new technologies.

History and Evolution of OpenSceneGraph

The OpenSceneGraph project was launched in 1998 by Don Burns, who subsequently created his own company while continuing to contribute to the project's development. A major turning point occurred in 1999 when Robert Osfield joined the team, initially working on porting components for Microsoft Windows.

In September 1999, OpenSceneGraph's source code was made public under the terms of the LGPL license, marking the beginning of its journey as an open-source project. Towards the end of that same year, Osfield took over the project's direction and undertook a major overhaul of the existing code, emphasizing modernization and the adoption of contemporary C++ standards and design patterns.

The project was professionalized in April 2001 when Robert Osfield founded OpenSceneGraph Professional Services, offering commercial support, consulting services, and training. The first official stable version (1.0) was released in 2005, followed by version 2.0 in 2007, which added support for multi-core and multi-GPU systems, several important NodeKits, and the use of the cross-platform CMake build system.

Since then, the project has experienced rapid growth with over 530 contributors to the current stable version. However, since 2019, OpenSceneGraph has entered a maintenance phase, with the main development effort now directed towards its successor, VulkanSceneGraph, based on Vulkan to take advantage of the latest hardware advances.

Today, the latest stable version of OpenSceneGraph is 3.6.5, released on January 31, 2020.

Technical Characteristics and Features

OpenSceneGraph offers a comprehensive set of features that make it particularly suitable for CAD data interoperability and advanced 3D visualization.

Architecture and Performance

OpenSceneGraph's architecture is based on a scene graph approach, representing 3D worlds as a graph of nodes grouped logically and spatially into subgraphs to optimize behavior and performance. This structure facilitates the hierarchical organization of complex data from CAD systems.

OpenSceneGraph offers high performance thanks to several optimization techniques:

  • View frustum culling
  • Occlusion culling
  • Small feature culling
  • Level of detail (LOD) nodes
  • OpenGL state sorting
  • Vertex arrays and vertex buffer objects
  • OpenGL Shading Language (GLSL) support
  • Display lists

Cross-Platform Support and Scalability

OpenSceneGraph's design allows for exceptional portability with minimal dependencies, essentially requiring only standard C++ and OpenGL. It runs on configurations ranging from portable devices to high-end multi-core and multi-GPU systems, as well as clusters.

The engine supports OpenGL from version 1.0 to 4.6, as well as OpenGL ES from version 1.1 to 3.2, allowing support for both older hardware and newer operating systems. Since version 3.0.0, OpenSceneGraph also supports application development for mobile platforms, including iOS and Android.

Threading Models and Memory Management

OpenSceneGraph incorporates a threading library called OpenThreads, which provides a lightweight object-oriented interface for C++ programmers. It is inspired by the Java thread API and POSIX Threads standards.

This multi-threaded design allows for executing multiple cull-draw traversal pairs on multiple processors linked to multiple graphics subsystems, thus maximizing performance on modern machines.

File Formats and Compatibility

OpenSceneGraph primarily uses its own native formats while offering broad compatibility with other industry standard formats.

Native Formats and Extensions

The *.osg file extension is used to store scenes created with OpenSceneGraph. These files contain information about 3D models, textures, lights, cameras, and scene configuration. OSG offers two main formats:

  • ASCII Format (.osg) - Readable and editable text format
  • Binary Format (.osgb) - More compact and faster to load

The .ive format, also native to OpenSceneGraph, is particularly fast to load, making it ideal for database storage and large databases.

Compatibility with Other Formats

OpenSceneGraph supports importing and exporting many file formats, including:

  • COLLADA
  • OpenFlight
  • 3D Studio (.3ds)
  • VRML
  • Alias Wavefront (OBJ)
  • Various 2D image formats (JPEG, PNG)
  • Geospatial formats (GeoTIFF)

This extensive compatibility allows users to work with 3D models created in other software such as SketchUp, Maya, and Blender, and use them in their own OpenSceneGraph applications.

Geometric Support

According to the technical documentation, OpenSceneGraph primarily supports surface-type geometries, while other types such as points, lines, circles, or polygons are not directly supported. This specialization reflects its primary function of 3D visualization rather than complete CAD modeling.

Interoperability with CAD Systems

One of OpenSceneGraph's major strengths lies in its ability to serve as a bridge between complex CAD systems and lightweight visualization applications.

Data Conversion and Import

OpenSceneGraph provides a utility called osgconv that allows reading 3D databases, applying basic operations, and saving them as a single 3D database. This tool is particularly useful for:

  • Reading standard 3D formats (OpenFlight, 3DS, OBJ, etc.)
  • Converting these formats to native OSG formats (.osg or .ive)
  • Optimizing the scene graph during loading to reduce size and improve performance

Texture Management

Texture conversion is a crucial aspect when transforming files between different formats to the OpenSceneGraph format. The .OSG format supports the "OutputTextureFiles" option that allows generating new external texture image files.

Important points regarding texture management:

  • Texture files are generated using the original texture filename present in the scene
  • The format used is determined by the filename extension
  • Some combinations of formats and texture data may be incompatible (e.g., the .RGB format cannot store compressed texture data)
  • Texture compression and decompression are performed by the OpenGL implementation and not by an OSG software algorithm

Comparison with Other 3D Visualization Formats

To better position OpenSceneGraph in the ecosystem of 3D visualization and VR/AR technologies, here is a comparison with three other major formats/technologies:

FeatureOpenSceneGraphCOLLADAglTFUnity/FBX
Type Complete 3D framework Exchange format Transmission format Proprietary format
License LGPL Open standard Open standard Proprietary
Orientation Scientific visualization and simulation Exchange between creative applications Web and mobile applications Games and interactive content
Compression Yes (.ive) Limited Optimized Yes
Shader support Full GLSL Basic PBR and extensions Advanced
Cross-platform Excellent N/A (format) N/A (format) Limited
Animation Yes Yes Yes Advanced
Native VR/AR Yes No With extensions Advanced
Maturity High (maintenance) High Growing High
Current evolution Limited (succession by VulkanSceneGraph) Stable Very active Active

OpenSceneGraph distinguishes itself by its nature as a complete framework rather than a simple exchange format, offering an integrated solution for scientific visualization and simulation, but its evolution is now limited while other formats like glTF are experiencing more active development.

CAD Interop Solutions for OpenSceneGraph

CAD Interop distributes several software packages for preparing, visualizing, and converting OpenSceneGraph files. Among these solutions, SimLab particularly stands out for creating immersive experiences from OpenSceneGraph models.

SimLab VR Studio

SimLab VR Studio is a complete virtual reality experience creation workshop that allows transforming 3D models into interactive environments without requiring programming skills. Designed to simplify the 3D visualization process, it offers a suite of powerful and user-friendly tools.

Key features of SimLab VR Studio:

  • Ease of use without coding skills
  • Free license to test all features
  • Rapid VR content creation
  • Compatibility with a wide variety of VR systems and devices
  • Support for over 30 3D file formats, facilitating interoperability
  • Secure data processing with local conversion
  • Import and modification of animations in real-time
  • Libraries of pre-designed 3D models
  • Dedicated tools for natural and realistic lighting
  • VR interaction and logic with intuitive commands

Applications of SimLab VR Studio:

  • Training in fields such as medicine, safety, and professional training
  • Product demonstrations (furniture, cars, interior design)
  • Immersive presentations for schools, universities, and businesses
  • Entertainment, games, and virtual tourism

SimLab VR Viewer

Complementary to SimLab VR Studio, SimLab VR Viewer is a free, standalone, and multi-platform application that allows viewing 3D projects in virtual reality.

Main features of SimLab VR Viewer:

  • Compatibility with almost all VR headsets on the market
  • Dimension measurement tools facilitating interactions
  • Annotation tools to enhance communication
  • Various navigation modes (Walking, Flying, Mechanical)
  • VR experience sharing functionality
  • Available on iOS and Android
  • Compatible with HTC Vive, Oculus PC, Oculus Quest, and PicoVR headsets

Integrated Cloud Services

The SimLab ecosystem also includes cloud services that allow:

  • Secure storage and access to VR experiences
  • Organization of experiences into catalogs
  • Secure sharing of experiences or publication to the community
  • Retrieval of modifications and notes added by recipients
  • Hosting 3D models as online WebGL documents
  • Synchronization between multiple devices via the SimLab Cloud account

Best Practices for OSG File Exchange

Based on information available in forums and technical documentation, here are some best practices for optimizing OpenSceneGraph file exchange:

Scene Graph Optimization

  • Use osgconv to automatically optimize the scene graph during conversion, thus reducing file size and improving runtime performance
  • For large databases, prefer the binary .ive format which is particularly fast to load

Texture Management

  • Ensure that the destination directory specified for texture files exists before conversion
  • Be aware of potential incompatibilities between certain formats and texture data types
  • If you encounter corrupted texture issues, check your OpenGL driver compatibility, as texture compression/decompression is performed by the OpenGL implementation

Conversion Between Formats

  • When converting formats like .IVE (with embedded textures) to .OSG (which doesn't embed them), use the "OutputTextureFiles" option to correctly generate external texture files
  • Avoid converting compressed textures to formats that don't support compression (like .RGB)

Cross-Platform Compatibility

  • Test your models on different platforms to ensure that texture paths and references are correctly resolved
  • Use relative paths rather than absolute paths for texture file references

Why Consider Migrating to VulkanSceneGraph?

Since 2019, OpenSceneGraph has entered a maintenance phase, with the main development being redirected to VulkanSceneGraph. This evolution is explained by several factors:

  • VulkanSceneGraph offers "unprecedented" performance and access to the latest hardware features
  • It retains OSG's proven DNA while modernizing the architecture
  • Recent developments such as hardware-accelerated ray-tracing and mesh shaders are not available through OpenGL extensions

For new projects requiring cutting-edge features, it is recommended to evaluate VulkanSceneGraph as an alternative to OpenSceneGraph.

Practical Applications and Use Cases

OpenSceneGraph finds applications in many fields requiring advanced 3D visualization and interoperability with CAD data:

Industrial Simulations and Training

OpenSceneGraph is widely used for flight, marine, vehicular, and space simulations. These applications benefit from OSG's ability to:

  • Handle complex 3D scenes with a high level of detail
  • Maintain high performance even with large models
  • Integrate data from different CAD systems

Scientific and Medical Visualization

Scientific and medical visualization represents another major application area for OpenSceneGraph. Researchers and healthcare professionals use OSG to:

  • Visualize complex 3D data
  • Interact with models in real-time
  • Share and collaborate on visualizations

Virtual and Augmented Reality

With the rise of immersive technologies, OpenSceneGraph plays an important role in developing virtual and augmented reality applications. SimLab VR Studio and SimLab VR Viewer notably allow:

  • Creating VR experiences from existing 3D models
  • Facilitating immersive training
  • Presenting products and concepts in virtual reality

OpenSceneGraph offers a mature and proven solution for CAD data interoperability in the context of 3D visualization and virtual reality. Although the project is now in a maintenance phase, its stability, performance, and well-developed ecosystem still make it a relevant choice for many industrial and scientific projects. For applications requiring the latest technological advances, the evolution toward VulkanSceneGraph represents a promising path forward.

SimLab