OPOSSUM 0.7.2: Advancing the Graphical Interface and Simulation Flexibility

We are thrilled to announce the release of OPOSSUM 0.7.2! For those new to the project, OPOSSUM stands for Open-Source Optic Simulation System and Unified Modeler. You can read more about the project’s mission and architecture on the project page.

Following our major milestone of introducing a graphical user interface (GUI) in version 0.7.0, this update focuses heavily on bridging the gap between our Rust core library and the visual environment. We enabled core features directly inside the frontend which were inaccessible before, enhanced simulation flexibility, and polished the workflow within the node editor.

Please note that despite these major steps forward, the software is still considered experimental and is currently not recommended for critical production use.

Expanding the GUI: Group Nodes and Port Configuration

The cornerstone of our visual evolution in this release is bringing advanced core functionalities straight to the user interface:

  • Full Group Node Support: You can now fully create and configure Group Nodes directly within the graphical interface. This powerful capability was previously restricted to the core library but is now completely accessible in the frontend. This allows setting up your optical system with logical or physical sub-system grouping to keep the project well structured.
  • Frontend Port Properties: Essential input and output port properties—such as Coating, Aperture, and LIDT (Laser-Induced Damage Threshold)—can now be configured directly within the GUI frontend, making component customization significantly easier for the end user.
  • Undo & Redo Support: One of the major workflow improvements in this release, the graphical interface now features a fully integrated undo and redo system. This allows you to easily revert unwanted actions and quickly restore previous states throughout the UI, providing a more flexible and efficient workflow.

Architectural Shift: Decoupling Light Sources for Flexible Simulations

We have restructured how light sources are defined within your optical setups to allow for more advanced and versatile analysis types:

  • SourcePort Nodes & Analyzer Configuration: Light source definitions have moved out of the traditional source nodes and are now integrated directly into the respective Analyzer Node configurations.
  • Placeholder Mechanics: The old source node has been replaced by a SourcePort Node, which acts as a structural placeholder or marker indicating where the source definition will be applied.
  • Multi-Scenario Simulation: This layout enables you to simulate a single optical model using multiple different light source definitions across separate Analyzer Nodes. For instance, you can effortlessly test the exact same lens system with a collimated source and a point source simultaneously without restructuring your graph.

Node Editor Refinement and UX Enhancements

We have smoothed out the visual workflow with several key updates to the Node Editor:

  • Block Selection & Movement: Multiple nodes can now be selected simultaneously and moved across the workspace as a unified block.
  • Cleaner Connections: Wire connections linked to Reference Nodes no longer display unnecessary length annotations, keeping your graph clean and readable.
  • Optimized Autolayout: The autolayout algorithm has been significantly improved to deliver cleaner, more predictable, and better-structured node arrangements automatically.

Core Improvements and Enhanced Robustness

Under the hood, we have optimized code structures, expanded features, and squashed critical bugs:

  • Persistent Report Directories: Handling of analysis report directories has been greatly improved. The base report folder path is now saved directly in the program configuration, meaning you no longer have to re-specify it every time the application restarts.
  • Wavefront Tilt Removal: The Wavefrontmonitor node now features an option to automatically subtract wavefront tilt upon request.
  • Robust CSV Importing: The import engine for loading spectra via CSV files is now significantly more robust, seamlessly accepting almost any arbitrary delimiter.
  • Documentation Expansion: The user manual and documentation have been expanded across many sections, though it remains an active work in progress.

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.0 release:

  • Codebase Size: Growing rapidly with more than 89,000 lines of Rust code.
  • Development Activity: Over 600 commits pushed since version 0.7.0.
  • Tickets Resolved: More than 140 tickets successfully closed.

Download

You can download the new version 0.7.2 directly from GitHub: https://github.com/opossum-labs/opossum/releases#release-0.7.2

We look forward to your feedback as we continue to evolve OPOSSUM!

Subscribe to our newsletter

For regular updates on THRILL, sign up for our newsletter.