Files
Jungfraujoch/docs/landing/index.html
T
leonarski_f 067f3a7d7b
Build Packages / Create release (push) Successful in 10s
Build Packages / build:portable:macos-arm64:nocuda (push) Successful in 5m7s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m15s
Build Packages / build:portable:linux-x86_64:nocuda (push) Successful in 14m10s
Build Packages / build:portable:linux-x86_64:cuda (push) Successful in 16m52s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 22m24s
Build Packages / build:portable:windows-x86_64:nocuda (push) Successful in 23m30s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 18m58s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 15m11s
Build Packages / build:portable:windows-x86_64:cuda (push) Successful in 27m46s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 19m48s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 21m59s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 27m0s
Build Packages / Generate python client (push) Successful in 30s
Build Packages / Build documentation (push) Successful in 1m32s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 30m20s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 23m52s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 29m40s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 30m50s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 23m11s
Build Packages / Unit tests (push) Successful in 1h31m24s
Build Packages / Validation Battery (push) Successful in 45m14s
docs landing: Rugnux card names synchrotron rotation and XFEL serial data and links the public test-data lists; footer motto removed
The Rugnux card says in passing that it takes a synchrotron rotation sweep or XFEL serial
stills, and ends with one sentence pointing at the two pages that list the public datasets it
is validated on (External test data: over 200 rotation sets, 207 in the open battery manifest;
External test data: serial crystallography: eleven CXIDB entries). The "two mountains, two
railways" line at the foot of the page is dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
(cherry picked from commit 03e4431836a2f4ba816e6d3cdd57cc6ada87b95d)
2026-10-26 16:59:43 +01:00

160 lines
9.6 KiB
HTML

