Fact-checked by Grok 2 weeks ago

OpenSceneGraph

OpenSceneGraph (OSG) is an open-source, cross-platform graphics toolkit that provides a high-performance API for rendering complex visual scenes using . It enables developers to build applications in domains such as visual simulation, games, , scientific , and modeling, with support for operating systems including Windows, macOS, , and others. Written in standard C++, OSG emphasizes efficiency, scalability, and extensibility through its modular design, allowing for optimized rendering of large datasets and real-time interactivity. The project originated in 1998 as a hobby effort by Don Burns to develop a for his Simulator. In 1999, Robert Osfield joined Burns, and the code was released as under the OpenSceneGraph Public License (a permissive based on the LGPL), marking the formal launch of OSG as an independent project. By 2000, it gained traction among professional visual simulation developers, leading to increased contributions and adoption in industry applications. The first stable release, version 1.0, arrived in 2005, followed by version 2.0 in 2007, which introduced multi-core processing support. Development continued with periodic stable releases, culminating in version 3.6.5 in January 2020, after which the project has seen reduced activity in favor of its successor, VulkanSceneGraph (VSG), which offers modern Vulkan API integration for enhanced performance. Key features of OpenSceneGraph include its core structure for organizing data, built-in support for loading various file formats (e.g., , , and ), and optimizations like occlusion culling and level-of-detail management to handle massive scenes efficiently. The toolkit's architecture promotes through plugins and nodes for geometries, states, and transformations, making it suitable for both and production-scale software. As of 2025, OSG remains a foundational in legacy systems and is in maintenance mode with periodic package updates, with its repository hosting ongoing community discussions despite the shift toward VSG for new developments. OpenSceneGraph has been widely adopted in professional environments, powering applications like the flight simulator since 2008 and tools in geospatial software such as . Its influence extends to industries including aerospace simulation, oil and gas exploration, and training systems, where hundreds of high-performance applications rely on its robust rendering capabilities.

History

Origins and Development

OpenSceneGraph originated in 1998 as a hobby project initiated by Don Burns, a software consultant at Inc. (SGI), who developed it to address high-performance 3D graphics requirements for applications. Burns created the toolkit as the core component for his personal Simulator, drawing inspiration from SGI's Performer library to build a lightweight, efficient alternative for real-time rendering. In September 1999, the project transitioned to an open-source model under the OpenSceneGraph Public License (OSGPL), an LGPL-based agreement that facilitated free redistribution and modification. Robert Osfield joined Burns during this period, contributing a critical Windows to extend beyond systems, and soon assumed leadership of the development effort. This open-sourcing marked a pivotal shift, enabling broader collaboration while preserving the toolkit's focus on professional-grade simulation needs. To bolster commercial viability amid rising interest, Osfield founded OpenSceneGraph Professional Services in April 2001, offering consulting, training, and support to enterprises adopting the toolkit. Early efforts emphasized cross-platform portability, with initial development on followed by ports to and Windows, ensuring accessibility for diverse hardware environments in visual simulation. The project's community began coalescing around mailing lists such as osg-users, where developers shared contributions and feedback, leading to steady growth in participation and code enhancements by 2004. This expansion laid the for OpenSceneGraph's in professional workflows, replacing alternatives in fields like and training simulations.

Key Milestones and Releases

The first stable release of OpenSceneGraph, version 1.0, arrived in 2005, marking a significant milestone by establishing the foundational core and providing robust integration with for high-performance 3D rendering. This release solidified the toolkit's role as a professional-grade solution for visual and applications, enabling developers to manage complex scenes efficiently through a node-based structure that supported traversal, , and . Building on this foundation, was released in June 2007, introducing key enhancements for modern hardware including multi-core CPU support to leverage , GPU-based occlusion culling for improved rendering efficiency, and the adoption of the build system to streamline cross-platform compilation. These additions expanded the toolkit's scalability, allowing it to handle multi-threaded operations and multi-GPU configurations while integrating seamlessly with various windowing systems like and . The update also incorporated new libraries such as osgViewer for advanced viewer management and osgManipulator for interactive scene controls, further maturing the for demanding applications. Version 3.0 followed in 2011, broadening accessibility by incorporating compatibility to target mobile platforms, including initial support for and devices, alongside the introduction of efficient file formats like .osgb for compressed scene storage and faster loading. This release emphasized portability and extensibility, enabling deployment across diverse hardware from desktops to embedded systems while maintaining high-fidelity rendering. Subsequent updates continued this trajectory; for instance, version 3.4 in July 2015 enhanced terrain rendering capabilities through features like and improved geospecific techniques in the osgTerrain module, alongside additions such as shader composition and the osgUI library for integration. The 3.6 series, spanning 2018 to 2020, focused on refining reliability with numerous stability improvements and bug fixes, culminating in the final maintenance release, 3.6.5, on January 31, 2020. By this point, the project had amassed over 570 contributors who had shaped its evolution through code submissions and community efforts, supported by thousands of participants engaging via dedicated mailing lists for discussion and collaboration. These releases underscored OpenSceneGraph's commitment to robustness, ensuring it remained a viable backbone for applications amid evolving graphics standards.

Current Status and Successor Projects

