Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ESTHER UI logo

ESTHER UI

Graphical interface for building, running, and reading esther simulations.

PyPI Python License: CeCILL-2.1 Status


Table of contents


Requirements

  • Python ≥ 3.11
  • The esther API, NiceGUI, plotly and numpy (installed automatically as dependencies)
  • A working ESTHER installation
  • A recent web browser

Like the esther API it is built on, this package does not ship the solver itself.

Installation

pip install esther-ui

Builds that need no Python and open in their own window are also available for Windows and Linux: see Standalone builds.


Quick start

esther-ui

The interface opens in a browser tab on http://localhost:8080 (or the next free port up to 8089; ESTHER_PORT sets another one). It only listens on this machine. Launching it again while it runs opens the running one instead of a second, and Ctrl+C in the terminal stops it.

On first launch, open the Config tab, set the esther root, let Auto path fill in the other paths, and save. These settings are esther's own (~/.config/esther/config.toml), shared with the Python API: a configuration made with esther.Config is picked up as is.

What the interface keeps on its own between launches, the tab shown, the runs, the cases and plots open, the appearance, is stored in an esther-nicegui folder of the user's config directory.


Features

Input & run The cases of the input directory as a tree, refreshed as files appear or change. Each case opens in an editor, with completion of the mc_complet keywords, beside a tab for each of its associated files. Save as copies a case with its associated files, Convert switches between TOML and ESTHER's native .txt deck, Validate checks it, and the parametric variants it declares are listed under it. The cases ticked in the tree run side by side, one per CPU core but one.
Log The runs of this launch and of former ones, with their progress, the live log of the one selected and a live plot of its outputs as they are written. A run can be stopped from there, and the overall progress shows behind the tab's title from anywhere in the app.
Output Plot tabs over one or more cases of the output directory, to compare them: spatial profiles at a given time, time series at a given cell, and 2-D maps, split by layer if needed, each axis with its own unit, bounds and scale. Plot styles can be saved as themes, and each plot exported as PNG or its data as CSV.
Data esther's material database, file by file: an editor for each file and a plot of the tables of numbers it holds, on linear or log axes.
Config esther's paths (root, input, output and data directories, mc_complet, executable, documentation), its message channels and units, saved together; the appearance of the interface (System, Light or Dark), applied at once.
Docs The user documentation shipped with ESTHER, searchable, inside the interface.

Standalone builds

Each release comes with a Windows and a Linux build, made with PyInstaller. They need no Python, open in their own window instead of a browser tab, and work the same way otherwise.

System Archive Launch
Windows 10, 11 esther-ui-<version>-windows-x64.zip esther-ui\ESTHER.exe
Linux esther-ui-<version>-linux-x64.tar.gz esther-ui/ESTHER

On Windows the window uses the WebView2 runtime, preinstalled on Windows 11 and on an up-to-date Windows 10.

On Linux (Ubuntu 24.04, Debian 13, Fedora 40 or later), the window is the system's GTK WebKit, which the archive does not include:

sudo apt install libgirepository-2.0-0 gir1.2-gtk-3.0 gir1.2-webkit2-4.1   # Ubuntu, Debian
sudo dnf install webkit2gtk4.1                                             # Fedora

Without it, the build opens in the browser instead.


Development

git clone https://gitlab.com/esther4254519/esther-ui.git
cd esther-ui
python -m venv venv
venv/bin/pip install -e .
venv/bin/python main.py

main.py serves the interface on http://localhost:8080 and reloads it on each change of the sources. NiceGUI only reloads a script: python -m esther_ui, like the esther-ui command, runs without reload.

Path Purpose
main.py Launcher of the sources, reloaded on changes; the script PyInstaller packages
esther_ui/launch.py One app at a time, UTF-8 mode, window or browser tab
esther_ui/page.py The page: header, tabs, and the routes it uses
esther_ui/tab_*.py One module per tab
esther_ui/__main__.py The esther-ui command
packaging/ PyInstaller spec and build script

A standalone build is made on the system it targets:

pip install . --group build
python packaging/build.py

It lands in dist/esther-ui/, archived beside it.

Pushing a version tag (v1.2.3) runs the GitLab pipeline: the package goes to PyPI, its version read from the tag, and the Windows and Linux builds to a release of the tag.


Troubleshooting

  • Firefox crashes during a live run: set gfx.webrender.software to true in about:config.
  • The Linux build opens in the browser: GTK WebKit is missing, see Standalone builds.
  • The Windows build shows nothing: its log is esther.log in %APPDATA%\esther-nicegui.

License

CeCILL v2.1. See LICENSE.

Metadata

Release files for esther-ui 0.1.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esther-ui 0.1.0b1
File Size Uploaded Provenance Actions
esther_ui-0.1.0b1.tar.gz 116.2 kB Without provenance Details for esther_ui-0.1.0b1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for esther-ui 0.1.0b1
File Interpreter ABI Platform Actions
esther_ui-0.1.0b1-py3-none-any.whl Python 3 none any Details for esther_ui-0.1.0b1-py3-none-any.whl

Total release size: 239.1 kB

Release files / esther_ui-0.1.0b1.tar.gz

Download URL esther_ui-0.1.0b1.tar.gz
Size 116.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a5608b5de18649f17006d023fa6f958181f5aa1a30917cc566bc9f37fc59c152
BLAKE2b-256 checksum
How to use checksums
effcf5c9262c61aa0280abbb6cedf9e65a08246517ce26f760a5a10ef2e3d961
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.10

Release files / esther_ui-0.1.0b1-py3-none-any.whl

Download URL esther_ui-0.1.0b1-py3-none-any.whl
Size 122.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa28827daec8f122bed0a99cd8ebeac9841cfe70cb4a1061f9f34ce9496dfdfd
BLAKE2b-256 checksum
How to use checksums
f1653fd6df0c1d273f803a4eff78178a3ab3f432491c9cd04c1a17c4137caaf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.10

Security for esther-ui 0.1.0b1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page