<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software | MReye research group - Leiden UMC</title><link>https://mreye.nl/open-science/software/</link><atom:link href="https://mreye.nl/open-science/software/index.xml" rel="self" type="application/rss+xml"/><description>Software</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><image><url>https://mreye.nl/media/icon_hu_72bdd42caf9e9328.png</url><title>Software</title><link>https://mreye.nl/open-science/software/</link></image><item><title>Visisipy</title><link>https://mreye.nl/open-science/software/visisipy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/visisipy/</guid><description>&lt;p&gt;&lt;code&gt;Visisipy&lt;/code&gt; (pronounced like &amp;ldquo;Mississippi&amp;rdquo;, but with a V) is a Python library for optical simulations of the eye. It provides a uniform, backend-agnostic interface to define and build eye models, including ready-to-use models such as the Navarro eye, and to run common clinically relevant analyses on them, such as off-axis refraction calculations, without requiring in-depth knowledge of the underlying ray-tracing engine. A simplified version of Visisipy can even be run directly from your browser.&lt;/p&gt;
&lt;p&gt;Visisipy follows four design goals: a uniform interface to define, build and analyse different types of eye models using clinically relevant abstractions; a growing collection of ready-to-use models, such as the Navarro and Gullstrand eyes, that can be customised as needed; accessible, one-line analyses for clinically relevant outcomes; and a modular design that supports multiple ray-tracing backends, both commercial (OpticStudio, through &lt;a href="https://mreye.nl/open-science/software/zospy/"&gt;ZOSPy&lt;/a&gt;) and open-source (&lt;a href="https://mreye.nl/open-science/software/optiland/"&gt;Optiland&lt;/a&gt;)). The project is developed as a community-driven effort by the MReye group, and welcomes contributions and suggestions for new models or analyses through GitHub discussions.&lt;/p&gt;</description></item><item><title>pyROT</title><link>https://mreye.nl/open-science/software/pyrot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/pyrot/</guid><description>&lt;p&gt;&lt;code&gt;pyROT&lt;/code&gt; (Python RayOcular Tools) complements RayOcular, the eye-specific module of RaySearch&amp;rsquo;s RayStation treatment planning system. It provides vendor-agnostic tools to determine the best-fitting patient-specific eye models in Python, together with scripts that can be run from within RayStation to apply these models directly in ocular proton therapy planning. The project also aims to provide a platform to exchange methods and scripts within the ocular proton therapy community.&lt;/p&gt;
&lt;p&gt;pyROT contains a Python package that performs all fitting and model calculations and is actively used in research workflows. Most of the codebase is vendor agnostic; interactions with RayOcular and RayStation are isolated in the &lt;code&gt;RO_connect&lt;/code&gt; module. In addition, pyROT includes a set of scripts that run these functions directly from within RayStation, and is currently validated for RayStation 2025. The fitting methods are described in PORS paper, and the toolbox is already being used in multiple treatment-planning studies currently in preparation.&lt;/p&gt;</description></item><item><title>PAROS</title><link>https://mreye.nl/open-science/software/paros/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/paros/</guid><description>&lt;p&gt;&lt;code&gt;PAROS&lt;/code&gt; (PARaxial Optical fundus Scaling) calculates the true magnification of fundus photographs from the optical characteristics of the patient&amp;rsquo;s eye and fundus camera, correcting for the scaling errors that otherwise complicate quantitative measurements on fundus images. The method, its validation and a first implementation are described in &lt;a href="https://mreye.nl/publications/articles/2024/2024-pors-iovs-43/"&gt;Pors et al. (2024)&lt;/a&gt;. A basic version of PAROS can be tried &lt;a href="https://demo.mreye.nl/paros" target="_blank" rel="noopener"&gt;online&lt;/a&gt; without installing anything.&lt;/p&gt;
&lt;p&gt;The package provides two main building blocks: a calibration notebook that derives camera-specific constants from phantom-eye measurements, and a magnification notebook that combines these constants with a patient&amp;rsquo;s biometry to calculate the true scaling of their fundus photographs. Camera calibration constants contributed by other centres can be added to a shared lookup table, so PAROS can gradually be extended to more fundus camera models. Because the current implementation was calibrated for the camera and software used at the MReye group&amp;rsquo;s center, we recommend repeating the calibration step for other setups before using PAROS for your quantitative measurements.&lt;/p&gt;</description></item><item><title>ZOSPy</title><link>https://mreye.nl/open-science/software/zospy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/zospy/</guid><description>&lt;p&gt;&lt;code&gt;ZOSPy&lt;/code&gt; wraps the &lt;a href="https://www.ansys.com/products/optics/ansys-zemax-opticstudio" target="_blank" rel="noopener"&gt;Ansys (Zemax) OpticStudio&lt;/a&gt; API in a more pythonic, well-documented interface, hiding the often verbose .NET-based ZOS-API behind readable, autocompletable function calls. This allows researchers to script and share optical ray-tracing simulations as ordinary Python code or Jupyter notebooks, instead of relying on manual, hard-to-reproduce interaction with the OpticStudio GUI.&lt;/p&gt;
&lt;p&gt;Beyond the core API wrapper, ZOSPy bundles ready-made functions for common OpticStudio analyses, solvers and API constants, together with autocomplete support and a unit-test suite that guards against regressions when OpticStudio itself is updated. The package is developed by the MReye group with funding from an &lt;a href="https://mreye.nl/news/2013-12-12-open-science-grant-for-mreye-scientists/"&gt;NWO Open Science grant&lt;/a&gt;, and is used internally for ray-tracing studies of intraocular lens design and ocular radiotherapy planning. It is also supported by many contributors outside our group, spanning multiple fields including optics research and astronomy.&lt;/p&gt;</description></item><item><title>Optiland</title><link>https://mreye.nl/open-science/software/optiland/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/optiland/</guid><description>&lt;p&gt;&lt;code&gt;Optiland&lt;/code&gt; is an open-source optical design platform in Python for both classical lens systems and modern computational optics. It provides an object-oriented interface to build refractive and reflective systems, trace rays through multi-surface assemblies including aspheric and freeform surfaces, and analyse paraxial properties, wavefront error, point-spread functions and MTFs. Optimization can use either traditional merit functions or autograd-enabled, differentiable backends through PyTorch, and systems can be visualised interactively in 2D and 3D.&lt;/p&gt;
&lt;p&gt;Within the MReye group, Optiland is used as the open-source ray-tracing backend for &lt;a href="https://mreye.nl/open-science/software/visisipy/"&gt;Visisipy&lt;/a&gt;, as an alternative to the commercial OpticStudio backend. We contribute improvements back to the project as we encounter them in our own use, rather than maintaining a separate fork.&lt;/p&gt;</description></item><item><title>OPT Tumour Models</title><link>https://mreye.nl/open-science/software/opt-tumourmodels/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/opt-tumourmodels/</guid><description>&lt;p&gt;&lt;code&gt;OPT Tumour Models&lt;/code&gt; provides Python scripts to generate polynomial tumour models, as commonly used in ocular proton therapy planning, from 3D tumour delineations. Starting from a delineated tumour contour, the tumour base and thickness are extracted automatically, after which the optimal shape-factor of the parametric height model is determined. The resulting geometric model can be compared back to the original delineation to evaluate how well it represents the true tumour shape.&lt;/p&gt;
&lt;p&gt;The repository also includes a worked example notebook that generates tumour models with different shape factors for an example delineation, together with scripts to produce variations of the standard model with added thickness or an expanded tumour base. The method and its validation are described in a manuscript by Klaassen, Rasch and Beenakker that is currently under review; we will link the publication here once it is available.&lt;/p&gt;</description></item><item><title>stl2mask</title><link>https://mreye.nl/open-science/software/stl2mask/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/stl2mask/</guid><description>&lt;p&gt;&lt;code&gt;stl2mask&lt;/code&gt; is a command-line tool that converts 3D mesh segmentations (STL, OBJ) to binary mask images (e.g. NIfTI, MHA) and back. Given a mesh and a reference image that defines the output image space, &lt;code&gt;stl2mask&lt;/code&gt; builds a distance volume from the mesh and thresholds it to produce a binary mask; the reverse &lt;code&gt;mask2stl&lt;/code&gt; command turns a binary mask back into a mesh using the Marching Cubes algorithm.&lt;/p&gt;
&lt;p&gt;The tool grew out of the need to move tumour and organ delineations between mesh-based modelling tools, such as &lt;a href="https://mreye.nl/open-science/software/opt-tumourmodels/"&gt;OPT Tumour Models&lt;/a&gt;, and the voxel-based image formats used in treatment planning systems, without manually re-implementing this conversion for every project. It is installed as a standalone CLI via &lt;code&gt;pipx&lt;/code&gt; or &lt;code&gt;uv tool install&lt;/code&gt;, so it can be used independently of any particular Python environment.&lt;/p&gt;</description></item><item><title>VFPy</title><link>https://mreye.nl/open-science/software/vfpy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/vfpy/</guid><description>&lt;p&gt;&lt;code&gt;VFPy&lt;/code&gt; supports automated digitalization of ophthalmic visual field test results, such as those produced by the Humphrey Field Analyzer, using optical character recognition (OCR). It reads a scanned printout or exported DICOM file, extracts the numerical test grid, and provides a basis for further automated analyses of visual field data that would otherwise need to be transcribed by hand.&lt;/p&gt;
&lt;p&gt;The project relies on Tesseract OCR together with Ghostscript and ImageMagick for image preprocessing, alongside several Python packages for image handling and DICOM parsing. It has not been actively developed since 2022; it is shared as-is in case it is useful as a starting point for similar visual-field digitalization efforts.&lt;/p&gt;</description></item><item><title>PyZDDE</title><link>https://mreye.nl/open-science/software/pyzdde/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://mreye.nl/open-science/software/pyzdde/</guid><description>&lt;p&gt;&lt;code&gt;PyZDDE&lt;/code&gt; is a Python extension that communicates with Zemax OpticStudio through the Dynamic Data Exchange (DDE) interface, allowing optical design tasks and analyses to be scripted from Python and used in reproducible workflows; while the project is no longer actively maintained, it remains a useful legacy bridge for DDE-based automation in setups that still rely on this interface. Its successor for OpticStudio automation is &lt;a href="https://mreye.nl/open-science/software/zospy/"&gt;ZOSPy&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>