Following the release of OpenSceneGraph 3.6.5 in January 2020, the project entered , designated as a legacy technology to ensure backwards compatibility for existing applications through its repository. This phase prioritizes stability, with ongoing minor updates addressing security vulnerabilities and compatibility issues with and tools as of 2025. No major feature additions are planned, reflecting the maturity of its OpenGL-based architecture. In 2019, Robert Osfield, the lead developer of OpenSceneGraph, introduced VulkanSceneGraph (VSG) as a successor project, leveraging the and to support modern, high-performance graphics applications. Developed under the OpenSceneGraph umbrella, VSG addresses limitations in legacy by providing a cross-platform optimized for contemporary hardware. The VSG 1.1.0 developer release occurred in early , marking a significant update in the 1.1 series, which continued through versions like 1.1.11 by August . Key enhancements include explicit state management through restructured state stacks and viewport handling for improved efficiency, alongside cross-API compatibility that enables as the primary backend while supporting workflows via performance-optimized integrations. Tools such as vsgXchange facilitate data handling, including file loading and database paging, enhancing interoperability. Migration from OpenSceneGraph to VSG is supported by utilities like the osg2vsg adapter library, which converts OSG scenes, images, and models to VSG equivalents. Ecosystem components, such as for geospatial rendering, have been ported to vsgEarth, a implementation that replaces OpenSceneGraph dependencies with VSG for Vulkan-based rendering while preserving core functionality. This transition guides users toward VSG for new development, ensuring continuity in the broader ecosystem.

Features

Rendering and Scene Graph Capabilities

OpenSceneGraph employs a hierarchical scene graph structure to organize 3D objects, utilizing nodes such as osg::Group for managing child nodes, osg::Transform and osg::MatrixTransform for applying transformations like translation and rotation, and osg::Geode as leaf nodes containing drawable geometry. This node-based approach enables efficient traversal and manipulation, with reference counting to handle shared subgraphs and prevent memory leaks. The scene graph supports additional specialized nodes like osg::Switch for conditional rendering of children and osg::LOD for distance-based detail management, facilitating scalable scene complexity. The rendering pipeline in OpenSceneGraph is built on OpenGL for real-time 3D graphics, featuring update, cull, and draw traversals to process the scene graph efficiently. It integrates support for programmable shaders through osg::Shader and osg::Program classes, enabling GLSL vertex, geometry, and fragment shaders with uniform variables for dynamic effects. Textures are handled via osg::Texture2D and osg::Image, supporting formats like JPEG and PNG for mapping onto geometry within the scene graph. Lighting is managed with osg::Light and osg::LightSource nodes, accommodating up to eight fixed-function lights alongside material properties, while particle systems are rendered using the osgParticle library for simulating effects like fire or smoke through emitters and programs attached to osg::Geode nodes. Built-in effects enhance rendering efficiency, including billboarding via the osg::Billboard node to orient objects toward the viewer, (LOD) through osg::LOD for switching based on viewing distance, and culling with osg::OccluderNode to skip hidden elements using bounding volumes. Text rendering is integrated via the osgText library, supporting fonts with osgText::Text and osgText::Font for 2D and 3D labels embedded in the . is achieved through node callbacks like osg::UpdateCallback for per-frame updates and state manipulation via osg::StateSet, allowing dynamic changes to transformations, shaders, and other attributes. These capabilities are further optimized by optional multi-threading for traversals across multi-core systems.

Platform Support and Integration

OpenSceneGraph is designed for cross-platform compatibility, supporting a wide range of operating systems including Windows, macOS, , and various Unix variants such as , , , AIX, and . This broad support is achieved through its reliance on Standard C++ and , enabling seamless compilation and execution across desktop environments. Additionally, it extends to systems via , facilitating deployment on resource-constrained devices like phones and tablets. Since version 3.0, OpenSceneGraph has included native support for mobile platforms, specifically and , allowing developers to build applications with features such as touch input handling. For , build instructions leverage the to compile the toolkit, ensuring compatibility with on devices running API level 11 or higher. On , integration uses and with specific SDK versions, such as iOS 11.4, to handle mobile-specific rendering and input events. The toolkit integrates with several third-party libraries to enhance functionality. It supports for graphical user interfaces through the osgQt component, enabling embedding of OSG scenes within Qt-based applications. Video playback is facilitated by FFmpeg integration starting from version 2.8.3, via the osgdb_ffmpeg plugin for decoding and rendering multimedia content. Export capabilities include support for formats, with the osgdb_3ds plugin allowing writing of .3ds files for interoperability with tools like 3D Studio Max. OpenSceneGraph provides extensive file format support through a plugin , with approximately 45 core loaders for importing models and scenes. Key examples include (.dae) via the Collada DOM library for complex scene hierarchies, () for polygonal meshes, OpenFlight for geospatial simulations, and (.x) for ecosystem compatibility. These loaders enable the core to load diverse assets without custom code. For web-based applications, adaptations like OSG.js provide a /WebGL implementation of OpenSceneGraph concepts, allowing browser rendering of 3D scenes using the paradigm. This port supports core nodes, statesets, and loaders, bridging desktop OSG workflows to web environments.

Performance Optimizations

