RIMS Scheme Drawer and Website

Reto Trappitsch
February 8, 2024

Goal of the RIMS Scheme Drawer

  • GUI to easily create a graphical representation of a RIMS scheme
  • Produce a figure that can be published without further editing
  • Allow for common formatting changes
  • Save / load config files for future editing, corrections, ...

What it looks like

And what's the output?

  • Two vertical axes
    • Wavenumber (cm)
    • Energy (eV)
  • Optional title (not shown here)
  • Transitions colored according to wavelength
    • Purple: Third harmonic
    • Blue: Second harmonic
    • Red: Fundamental
  • Levels, states, ...

Behind the scenes

  • Written in python
  • Plotting is done completely with matplotlib
  • GUI is built with qtpy (PyQt or PySide)

Limitations with the current stable version (v2.1.4)

  • GUI and plotting are not separated
  • Only available as installer for easy use
  • Code base is messy

A first look at v3.0

  • This version can already be installed via pipx (or pip if you prefer)
    pipx install rimsschemedrawer
    
  • The exectable script to start the GUI is rimsschemedrawer

What's new in v3.0.0.dev0?

  • GUI and plotting are separated
  • Code base is cleaned up
  • Backwards compatible

What's next?

  • Clean-up of code base
  • GUI release with PyApp for standalone app

Future of the RIMS scheme website

My ideas and proofs-of-concept...

Overview

  • Source code for website hosted in GitHub
  • Website is built with mkdocs and custom python scripts whenever new content is merged into main branch
  • Website is deployed on GitHub Pages

RIMS Schemes

  • Scheme entries are stored in the repository as json files
  • Individual websites for schemes and linking of periodic table is automatically done in python

How the website works (mostly in my mind so far...)

Some proofs-of-concept

What's next?

  1. Define what goes into a scheme page
    • Scheme itself (table and figure)
    • Saturation curves
    • Notes
    • References
    • ...?
  2. Define a format in which schemes are stored
  3. Write the python routines to autogenerate the websites
  4. Define a GitHub issue template for user submissions
  5. Python parser to create scheme files from user submissions
  6. Write a GitHub Action to create PR from user submission