We are thrilled to announce the release of OPOSSUM 0.8.0! For those new to the project, OPOSSUM stands for Open-Source Optic Simulation System and Unified Modeler.
This release marks a significant expansion of OPOSSUM’s simulation capabilities. Version 0.8.0 introduces two major new subsystems — a complete laser amplifier model and a fully integrated material catalog — alongside a wave of GUI refinements that make the node editor faster and more expressive to use. Together, these additions push OPOSSUM further toward its goal of modelling real-world high-power laser systems end to end.
Please note that despite these major steps forward, the software is still considered experimental and is currently not recommended for critical production use.
Laser Amplifier and Gain Medium
The centrepiece of this release is a complete, physics-based laser amplification model integrated directly into the OPOSSUM simulation core:
Small-Signal Gain Amplification: Rays passing through a designated volume node can now be amplified using a monochromatic small-signal gain model. The implementation covers all major simulation modes — ray tracing, energy analysis, ghost-focus analysis, multi-pass configurations, and double-pass (folded) geometries — so gain is correctly accounted for across complex beam paths.
Inversion Field and Exact Voxel Walk: Each active volume node carries an InversionField, a three-dimensional grid that tracks the population inversion across the medium’s body. Ray–medium interaction is computed using an exact Amanatides–Woo voxel walk, giving per-cell path lengths and allowing the gain integral to be evaluated precisely along each ray chord. Host-material absorption is applied simultaneously with the gain, so propagation through a real gain medium is modelled in one consistent step.
Pump Scenarios: The gain state of a medium is prepared by configurable pump scenarios. A full CRUD interface in the GUI lets you define pump sources, assign transverse and longitudinal pump profiles (including analytic super-Gaussian shapes), and compose multi-scenario pump configurations. Each analysis run can select the pump scenarios it uses independently, enabling side-by-side comparison of different pumping conditions on the same optical model.
Examples and Documentation: A runnable two-scenario amplifier chain example is shipped with the installer bundle. The user handbook has been extended with dedicated concept, reference and how-to pages covering small-signal gain, inversion fields, and gain fluence.
Material System and opossum_registry
The second major new subsystem is a full material management workflow built around a new opossum_registry back-end:
MaterialEditor & MaterialCatalog: Two new GUI components let you create, edit, and browse optical materials directly within the application. The MaterialCatalog opens as a modal dialog giving a searchable overview of all available materials. Materials can be versioned, overwritten, and deleted from the catalog, and the catalog location — as well as an optional remote catalog URL — is configurable in the application settings. The versioning system is deliberately designed with long-term reproducibility in mind: because every material entry carries an explicit version identifier, a simulation result can always be tied back to the exact material data it was computed with. This makes it straightforward to verify a previous result independently, or to adapt it to a new scenario with confidence about what changed.
Absorption Models: The AbsorptionEditor supports Lambert–Beer absorption with both a constant extinction coefficient and a fully spectral model. An ExtinctionCoefficient editor lets you enter wavelength-dependent absorption data point by point.
Material Assignment: Volume nodes now carry a material property. Once a material is assigned, its refractive index and absorption coefficient are used automatically during ray propagation, removing the need to enter these values manually on each node.
Per-Analyzer Ambient Medium: Building on the new material infrastructure, the ambient medium surrounding the optical system is no longer a single global setting. Each analyzer can now be given its own ambient material, making it straightforward to compare the same model under different environmental conditions within a single simulation run.
Persistence: Materials associated with a model are saved inside the .opm file and are restored automatically when the file is loaded, so a shared model file carries all the material definitions it needs.
Node Editor and Workflow Refinements
Several improvements make the day-to-day experience in the node editor smoother:
Named Analyzers: Analyzers can now be given descriptive names, making it easy to tell apart multiple analysis runs at a glance in the sidebar and in reports.
Default Wavelength: A default wavelength can be set in the application settings. Newly added light sources are pre-configured with this wavelength, reducing the number of manual edits needed when setting up a model.
Tab Navigation: Closing the currently active group tab now navigates back to the most recently visited tab rather than defaulting to the root. The graph view editor stays mounted across tab switches, eliminating the re-centering that previously occurred every time you switched between open group tabs.
Empty Property Menus Hidden: Nodes that have no configurable properties no longer show an empty property panel, keeping the interface clean.
Improved File Dialogs: File chooser dialogs in the settings panel now open at a sensible starting path rather than at the system root.
Core Improvements and Bug Fixes
Robust OPM Loading: Reading model files has been made more fault-tolerant. Files with slightly malformed or unknown fields are now accepted and handled gracefully rather than causing a hard error.
CITATION.cff: A machine-readable citation metadata file has been added to the repository root, making it straightforward for users and tools to cite OPOSSUM correctly. Funding information for THRILL (EU grant agreement No 101095207) and LASE-FUSE (BMFTR, funding reference 13F1041) is now surfaced consistently in the changelog and release notes.
Selected bug fixes since 0.7.3:
- Fixed a severe serialization error in
OpmDocumentthat could corrupt saved model files - Auto-layout after loading an
.opmfile is now stable; group tab content is also laid out automatically when the tab is first opened - Nodes adjacent to a directly connected group are now correctly absorbed on drag-and-drop
- The canvas editor area is properly restored after a document is closed, so newly added nodes land at the canvas centre
- Keyboard modifier state (Ctrl/Shift) is now reset correctly when the application window loses focus
By the Numbers
To ensure stability as our codebase continues to scale, here is a look at OPOSSUM’s development metrics since the 0.7.3 release:
Codebase Size: More than 125.000 lines of rust code (98.000 lines pure code).
Test Suite: More than 1400 unit and integration tests.
Development Activity: 315 commits pushed since version 0.7.3, bringing the total on the main branch to more than 3,300 commits.
Tickets Resolved: More than 25 pull requests merged since version 0.7.3, resolving issues across the amplifier model, the material system, GUI workflow, and stability.
Download
You can download the new version 0.8.0 directly from GitHub
We look forward to your feedback as we continue to evolve OPOSSUM!