OpenSceneGraph incorporates several techniques to enhance rendering performance, particularly for complex scenes requiring interaction on multi-core systems and modern graphics hardware. These optimizations leverage the library's structure to minimize computational overhead, reduce draw calls, and efficiently manage large-scale data, enabling applications in visual simulation and geospatial visualization to achieve high frame rates. Multi-threading support is provided through the integrated OpenThreads library, a lightweight cross-platform C++ threading that facilitates parallel scene traversal, updating, , and operations across multiple cores. This allows developers to implement strategies such as thread-per-graphics-context or thread-per-camera models, where separate s handle and for different views, significantly improving on multi-processor systems. For instance, in dynamic environments, one can manage input and while others process rendering, ensuring smoother performance without blocking the main loop. GPU-accelerated rendering is optimized via features like display lists for static , which compile vertex data into efficient calls stored on the , and Vertex Buffer Objects (VBOs) for dynamic data, enabling direct GPU access to vertex arrays without repeated CPU transfers. PBuffers further support off-screen rendering by providing auxiliary buffers for tasks like texture generation, reducing main overhead and allowing compositing of rendered results into the final scene. These mechanisms, compatible with versions up to 4.6, help minimize bandwidth usage and boost throughput for geometry-heavy scenes. Culling mechanisms play a crucial role in reducing unnecessary computations by eliminating invisible elements early in the rendering pipeline. View-frustum culling automatically discards nodes outside the camera's viewing volume using bounding spheres computed via osg::Drawable::computeBound(), while occlusion querying employs osg::OccluderNode to test visibility against occluding geometry, such as planes or quads, preventing rendering of hidden objects. Small feature culling complements these by skipping draw calls for geometry below a configurable size threshold, configurable through CullSettings::setSmallFeatureCullingPixelSize(), thereby lowering the overall draw call count and improving frame rates in dense scenes. The scene graph hierarchy aids these processes by propagating bounds efficiently during traversal. For handling large datasets, such as terrain models, OpenSceneGraph employs paging and streaming via nodes like osg::PagedLOD and osg::ProxyNode, which enable dynamic loading and unloading of subgraphs in the background using the osgDB::DatabasePager. This supports multi-threaded paging for geospatial formats like TerraPage (.txp), where quad-tree structures divide massive terrains—e.g., a 1024x1024 grid across four levels generating 86 paged files—into loadable chunks, ensuring only visible portions are resident in memory and rendered, ideal for real-time navigation over expansive virtual environments. Profiling and statistics tools, including osgViewer::StatsHandler, allow developers to monitor performance metrics in real-time by pressing the 'S' key in viewers, displaying frame rates, traversal times, and bottlenecks such as cull or draw durations. The osgUtil::Optimizer further aids by applying passes like state sharing and static object detection to streamline the , while osg::notify() levels enable to files for detailed tracing of rendering overhead. These utilities help identify and resolve performance issues without external debuggers.

Architecture

Core Libraries

