Spirit immediate mode desktop UI

Spirit LogoLogo

The cross-platform imgui desktop user interface provides an alternative to the QT GUI and will eventually replace it.

It can be built by setting the CMake option SPIRIT_UI_USE_IMGUI=ON, see also the build instructions for Unix/OSX and Windows for information on how to build the graphical user interface on your machine.

Note: This GUI is not yet fully fledged and should be regarded as a “preview”

Known Issues:

  • Energies in energy plot are not updating correctly

Physics features

The pysics features are on par with the QT GUI.

Insert Configurations:

  • White noise
  • (Anti-) Skyrmions
  • Domains
  • Spin Spirals

You can manipulate the Hamiltonian as well as simulation parameters and your output file configuration.

You can start and stop simulation and directly interact with a running simulation.

  • LLG Simulation: Dynamics and Minimization
  • GNEB: create transitions and calculate minimum energy paths

By copying and inserting spin systems and manipulating them you may create arbitrary transitions between different spin states to use them in GNEB calculations. Furthermore you can choose different images to be climbing or falling images during your calculation.

Real-time visualisation

The imgui provides the same visualisation capabilities as the QT GUI:

  • Arrows, Surface (2D/3D), Isosurfaces
  • Spins or eff. field
  • Every n’th arrow
  • Spin sphere
  • Directional & position filters
  • Various colourmaps

Additionally, it provides

  • Sphere and dot renderers
  • Individual control over each renderer via a separate widget

Visualisation SettingsVisualisation Settings

Additional features

  • Drag mode: drag, copy, insert, change radius
  • Screenshot
  • Read configuration or chain
  • Save configuration or chain
  • Take a screenshot

How to perform an LLG dynamics calculation

To perform a dynamics simulation, use the “LLG” method and one of the following solvers:

  • Depondt
  • SIB
  • Heun
  • RK4

In this case, parameters such as temperature or spin current will have an effect and the passed time has physical meaning:


How to perform an energy minimisation

The most straightforward way of minimising the energy of a spin configuration is to use the “Minimizer” method and one of the following solvers:

  • VP
  • VP_OSO
  • LBFGS_Atlas


By pressing the “play” button or the space bar, the calculation is started.

How to perform a GNEB calculation

Select the GNEB method and one of the minimisation solvers.

In order to perform a geodesic nudged elastic band (GNEB) calculation, you need to first create a chain of spin systems, in this context called “images”. You can set the chain length directly in the field nex to the start/stop button.

You can also manipulate the chain by copying the current image using ctrl+c (on mac replace ctrl with cmd) and then ctrl+rightarrow/ctrl+leftarrow to insert the copy into the chain and ctrl+v to overwrite the current image. See the help menu for all keybindings.

The GUI will show the length of the chain:

GUI controlsGUI controls

You can use the buttons or the right and left arrow keys to switch between images.

A data plot is available to visualise your chain of spin systems. The interpolated energies become available when you run a GNEB calculation.

Key bindings

Note that some of the keybindings may only work correctly on US keyboard layout.

UI Controls

Effect Keystroke
Show this F1
Toggle Settings F2
Toggle Plots F3
Toggle Debug F4
Toggle \"Dragging\" mode F5
Toggle large visualization F10 / Ctrl+F
Toggle full-screen window F11 / Ctrl+Shift+F
Screenshot of Visualization region F12 / Home
Toggle OpenGL Visualization Ctrl+Shift+V
Try to return focus to main UI Esc

Camera Controls

Effect Keystroke
Rotate the camera around Left mouse / W A S D ( Shift to go slow)
Move the camera around Left mouse / T F G H ( Shift to go slow)
Zoom in on focus point Scroll mouse ( Shift to go slow)
Set the camera in X, Y or Z direction X Y Z ( shift to invert)

Control Simulations

Effect Keystroke
Play/Pause Space
Cycle Method Ctrl+M
Cycle Solver Ctrl+S

Manipulate the current image

Effect Keystroke
Random configuration Ctrl+R
Add tempered noise Ctrl+N
Insert last used configuration Enter


Effect Keystroke
Use more/less data points of the vector field +/-
Regular Visualisation Mode 1
Isosurface Visualisation Mode 2
Slab (X,Y,Z) Visualisation Mode 3 4 5
Cycle Visualisation Mode /
Move Slab , / . ( Shift to go faster)

Manipulate the chain of images

Effect Keystroke
Switch between images and chains
Cut image Ctrl+X
Copy image Ctrl+C
Paste image at current index Ctrl+V
Insert left/right of current index Ctrl+ /
Delete image Del