<!doctype html>
<!-- The front page of the documentation site. docs/_ext/jfjoch_downloads.py renders this template
at the end of a Sphinx build (the {{...}} placeholders) into the output root as index.html,
next to the Sphinx pages, so it is served wherever the documentation is: Read the Docs, the
gitea-pages branch and the broker's frontend bundle. The Sphinx home page is documentation.html. -->
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jungfraujoch and Rugnux: X-ray diffraction data, from the detector to merged data and refined structures</title>
<meta name="description" content="Open-source software from the Paul Scherrer Institute: Rugnux processes macromolecular diffraction data with one command, to merged data and, with a model, a refined structure, the Jungfraujoch Viewer shows it, and Jungfraujoch acquires it from JUNGFRAU and EIGER detectors at full speed.">
<link rel="icon" href="_static/jfjoch.png">
<link rel="stylesheet" href="landing.css">
<script>
// Apply the saved theme before the first paint, so a dark page does not flash light.
try { var t = localStorage.getItem("jfj-theme"); if (t) document.documentElement.setAttribute("data-theme", t); } catch (e) {}
</script>
</head>
<body>
<header class="top">
<a class="brand" href="index.html"><img src="_static/jfjoch.png" alt="" width="36" height="33"><span>Jungfraujoch</span></a>
<nav class="top__nav" aria-label="Sections">
<a href="#programs">Programs</a>
<a href="#download">Download</a>
<a href="documentation.html">Documentation</a>
<a href="https://gitea.psi.ch/mx/jungfraujoch">Source</a>
</nav>
<button class="theme-toggle" type="button" aria-label="Switch between light and dark theme" title="Light / dark">
<svg class="theme-toggle__sun" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"><circle cx="12" cy="12" r="4.5" fill="none" stroke="currentColor" stroke-width="2"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M4.9 19.1 7 17M17 7l2.1-2.1" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
<svg class="theme-toggle__moon" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"><path d="M20 15.5A8.5 8.5 0 0 1 8.5 4a8.5 8.5 0 1 0 11.5 11.5z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg>
</button>
</header>
<main>
<section class="hero">
<figure class="hero__art">
<img class="hero__art-light" src="hero_live_light.webp" width="1120" height="848"
alt="A diffraction image beside the placed model in its electron density, over the timeline of the live analysis: the detector lane of an 18 s collection and the Rugnux lane ending 4.9 s after the last image">
<img class="hero__art-dark" src="hero_live_dark.webp" width="1120" height="848" alt="">
<figcaption>Cytochrome C at SLS X10SA: 1800 images at 100&nbsp;Hz, merged and the AlphaFold model placed 4.9&nbsp;s after the last image</figcaption>
</figure>
<div class="hero__text">
<p class="eyebrow">Paul Scherrer Institute &middot; open source</p>
<h1>From the detector to merged data and refined structures.</h1>
<p class="lede">Software for X-ray diffraction data: <strong>Rugnux</strong> takes a stored
dataset from the images to merged data with one command, and with a model on to a refined
structure and maps; the <strong>Viewer</strong> shows what is in it, and
<strong>Jungfraujoch</strong> acquires it from the detector at full speed.</p>
<div class="hero__actions">
<a class="btn btn--primary" href="#download">Download</a>
<a class="btn btn--ghost" href="documentation.html">Read the documentation</a>
</div>
<p class="hero__run"><code>rugnux &lt;diffraction image file&gt;</code><code>rugnux &lt;diffraction image file&gt; &lt;CIF/PDB model file&gt;</code></p>
</div>
</section>
<section class="programs" id="programs">
<div class="programs__grid">
<article class="program">
<p class="program__kicker">Data processing</p>
<h2>Rugnux</h2>
<p>Takes a macromolecular diffraction dataset, a synchrotron rotation sweep or XFEL serial stills, from the
images to merged data: spot finding, indexing, integration, scaling and merging, with the
space group, cell and resolution decided from the data and a report that says on what
evidence. Writes <code>.mtz</code>, <code>.cif</code> and <code>.hkl</code> for the programs
that come next. Given an atomic model it goes on to a refined structure: the model is placed
(as a rigid body or by molecular replacement) and refined, and the maps and the unexplained
difference-density blobs are written beside it. Validated on public data:
<a href="EXTERNAL_TEST_DATA.html">over 200 rotation datasets</a> and
<a href="EXTERNAL_TEST_DATA_STILLS.html">eleven XFEL serial datasets</a>.</p>
<p class="program__meta">Linux &middot; macOS &middot; Windows &middot; command line &middot; fast on an NVIDIA GPU, works without one</p>
<p class="program__links"><a href="RUGNUX.html">Get started</a><a href="RUGNUX_OVERVIEW.html">What it does</a><a href="RUGNUX_TUTORIAL.html">Manual</a><a href="#dl-rugnux">Download</a></p>
</article>
<article class="program">
<p class="program__kicker">Desktop application</p>
<h2>Jungfraujoch Viewer</h2>
<p>Shows what is in a dataset: every image with its spots, predictions and resolution rings,
per-image statistics over the sweep, grid-scan maps, and the same processing pipeline as
Rugnux, run from a settings panel on the open file. Follows a live collection from a running
Jungfraujoch broker.</p>
<p class="program__meta">Linux &middot; macOS &middot; Windows &middot; Qt 6</p>
<p class="program__links"><a href="JFJOCH_VIEWER.html">Get started</a><a href="JFJOCH_VIEWER.html#a-guided-tour">Guided tour</a><a href="#dl-viewer">Download</a></p>
</article>
<article class="program">
<p class="program__kicker">Data acquisition</p>
<h2>Jungfraujoch</h2>
<p>The acquisition and real-time analysis system for the PSI JUNGFRAU and EIGER detectors,
and for DECTRIS detectors through their control unit: an FPGA and GPU pipeline that takes
the detector's frames at full rate, analyses them on the fly, streams them to the NXmx HDF5
writer and serves a web interface and REST API to the beamline.</p>
<p class="program__meta">Linux servers &middot; AMD Alveo U55C FPGA &middot; NVIDIA GPUs</p>
<p class="program__links"><a href="JUNGFRAUJOCH.html">Get started</a><a href="DEPLOYMENT.html">Install</a><a href="JFJOCH_BROKER.html">Broker</a><a href="JFJOCH_WRITER.html">Writer</a></p>
</article>
</div>
</section>
<section class="download" id="download">
<div class="download__head">
<h2>Download</h2>
<p>Pre-built, signed where the platform asks for it, nothing to install beside them.
<span data-os-note></span></p>
</div>
<div class="download__program" id="dl-rugnux">
<h3>Rugnux</h3>
<p>One self-contained executable. Unpack the archive into a directory of its own and run
<code>bin/rugnux</code>; no CUDA toolkit, no Qt, no service. On a machine with an NVIDIA GPU
take the GPU build, which also runs without one. <a href="RUGNUX_DOWNLOAD.html">Details, packages and building from source</a>.</p>
{{downloads:rugnux}}
</div>
<div class="download__program" id="dl-viewer">
<h3>Jungfraujoch Viewer</h3>
<p>A desktop application with the Qt runtime included: a portable archive on Linux, a
notarized disk image on macOS, an installer on Windows. <a href="VIEWER_DOWNLOAD.html">Details and building from source</a>.</p>
{{downloads:viewer}}
</div>
<div class="download__program download__program--text">
<h3>Jungfraujoch, the acquisition system</h3>
<p>Installed on the beamline's Linux servers from the <a href="REPOSITORIES.html">RPM and APT
repositories</a> (<code>jfjoch</code>, <code>jfjoch-writer</code>, <code>jfjoch-driver-dkms</code>,
<code>jfjoch-viewer</code>, <code>rugnux</code>), with the FPGA firmware and the writer's
packages attached to every <a href="https://gitea.psi.ch/mx/jungfraujoch/releases">release</a>.
<a href="DEPLOYMENT.html">Deployment</a> is the step-by-step guide; <a href="RELEASE_CONTENTS.html">Release contents</a> says what each package needs on the machine.</p>
</div>
</section>
<section class="licence">
<h2>Free to use, in academia and industry</h2>
<p>Rugnux, the viewer and the Jungfraujoch services are free software under the
<a href="LICENSE.html">GNU General Public License v3</a>; the FPGA design is released under the
<a href="FPGA_LICENSE.html">CERN Open Hardware Licence v2, strongly reciprocal</a>. Both let
anyone use, study and modify the software and the hardware design at no charge, commercial use
included; what they ask is that a modified version which is passed on is shared under the same
terms. The released binaries bundle third-party components under GPL-compatible licences, and the
CUDA builds the NVIDIA CUDA runtime under NVIDIA's EULA: see the
<a href="THIRD_PARTY_NOTICES.html">third-party notices</a>.</p>
</section>
</main>
<footer class="foot">
<p>Documentation for Jungfraujoch {{release}} &middot; <a href="CHANGELOG.html">changelog</a> &middot;
<a href="documentation.html">documentation</a> &middot; <a href="NAMING.html">why the names</a> &middot;
<a href="ACKNOWLEDGEMENT.html">acknowledgements</a> &middot; <a href="https://gitea.psi.ch/mx/jungfraujoch">source</a></p>
<p>&copy; Paul Scherrer Institute.</p>
</footer>
<script src="_static/jfjoch_downloads.js"></script>
<script src="landing.js"></script>
</body>
</html>