The core libraries of OpenSceneGraph form the foundational components for building, managing, and rendering 3D scenes, providing essential abstractions for scene graphs, threading, utilities, data handling, and event processing. These libraries are designed to be modular and cross-platform, enabling developers to create high-performance graphics applications without direct low-level calls. osg serves as the central library, encapsulating the core scene graph structure with classes for nodes, states, drawables, and mathematical utilities. It includes fundamental elements such as Node and Group for hierarchical organization, Geode and Drawable for geometry rendering (e.g., Geometry objects defining vertices, normals, and colors), and StateSet for managing OpenGL states like textures, lighting, and fog via StateAttribute subclasses (e.g., Material, Texture2D). Transformation nodes like MatrixTransform and PositionAttitudeTransform handle positioning using matrix and quaternion math utilities (Matrixf, Quat), while level-of-detail mechanisms such as LOD and PagedLOD optimize rendering by switching detail based on distance. The library supports traversal via NodeVisitor for operations like culling and updating, with thread-safe reference counting through Referenced to ensure safe multi-threaded access. OpenThreads provides cross-platform threading primitives essential for and leveraging multi-processor systems in graphics applications. Key classes include Thread for creating and managing , Mutex and ReentrantMutex for locking shared resources, and support for operations like condition variables to coordinate tasks such as background loading or parallel rendering passes. This library ensures in core OSG components, such as the in Referenced and in scene management, allowing efficient utilization of multi-core without platform-specific code. osgUtil offers traversal-based utilities for scene optimization, intersection testing, and rendering enhancements, building directly on the osg . It features visitors like CullVisitor for efficient using bounding volumes and tests, IntersectionVisitor with intersectors (e.g., LineSegmentIntersector for ray picking) to detect collisions, and the Optimizer for passes such as FLATTEN_STATIC_TRANSFORMS to merge unnecessary nodes. Geometry tools include Tessellator for and Simplifier for reducing vertex counts while preserving shape, alongside StatsVisitor for performance metrics. These utilities enable automated optimizations that improve frame rates in complex scenes. osgDB manages database operations for loading and saving models through a architecture, supporting over 45 native and third-party file formats via readers and writers. Core classes include ReaderWriter for format-specific s (e.g., for .dae, Wavefront .obj, or OSG's .osg and .osgb), Registry for discovery and virtual file systems, and DatabasePager for asynchronous loading of paged data to prevent stalls during rendering. It handles archives like .osga for bundled assets and provides caching mechanisms to reuse loaded models, facilitating seamless integration of external content. osgGA abstracts event handling and GUI interactions, providing a framework for input devices and camera control independent of underlying window systems. It includes GUIEventHandler for processing events like keyboard presses or mouse movements, and manipulators such as TrackballManipulator for intuitive 3D navigation using quaternions and matrices. The library supports device abstractions for trackballs, joysticks, and touch inputs, enabling responsive user interfaces in viewers and simulations.

Viewer and Utility Components

The osgViewer library provides the core functionality for rendering and visualizing scenes in OpenSceneGraph, centered around the osgViewer::Viewer class, which manages a single view onto a scene graph through a master camera and optional slave cameras. This class handles essential tasks such as setting scene data with setSceneData(osg::Node*), executing traversals for event handling (eventTraversal()), updates (updateTraversal()), and rendering (advance()), and running the main frame loop via run(). It abstracts window system dependencies, supporting integration with toolkits like GLUT, Qt, and Win32 through methods like setUpViewerAsEmbeddedInWindow(int x, int y, int width, int height) for embedding in external windows. Additionally, osgViewer::Viewer enables performance monitoring with setViewerStats(osg::Stats*) and configuration loading from files using readConfiguration(const std::string&). As a legacy component, osgProducer offered real-time rendering pipelines with support for stereo rendering and multi-display setups, but it was removed in early OpenSceneGraph versions prior to 1.0 and superseded by osgViewer for modern applications. This shift streamlined viewer management while retaining compatibility for advanced visualization needs through osgViewer's extensible architecture. Utility classes in OpenSceneGraph facilitate scene manipulation, including bounding volume computation via osg::BoundingBox and osg::BoundingSphere, which enclose objects or vertices for frustum culling and collision detection, with methods like computeBound() in nodes such as osg::Group and osg::Transform to derive these volumes from child geometry. Coordinate transformations are handled by classes like osg::MatrixTransform, which applies 4x4 matrices for rotation, scaling, and positioning of subgraphs via setMatrix(), and osgUtil::TransformAttributeFunctor, which modifies vertex and normal attributes directly under a transformation matrix. These utilities, often invoked during scene updates, ensure efficient traversal and rendering without altering core scene graph primitives. Integration with graphics contexts occurs through osg::GraphicsContext and osgViewer::GraphicsWindow, which abstract initialization, state management, and buffer swapping across platforms, with GraphicsWindow adding event queues for windowing interactions like resizing (resized()) and focus handling. Cameras in osgViewer attach to these contexts via getContexts() to manage and view matrices, enabling seamless rendering in multi-threaded or embedded environments. For VR and immersive environments, osgViewer supports configuration through stereo-enabled cameras via inherited methods like assignStereoCamera() from osg::View, allowing setup for head-tracked displays and multi-viewport rendering on large-scale or curved screens, as demonstrated in examples using slave cameras for split-screen stereo output.

NodeKits and Extensions

OpenSceneGraph provides a collection of modular NodeKits that extend its core capabilities, enabling developers to incorporate specialized functionalities without altering the foundational architecture. These optional libraries, often referred to as NodeKits or extensions, integrate seamlessly with the main osg library to support advanced features such as , , management, and elements. Each NodeKit builds upon the 's node and drawable system, allowing for plug-and-play enhancements in applications requiring dynamic or complex 3D interactions. The osgAnimation library offers utility classes for implementing keyframe-based animations, systems, and morph target deformations to create dynamic content in scenes. It includes classes like and BasicAnimationManager for orchestrating animation sequences, supporting interpolation methods such as linear and cubic Bezier for smooth transitions between keyframes. For skeletal systems, components like , , and RigGeometry enable hierarchical bone structures and , facilitating realistic character movements through hardware or software transforms. Morph targets are handled via Geometry and UpdateMorph, which allow vertex-level for shape morphing effects, making it suitable for deformable models in games and simulations. osgFX extends the rendering pipeline with a for , including to simulate surface irregularities, shadow generation through techniques like multi-pass rendering, and multi-texturing for layered surface details. The library's Effect class serves as a base for implementing these, with specific nodes like BumpMapping for normal-based perturbation and MultiTextureControl for blending multiple texture units. Additional effects, such as anisotropic lighting and cel-shading via the Cartoon node, provide non-photorealistic rendering options, while SpecularHighlights adds cube-map-based reflections. This NodeKit supports fallback to basic for broader hardware compatibility, enhancing visual fidelity in applications. For handling expansive outdoor environments, osgTerrain delivers a flexible system for rendering large-scale terrains using heightfield data, with built-in support for paging and level-of-detail () mechanisms to optimize performance over vast landscapes. The core Terrain class couples heightfields with pluggable TerrainTechnique implementations, allowing runtime selection of rendering algorithms like geometry clipping or . Paging is managed through TerrainTile and Locator for of terrain patches, while vertical scaling and sample ratios ensure accurate generation. LOD is achieved via tile-based refinement, with boundary equalization to prevent seams between adjacent terrain sections, making it ideal for geospatial visualizations and flight simulators. The osgParticle NodeKit specializes in particle systems for simulating dynamic phenomena such as , , and , managing particle lifecycles through , updating, rendering, and . At its heart, the ParticleSystem class holds and renders sets of particles as drawables within a , supporting alignment modes like billboarding and sorting options for depth-correct rendering. Emitters generate particles with customizable operators for acceleration and velocity, while Programs define behaviors like or effects. Features include vertex array optimization, integration, and visibility based on bounding spheres, enabling efficient simulation of fluid-like visuals in interactive scenes. Among other notable NodeKits, osgManipulator provides interactive 3D controls through draggers and commands for object manipulation, such as TranslateInLineCommand for linear movement and Rotate3DCommand for spherical rotation, integrated via a selection and constraint system. osgSim extends simulation capabilities with nodes like DOFTransform for degrees-of-freedom modeling and LightPointNode for navigational lighting, alongside impostors and overlays for optimized distant rendering in visual simulations. Finally, osgText supports advanced with high-quality text rendering via the Text class, incorporating quads, font , and for precise label and elements in spaces.

Adoption and Impact

Notable Applications and Users

OpenSceneGraph has been integral to the FlightGear flight simulator since its adoption in version 1.9.0 in 2008, where it serves as the primary rendering engine for real-time 3D scenery visualization, enabling high-fidelity simulations of global terrain and aircraft environments. This integration replaced the previous PLIB library, enhancing performance for open-source aviation training and entertainment applications. In the aerospace sector, has employed OpenSceneGraph in advanced simulation tools, such as the Multi-Mode (MMWR) simulator developed under contract at , which utilizes the library for rendering complex radar data visualizations in flight safety and weather modeling scenarios. The Delta3D , designed specifically for and educational simulations, was built atop OpenSceneGraph as its core 3D graphics framework, supporting modular development of systems with features like physics integration and networked multiplayer capabilities. This open-source engine facilitated cost-effective creation of serious games for defense applications, leveraging OSG's for efficient rendering of dynamic environments, though the project is no longer actively maintained. For geospatial and earth science applications, the Virtual Terrain Project (VTP) relies on OpenSceneGraph through its vtlib library to process and visualize diverse geospatial data, including elevation models and satellite imagery, for interactive 3D terrain modeling in research and environmental analysis. OpenSceneGraph is also integrated into GRASS GIS, an open-source geospatial software suite, where it provides 3D visualization capabilities for terrain analysis, vector data rendering, and raster-based simulations in environmental and geographic information systems. In the commercial domain, tools like ViewTec's TerrainView employ OpenSceneGraph for high-performance 3D visualization of terrain data in the oil and gas industry, aiding in site planning, infrastructure monitoring, and seismic analysis through support for large-scale geospatial datasets.

and

The OpenSceneGraph project maintains an active presence on , where its primary repository hosts over 100 open issues as of 2025, many of which pertain to ongoing maintenance, bug fixes, and compatibility updates. The repository also features a discussions forum that serves as the central hub for user support, bug reports, and feature requests, replacing the deprecated Google Group for osg-users. This shift to GitHub discussions has facilitated continued community engagement since 2022, with contributions focusing on stabilizing the codebase for modern platforms. The contributor base includes 112 individuals listed on , reflecting collaborative development over the project's lifespan. Key figures such as Robert Osfield, the longtime project lead, have been instrumental in guiding the ecosystem, including the transition toward VulkanSceneGraph (VSG) as a modern successor to OpenSceneGraph, emphasizing API integration and features. Osfield's efforts, including funding-initiated development starting in 2018, have positioned VSG to inherit and evolve OSG's principles for high-performance applications. Communication within the community historically relied on mailing lists like osg-users, which grew to over 1,700 subscribers by the mid-2000s, enabling discussions on technical challenges and enhancements. Today, these interactions occur primarily through , supplemented by archived resources on the project's website, fostering a supportive environment for developers in visual simulation and related fields. The ecosystem is enriched by accessible tools and resources, including the OpenSceneGraph Quick Start Guide, a concise programming introduction covering basics and essentials. Example applications within the repository demonstrate practical usage, from simple viewers to complex renderings, aiding newcomers in building and testing scenes. Language bindings extend accessibility, with PyOSG providing wrappers for core OSG libraries to enable scripting and integration in dynamic environments. Similarly, osgSWIG generates bindings via the Simplified Wrapper and Interface Generator, allowing seamless incorporation of OSG functionality into Java-based applications. OpenSceneGraph is licensed under the OpenSceneGraph Public License (OSGPL), a modified version of the GNU Lesser General Public License that permits static linking and encourages both open-source and commercial adoption by relaxing certain distribution requirements. This permissive approach has sustained broad usage since the project's inception in the early 2000s. In contrast, VulkanSceneGraph adopts the , promoting even greater flexibility for redistribution and modification while incorporating 2.0 elements for specific Vulkan extensions.

References

  1. [1]
    OpenSceneGraph
    ### Summary of OpenSceneGraph
  2. [2]
    Features - openscenegraph.github.com
    The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, ...Missing: official | Show results with:official
  3. [3]
    OpenSceneGraph - high-performance open-source 3D graphics toolkit
    OpenSceneGraph is an OpenGL-based high performance 3D graphics toolkit for visual simulation, games, virtual reality, scientific visualization, and modeling.Missing: official | Show results with:official
  4. [4]
    History - openscenegraph.github.com
    The project began life as the scene graph component of Hang Gliding Simulator developed by Don Burns. In 1999 Robert Osfield collaborating on the Don's ...
  5. [5]
    [PDF] OpenSceneGraph
    Brief History. 1998: Started as hobby project by Don Burns. 1999. Robert Osfield joined the team. Code became open source. 2000: Development gets serious.
  6. [6]
    OpenSceneGraph - Wikipedia
    External links · www.openscenegraph.org - official website for the project · AlphaPixel OSG Binaries - Windows, Mac and Linux x86 and x64 precompiled binaries.
  7. [7]
    Home - openscenegraph.github.com
    The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual ...
  8. [8]
    [PDF] OpenSceneGraph Quick Start Guide - ITN
    Chapter 1, An Overview of Scene Graphs and OpenSceneGraph, opens with a brief history of OSG's origins, followed by instructions for obtaining and installing ...
  9. [9]
    OpenSceneGraph git repository - GitHub
    Welcome to the OpenSceneGraph (OSG). For information on the project, in-depth details on how to compile and run libraries and examples, see the documentation ...OpenSceneGraph · Issues 107 · Discussions · Actions
  10. [10]
    OpenSceneGraph - FlightGear wiki
    Dec 19, 2024 · OpenSceneGraph (OSG) is an open source 3D graphics application programming interface, used by FlightGear since version 1.9.0 (2008).
  11. [11]
    OpenSceneGraph - GRASS-Wiki - OSGeo
    Apr 19, 2011 · The OpenSceneGraph (OSG) is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, ...<|control11|><|separator|>
  12. [12]
    [PDF] OpenSceneGraph 3.0 - Beginner's Guide
    OpenSceneGraph itself is the world's leading scene graph API, and has been written by, and to fulfil the needs of, professional graphics application developers.
  13. [13]
    The Birth and development of OSG - Packt Subscription
    The OpenSceneGraph project was initiated as an avocation by Don Burns in 1998. He used to work for SGI and is a hang-gliding enthusiast.Missing: origins | Show results with:origins
  14. [14]
    [PDF] OpenSceneGraph
    In september. 1999 the source code was open sourced, and the openscenegraph.org website was born, with Robert taking over as project lead and Don remaining ...
  15. [15]
    Copyright : Questing (25.10) : openscenegraph package : Ubuntu
    ... 1999 ... This library is free software; you can redistribute it and/or modify it under the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or later ...
  16. [16]
    OpenSceneGraph Professional Services - Overview, News & Similar ...
    OpenSceneGraph Professional Services, founded by project lead Robert Osfield in April 2001, is based in Callander, Perhshire, Scotland, and provides ...
  17. [17]
    Features - openscenegraph.github.com
    This has allowed the scene graph to be rapidly ported to a wide range of platforms - originally developed on IRIX, then ported to Linux, then to Windows, then ...<|control11|><|separator|>
  18. [18]
    OpenSceneGraph Quick Start Guide
    The osg-users email list membership continues to grow at a phenomenal pace, as Figure 1-1 illustrates. When this book went to press, the osg-users email list ...
  19. [19]
    OpensceneGraph 2.0 released - The Khronos Group Inc
    Jun 28, 2007 · OpenSceneGraph 2.0 release introduces a new multi-threaded, multi-gpu viewer library which integrate with a wide range of windowing toolkits ...
  20. [20]
    Building OpenSceneGraph for Android [3.0-3.0.1]
    Jun 5, 2012 · OSG for Android uses OpenGL ES 1.X/2.0. There are features present in OpenGL that doesn't exist in OpenGL ES: http://www.khronos.org/opengles/ ...Missing: .osgb
  21. [21]
    OpenSceneGraph-3.4 release
    Jul 20, 2015 · OpenSceneGraph 3.4 release introduces shader composition, new osgUI library, displacement mapping, volume rendering, lua scripting support ...
  22. [22]
    openscenegraph · Anitya - Release-Monitoring.org
    Versions ; 3.6.5, 2020-01-31 17:31 ; 3.6.5-rc3, 2021-04-10 20:34 ; 3.6.5-rc2, 2021-04-10 20:34 ; 3.6.5-rc1, 2021-04-10 20:34.<|separator|>
  23. [23]
    OpenSceneGraph: AUTHORS.txt | Fossies
    1 OpenSceneGraph Library 3.6.4 2 3 570 Contributors: 4 5 Firstname Surname 6 ----------------- 7 Robert Osfield 8 Don Burns 9 Stephan Huber 10 Paul Martz 11 ...
  24. [24]
    OpenSceneGraph
    The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual ...Missing: history | Show results with:history<|control11|><|separator|>
  25. [25]
  26. [26]
    2023 Recap and 2024 Plans for OpenSceneGraph and ... - GitHub
    ... releases between March and August taking us from VulkanSceneGraph-1.0.3 to 1.0.9. These releases included lots of bug fixes, refinements and new features.
  27. [27]
    osgDB::readNodeFile and rendering memory leak ? #1357 - GitHub
    Feb 10, 2025 · ... OpenSceneGraph it's pre-deccessor is like OpenGL just in maintenance mode. I wouldn't recommend using OpenSceneGraph for new applications ...
  28. [28]
    Plans for OpenSceneGraph master, 3.6.x, 3.8 and beyond #1176
    Dec 5, 2022 · I will release a 1.0 version based on OpenSceneGraph 3.6.5 first. And then try to make the underlying module compatible with VSG if possible.
  29. [29]
    vsg-dev/VulkanSceneGraph: Vulkan & C++17 based Scene Graph ...
    VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan graphics/compute API.
  30. [30]
    Siggraph2019 OSG VSG Presentation - YouTube
    Jul 31, 2019 · ... 2019 Bird of Feature Presentation for the OpenScneneGraph and VulkanSceneGraph projects ... Robert Osfield•2.4K views · 9:11. Go to channel · NYC ...Missing: introduction | Show results with:introduction
  31. [31]
  32. [32]
    Features | VulkanSceneGraph - GitHub Pages
    C++ classes that encapsulate Vulkan Graphics and Compute C API in robust and convenient form, with robust resource management, including serialization support.
  33. [33]
    vsg-dev/osg2vsg: Adapter library for converting ... - GitHub
    osg2vsg is a small utility library with tools that convert OpenSceneGraph images and 3D models into VSG/Vulkan equivalents.Missing: migration vsgEarth
  34. [34]
    Announcing vsgEarth - Google Groups
    Sep 2, 2022 · vsgEarth is a prototype of a port of osgEarth that uses VSG instead of Open Scene Graph for rendering. Rather than completely rewrite osgEarth to use VSG, ...OpenSceneGraph/osgEarth vs VulkanSceneGraph/vsgpagedlodosg2vsg, vsgXchange and OpenSceneGraph/VulkaSceneGraph ...More results from groups.google.com
  35. [35]
    timoore/vsgEarth: osgEarth on VSG - GitHub
    vsgEarth is a prototype of osgEarth that renders using Vulkan and the Vulkan Scene Graph (VSG). Instead of than being a complete reimplementation of osgEarth.Missing: ported | Show results with:ported
  36. [36]
    [PDF] OpenSceneGraph Reference Manual
    However, much of text content comes directly from comments within the source code, written by Robert Osfield and other OSG contributors. The editors have ...
  37. [37]
    OpenSceneGraph-2.9.6 developer release tagged
    Updated 3DS plugin now with support for writing .3ds files. Http support in ... "Here is a little fix for the FFmpeg plugin. Previously the path
  38. [38]
    3D Interoperability for VR et AR around OpenSceneGraph
    Practical Applications and Use Cases. OpenSceneGraph finds applications in many fields requiring advanced 3D visualization and interoperability with CAD data:.
  39. [39]
    Collada - openscenegraph.github.com
    Feb 6, 2013 · The OSG Collada plugin depends on the Open Source Collada DOM library. The current version of the DOM is 2.2. It can build a library for Collada ...Missing: format loaders
  40. [40]
    osgPlugins - openscenegraph.github.com
    There are 45 plugins in the core OpenSceneGraph distribution, and these provide the support for reading and writing both native and 3rd party file formats.
  41. [41]
    cedricpinson/osgjs: Javascript Implementation of ... - GitHub
    OSGJS is a WebGL framework based on OpenSceneGraph concepts. It allows an individual to use an “OpenSceneGraph-like” toolbox to interact with WebGL via ...
  42. [42]
    OSG.JS - Cedric Pinson
    OSGJS is a WebGL framework based on OpenSceneGraph concepts. It allows an individual to use an OpenSceneGraph-like toolbox to interact with WebGL via ...
  43. [43]
    OpenThreads - A cross-platform, lightweight C++ thread API
    This library is intended to provide a minimal & complete Object-Oriented (OO) thread interface for C++ programmers.<|separator|>
  44. [44]
    Optimizer options - openscenegraph.github.com
    Optimize State in the scene graph by removing duplicate state, replacing it with shared instances, both for StateAttributes and whole StateSets. The optimizer ...Missing: performance | Show results with:performance
  45. [45]
    OpenSceneGraph: Class List - GitHub Pages
    ▻Nosg, The core osg library provides the basic scene graph classes such as Nodes, State and Drawables, and maths and general helper classes ; CAlphaFunc ...
  46. [46]
    OpenSceneGraph: osgViewer::Viewer Class Reference
    Convenience method for setting up the viewer so it can be used embedded in an external managed window. Returns the GraphicsWindowEmbedded that can be used by ...
  47. [47]
    FindosgProducer — CMake 4.1.1 Documentation
    The osgProducer library has been removed from the OpenSceneGraph toolkit in early OpenSceneGraph versions (pre 1.0 release) and replaced with osgViewer. Its ...
  48. [48]
    OpenSceneGraph: osgUtil Namespace Reference
    ### Summary of Key Utility Classes in `osgUtil` for Scene Manipulation
  49. [49]
    OpenSceneGraph: osgViewer::GraphicsWindow Class Reference
    GraphicsWindow adds the event queue on top of the GraphicsContext, thereby adding a mechanism for adapting Windowing events as well as basics graphics context ...
  50. [50]
    OpenSceneGraph: osgAnimation Namespace Reference
    ### Summary of Key Features and Functionalities of the osgAnimation Library
  51. [51]
    OpenSceneGraph: osgFX Namespace Reference - GitHub Pages
    The osgFX library is a NodeKit that extends the core scene graph to provide a special effects framework. osgFX's framework allows multiple rendering techniques ...Missing: documentation | Show results with:documentation<|separator|>
  52. [52]
    OpenSceneGraph: osgTerrain::Terrain Class Reference
    Terrain provides a framework for loosely coupling height field data with height rendering algorithms. This allows TerrainTechniques to be plugged in at runtime.
  53. [53]
    OpenSceneGraph: osgParticle::ParticleSystem Class Reference
    The heart of this class library; its purpose is to hold a set of particles and manage particle creation, update, rendering and destruction.
  54. [54]
    OpenSceneGraph: osgManipulator/Command File Reference
    The osgManipulator library is a NodeKit that extends the core scene graph to support 3D interactive manipulators. Macros. #define, OSGMANIPULATOR_COMMAND 1 ...
  55. [55]
    OpenSceneGraph: osgSim Namespace Reference
    The osgSim library is a NodeKit that extends the core scene graph to support nodes and drawables that specific to the visual simulation.Missing: documentation | Show results with:documentation
  56. [56]
    OpenSceneGraph: osgText/Text File Reference - GitHub Pages
    The osgText library is a NodeKit that extends the core scene graph to support high quality text. Macros. #define, OSGTEXT_TEXT 1. Macro Definition Documentation ...
  57. [57]
    FlightGear history
    In 2008, version 1.9.0 of FlightGear included a major change from PLIB to OSG, which caused the temporarily loss of some features like 3D clouds and shadows, ...
  58. [58]
    [PDF] Assessing Dual Sensor Enhanced Flight Vision Systems to Enable ...
    The MMWR simulation was created by Unisys Corp under contract to NASA Langley. It simulates a MMWR. (30-94 GHz bandwidth) using OpenSceneGraph. The MMWR ...
  59. [59]
    Team 2. Boeing - capstone.cse.msu.edu
    The Sparse Virtual Texturing project is implemented as an extension for OpenSceneGraph, and will be integrated into Boeing Modeling & Simulation Visual ...
  60. [60]
    [PDF] The Boeing Company - O-Show for Simulation Software
    called OpenSceneGraph and is used to render a graphical representation of the people, places, and paths of our simulation. Michigan State University. Team ...
  61. [61]
    Delta3D: A Complete Open Source Game and Simulation Engine for ...
    Delta3D, the open source game and simulation engine built for military training, is continuing to be improved to meet the requirements of the military users ...
  62. [62]
    delta3d Open Source Engine download | SourceForge.net
    Rating 4.5 (15) · Free · GameDownload delta3d Open Source Engine for free. Sorry this project is no longer being supported. This project is not currently being supported but feel free ...
  63. [63]
    vtlib library documentation - Virtual Terrain Project
    Overview. vtlib is a scene graph library built on top of OpenSceneGraph and the vtdata library which handles many kinds of geospatial data.
  64. [64]
    TerrainView - openscenegraph.github.com
    TerrainView is the free 3D viewer of ViewTec for interactive visualization of 3D data. TerrainView supports the most common 3D formats.Missing: oil gas industry
  65. [65]
    Oil & Gas - ViewTec
    ViewTec provides the advanced 3D visualization product TerrainView for the Oil and Gas Industry to plan, design and monitor sites, infrastructure and ...Missing: OpenSceneGraph | Show results with:OpenSceneGraph
  66. [66]
    openscenegraph/OpenSceneGraph
    - **Summary**: The provided content is a partial GitHub page snippet for OpenSceneGraph issues. It lacks specific issue data, such as the number of open issues or their focus (e.g., maintenance). No actionable details are available as of November 2025.
  67. [67]
    OpenSceneGraph · Discussions - GitHub
    Explore the GitHub Discussions forum for openscenegraph OpenSceneGraph. Discuss code, ask questions & collaborate with the developer community.
  68. [68]
    OpenSceneGraph Discussion Forum now live, will replace osg ...
    OpenSceneGraph Discussion Forum now live, will replace osg-users google group going forward ; Robert Osfield · Nov 20, 2022, 8:17:22 PM11/20/22 ; Daniel Trstenjak.Missing: transition | Show results with:transition
  69. [69]
    Robert Osfield robertosfield - GitHub
    VulkanSceneGraph & OpenSceneGraph Project Lead. Provides VSG & OSG Training, Bespoke Development and Support services. 193 followers · 1 following.
  70. [70]
    High-level APIs | vsgTutorial - GitHub Pages
    It was clear to OpenSceneGraph project lead Robert Osfield that a new scene graph built for Vulkan using modern C++ would be the best choice for exposing ...Missing: contributors | Show results with:contributors
  71. [71]
    Quick Start Guide - openscenegraph.github.com
    Apr 25, 2012 · This book is a concise introduction to OpenSceneGraph (OSG)—the open source, cross-platform scene graph application programmer interface ...Missing: ecosystem bindings
  72. [72]
    Python binding for OpenSceneGraph. download | SourceForge.net
    Apr 17, 2013 · Download Python binding for OpenSceneGraph. for free. PyOSG is a python wrapper for the OpenSceneGraph. Version number corresponds to the ...Missing: osgPy | Show results with:osgPy
  73. [73]
    osgSWIG - SWIG based bindings for OpenSceneGraph | technotecture
    Feb 8, 2008 · Starting with version 2.0 the osgSWIG binding scripts are licensed under the terms of a liberal MIT license. Earlier versions were licensed ...Missing: initial | Show results with:initial
  74. [74]
    The OpenSceneGraph Public License
    The OpenSceneGraph is protected by Copyright, and is licensed as Open Source, so the source code is freely available, modifiable and redistributable.Missing: 1999 | Show results with:1999