<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Module on Astro Live Stacker</title>
    <link>https://preprod.als-app.org/tags/module/</link>
    <description>Recent content in Module on Astro Live Stacker</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 11 Jun 2026 20:38:13 +0200</lastBuildDate>
    <atom:link href="https://preprod.als-app.org/tags/module/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Concepts</title>
      <link>https://preprod.als-app.org/docs/v0.7/userguide/concepts/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/userguide/concepts/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;By the end of this chapter, the basic concepts of ALS will be familiar to you.&lt;/p&gt;&#xA;&lt;p&gt;You will understand what ALS does and how it does it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;stacking&#34;&gt;Stacking&lt;/h1&gt;&#xA;&lt;p&gt;Stacking is the process of combining multiple subs of the same target to generate a more detailed and contrasted image than a single sub.&lt;/p&gt;&#xA;&lt;p&gt;The quality of the result increases as more subs are used.&lt;/p&gt;&#xA;&lt;div style=&#34;text-align: center;&#34;&gt;&#xA;&#xA;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://preprod.als-app.org/images/stacking.png&#34;&#xA;         alt=&#34;A sequence of eight nebula images, each labeled with the number of subs used: 1, 2, 4, 8 (top row) and 128, 64, 32, 16 (bottom row). The image improves as subs increase.&#34; width=&#34;1203px&#34; height=&#34;456px&#34;/&gt; &lt;figcaption&gt;&#xA;            &lt;p&gt;Comparison of 8 stacking results&lt;br&gt;The number of stacked subs is indicated at the top left of each image&lt;/p&gt;</description>
    </item>
    <item>
      <title>main controls</title>
      <link>https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;During this chapter, you will:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;get familiar with ALS main controls&lt;/li&gt;&#xA;&lt;li&gt;Deepen your knowledge on key features&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;row&#34;&gt;&#xA;  &lt;div class=&#34;col-md-8&#34;&gt;&#xA;&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The ALS control station is the &lt;code&gt;Main Controls&lt;/code&gt; interface panel&lt;/p&gt;&#xA;&lt;p&gt;Located on the left side of the ALS interface, it organizes the most used controls and displays into sections:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#session-section&#34;&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Session controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#stack-section&#34;&gt;&lt;strong&gt;Stack&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Stack controls and stack information&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#server-section&#34;&gt;&lt;strong&gt;Image Server&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image server controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#saver-section&#34;&gt;&lt;strong&gt;Image Saver&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image saving tools&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference documentation</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;This section contains detailed documentation about ALS bits and bolts&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    🧠 It elaborates on the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/concepts/&#34;&gt;concepts&lt;/a&gt; introduced at the beginning of the user guide&#xA;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Modules and Processes</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;In here, you will find detailed documentation about ALS modules and processes.&lt;/p&gt;&#xA;&lt;p&gt;From what a module is to how a process works, you will find everything you need to know about the bits and bolts of ALS.&lt;/p&gt;&#xA;&lt;h1 id=&#34;modules&#34;&gt;Modules&lt;/h1&gt;&#xA;&lt;p&gt;An ALS module is an elaborated processing unit responsible for a specific task.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has its own engine&lt;/li&gt;&#xA;&lt;li&gt;It can be started and stopped at will&lt;/li&gt;&#xA;&lt;li&gt;It has access to the settings defined in ALS preferences&lt;/li&gt;&#xA;&lt;li&gt;Its behavior can be controlled through the ALS interface&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Modules are &lt;strong&gt;dumb and isolated&lt;/strong&gt;. They have no knowledge of other parts of the application. They just do their job&#xA;and report to the application&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scanner</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/scanner/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/scanner/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Scanner&lt;/strong&gt; module is the entry point for your subs in ALS.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitoring the &lt;strong&gt;appearance&lt;/strong&gt; of subs in the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Loading the detected subs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Existing files are ignored&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Files present in the &lt;strong&gt;scan folder&lt;/strong&gt; before the &lt;strong&gt;Scanner&lt;/strong&gt; module is started are not detected&lt;/p&gt;&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Detection of subs is recursive&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Subs are detected regardless of the level of subfolders where they appear within the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Preprocess</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline handles &lt;strong&gt;calibration&lt;/strong&gt; processes&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;calibration&lt;/strong&gt; processes is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger calibration&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;calibration&lt;/strong&gt; processes on the sub:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/hot_remove/&#34;&gt;Hot pixel removal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/dark_remove/&#34;&gt;Dark subtraction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/reference/modules/preprocess/debayer/&#34;&gt;Debayering&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;output&#34;&gt;Output&lt;/h1&gt;&#xA;&lt;p&gt;Calibrated sub is broadcast&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stacker</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/stack/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/stack/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stacker&lt;/strong&gt; module handles the alignment and stacking of calibrated subs.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alignment ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;          &lt;td&gt;ON&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Stacking mode&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- mean&lt;br&gt;- sum&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;mean&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Detection threshold&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/ui/controls/#threshold&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;integer&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;25&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stack&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;session alignment reference&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;flowchart LR&#xA;Start([START])&#xA;FirstSub{{First sub of the session?}}&#xA;SetAlignReference[Set sub as alignment reference]&#xA;CheckShape{{Sub same dimensions as previous result?}}&#xA;CheckAlign{{Alignment ON?}}&#xA;AlignImage[Align sub]&#xA;StackImage[Add sub to Stack]&#xA;ComputeStacking[Compute stacking]&#xA;PublishReference[Return alignment reference]&#xA;PublishResult[Return generated image]&#xA;End([END])&#xA;&#xA;Start --&amp;gt; FirstSub&#xA;FirstSub -- YES --&amp;gt; SetAlignReference&#xA;SetAlignReference --&amp;gt; PublishReference&#xA;FirstSub -- NO --&amp;gt; CheckShape&#xA;CheckShape -- YES --&amp;gt; CheckAlign&#xA;CheckAlign -- YES --&amp;gt; AlignImage&#xA;AlignImage --&amp;gt; StackImage&#xA;CheckAlign -- NO --&amp;gt; StackImage&#xA;StackImage --&amp;gt; ComputeStacking&#xA;ComputeStacking --&amp;gt; PublishResult&#xA;CheckShape -- NO --&amp;gt; End&#xA;PublishReference --&amp;gt; End&#xA;PublishResult --&amp;gt; End&#xA;&#xA;classDef bounds fill: #333, stroke: #666, stroke-width: 2px, color: #BBB, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;classDef step fill: #444, stroke: #622, stroke-width:2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;,sans-serif&#xA;classDef test fill: #444, stroke: #226, stroke-width: 2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;&#xA;class Start,End bounds&#xA;class SetAlignReference,AlignImage,StackImage,PublishResult,ComputeStacking,PublishReference step&#xA;class CheckShape,CheckAlign,FirstSub test&lt;/pre&gt;&#xA;&lt;h2 id=&#34;alignment&#34;&gt;Alignment&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;If alignment is ON&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Process</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/process/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/process/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline handles &lt;strong&gt;visual processing&lt;/strong&gt; tasks applied to the stacking results.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;visual processing&lt;/strong&gt; tasks is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/reference/modules/process/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; module is launched in the background at ALS startup.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;visual processing&lt;/strong&gt; tasks on the stacking result:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Save</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/save/</link>
      <pubDate>Wed, 10 Jun 2026 23:25:49 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/save/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module handles the saving on disk of all images generated by ALS.&lt;/p&gt;&#xA;&lt;p&gt;Its configuration is managed via ALS preferences&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;work folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/preferences/output/#work-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;web folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/preferences/output/#web-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;= work folder&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;file format&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7/userguide/preferences/output/#format&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- TIFF&lt;br&gt;- PNG&lt;br&gt;- JPEG&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;JPEG&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server</title>
      <link>https://preprod.als-app.org/docs/v0.7/reference/modules/server/</link>
      <pubDate>Thu, 11 Jun 2026 00:20:09 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7/reference/modules/server/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Server&lt;/strong&gt; utility module exposes ALS processing results through a lightweight HTTP and WebSocket service.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Publishing the &lt;strong&gt;latest processed stacking result&lt;/strong&gt; and session metrics in the configured &lt;strong&gt;web folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Serving the &lt;strong&gt;viewer web application&lt;/strong&gt; (&lt;code&gt;index.html&lt;/code&gt;, JavaScript and icons)&lt;/li&gt;&#xA;&lt;li&gt;Streaming live &lt;strong&gt;new-image notifications&lt;/strong&gt; to connected browsers over WebSockets&lt;/li&gt;&#xA;&lt;li&gt;Providing a &lt;strong&gt;QR-code friendly URL&lt;/strong&gt; so that tablets or phones can join the session quickly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The module runs in its own asyncio event loop and accepts concurrent browser clients. It never alters the processing&#xA;pipeline; it only serves the web image written by the &lt;strong&gt;Save&lt;/strong&gt; module.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Concepts</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/userguide/concepts/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/userguide/concepts/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;By the end of this chapter, the basic concepts of ALS will be familiar to you.&lt;/p&gt;&#xA;&lt;p&gt;You will understand what ALS does and how it does it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;stacking&#34;&gt;Stacking&lt;/h1&gt;&#xA;&lt;p&gt;Stacking is the process of combining multiple subs of the same target to generate a more detailed and contrasted image than a single sub.&lt;/p&gt;&#xA;&lt;p&gt;The quality of the result increases as more subs are used.&lt;/p&gt;&#xA;&lt;div style=&#34;text-align: center;&#34;&gt;&#xA;&#xA;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://preprod.als-app.org/images/stacking.png&#34;&#xA;         alt=&#34;A sequence of eight nebula images, each labeled with the number of subs used: 1, 2, 4, 8 (top row) and 128, 64, 32, 16 (bottom row). The image improves as subs increase.&#34; width=&#34;1203px&#34; height=&#34;456px&#34;/&gt; &lt;figcaption&gt;&#xA;            &lt;p&gt;Comparison of 8 stacking results&lt;br&gt;The number of stacked subs is indicated at the top left of each image&lt;/p&gt;</description>
    </item>
    <item>
      <title>main controls</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;During this chapter, you will:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;get familiar with ALS main controls&lt;/li&gt;&#xA;&lt;li&gt;Deepen your knowledge on key features&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;row&#34;&gt;&#xA;  &lt;div class=&#34;col-md-8&#34;&gt;&#xA;&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The ALS control station is the &lt;code&gt;Main Controls&lt;/code&gt; interface panel&lt;/p&gt;&#xA;&lt;p&gt;Located on the left side of the ALS interface, it organizes the most used controls and displays into sections:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#session-section&#34;&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Session controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#stack-section&#34;&gt;&lt;strong&gt;Stack&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Stack controls and stack information&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#server-section&#34;&gt;&lt;strong&gt;Image Server&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image server controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#saver-section&#34;&gt;&lt;strong&gt;Image Saver&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image saving tools&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference documentation</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;This section contains detailed documentation about ALS bits and bolts&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    🧠 It elaborates on the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/concepts/&#34;&gt;concepts&lt;/a&gt; introduced at the beginning of the user guide&#xA;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Modules and Processes</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;In here, you will find detailed documentation about ALS modules and processes.&lt;/p&gt;&#xA;&lt;p&gt;From what a module is to how a process works, you will find everything you need to know about the bits and bolts of ALS.&lt;/p&gt;&#xA;&lt;h1 id=&#34;modules&#34;&gt;Modules&lt;/h1&gt;&#xA;&lt;p&gt;An ALS module is an elaborated processing unit responsible for a specific task.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has its own engine&lt;/li&gt;&#xA;&lt;li&gt;It can be started and stopped at will&lt;/li&gt;&#xA;&lt;li&gt;It has access to the settings defined in ALS preferences&lt;/li&gt;&#xA;&lt;li&gt;Its behavior can be controlled through the ALS interface&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Modules are &lt;strong&gt;dumb and isolated&lt;/strong&gt;. They have no knowledge of other parts of the application. They just do their job&#xA;and report to the application&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scanner</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/scanner/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/scanner/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Scanner&lt;/strong&gt; module is the entry point for your subs in ALS.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitoring the &lt;strong&gt;appearance&lt;/strong&gt; of subs in the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Loading the detected subs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Existing files are ignored&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Files present in the &lt;strong&gt;scan folder&lt;/strong&gt; before the &lt;strong&gt;Scanner&lt;/strong&gt; module is started are not detected&lt;/p&gt;&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Detection of subs is recursive&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Subs are detected regardless of the level of subfolders where they appear within the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Preprocess</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline handles &lt;strong&gt;calibration&lt;/strong&gt; processes&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;calibration&lt;/strong&gt; processes is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger calibration&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;calibration&lt;/strong&gt; processes on the sub:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/hot_remove/&#34;&gt;Hot pixel removal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/dark_remove/&#34;&gt;Dark subtraction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/reference/modules/preprocess/debayer/&#34;&gt;Debayering&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;output&#34;&gt;Output&lt;/h1&gt;&#xA;&lt;p&gt;Calibrated sub is broadcast&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stacker</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/stack/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/stack/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stacker&lt;/strong&gt; module handles the alignment and stacking of calibrated subs.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alignment ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;          &lt;td&gt;ON&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Stacking mode&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- mean&lt;br&gt;- sum&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;mean&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Detection threshold&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/ui/controls/#threshold&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;integer&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;25&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stack&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;session alignment reference&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;flowchart LR&#xA;Start([START])&#xA;FirstSub{{First sub of the session?}}&#xA;SetAlignReference[Set sub as alignment reference]&#xA;CheckShape{{Sub same dimensions as previous result?}}&#xA;CheckAlign{{Alignment ON?}}&#xA;AlignImage[Align sub]&#xA;StackImage[Add sub to Stack]&#xA;ComputeStacking[Compute stacking]&#xA;PublishReference[Return alignment reference]&#xA;PublishResult[Return generated image]&#xA;End([END])&#xA;&#xA;Start --&amp;gt; FirstSub&#xA;FirstSub -- YES --&amp;gt; SetAlignReference&#xA;SetAlignReference --&amp;gt; PublishReference&#xA;FirstSub -- NO --&amp;gt; CheckShape&#xA;CheckShape -- YES --&amp;gt; CheckAlign&#xA;CheckAlign -- YES --&amp;gt; AlignImage&#xA;AlignImage --&amp;gt; StackImage&#xA;CheckAlign -- NO --&amp;gt; StackImage&#xA;StackImage --&amp;gt; ComputeStacking&#xA;ComputeStacking --&amp;gt; PublishResult&#xA;CheckShape -- NO --&amp;gt; End&#xA;PublishReference --&amp;gt; End&#xA;PublishResult --&amp;gt; End&#xA;&#xA;classDef bounds fill: #333, stroke: #666, stroke-width: 2px, color: #BBB, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;classDef step fill: #444, stroke: #622, stroke-width:2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;,sans-serif&#xA;classDef test fill: #444, stroke: #226, stroke-width: 2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;&#xA;class Start,End bounds&#xA;class SetAlignReference,AlignImage,StackImage,PublishResult,ComputeStacking,PublishReference step&#xA;class CheckShape,CheckAlign,FirstSub test&lt;/pre&gt;&#xA;&lt;h2 id=&#34;alignment&#34;&gt;Alignment&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;If alignment is ON&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Process</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/process/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:38 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/process/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline handles &lt;strong&gt;visual processing&lt;/strong&gt; tasks applied to the stacking results.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;visual processing&lt;/strong&gt; tasks is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/reference/modules/process/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; module is launched in the background at ALS startup.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;visual processing&lt;/strong&gt; tasks on the stacking result:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Save</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/save/</link>
      <pubDate>Wed, 10 Jun 2026 23:25:49 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/save/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module handles the saving on disk of all images generated by ALS.&lt;/p&gt;&#xA;&lt;p&gt;Its configuration is managed via ALS preferences&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;work folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/preferences/output/#work-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;web folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/preferences/output/#web-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;= work folder&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;file format&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v0.7.1/userguide/preferences/output/#format&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- TIFF&lt;br&gt;- PNG&lt;br&gt;- JPEG&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;JPEG&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server</title>
      <link>https://preprod.als-app.org/docs/v0.7.1/reference/modules/server/</link>
      <pubDate>Thu, 11 Jun 2026 00:20:09 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v0.7.1/reference/modules/server/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Server&lt;/strong&gt; utility module exposes ALS processing results through a lightweight HTTP and WebSocket service.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Publishing the &lt;strong&gt;latest processed stacking result&lt;/strong&gt; and session metrics in the configured &lt;strong&gt;web folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Serving the &lt;strong&gt;viewer web application&lt;/strong&gt; (&lt;code&gt;index.html&lt;/code&gt;, JavaScript and icons)&lt;/li&gt;&#xA;&lt;li&gt;Streaming live &lt;strong&gt;new-image notifications&lt;/strong&gt; to connected browsers over WebSockets&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The module runs in its own asyncio event loop and accepts concurrent browser clients. It never alters the processing&#xA;pipeline; it only serves the web image written by the &lt;strong&gt;Save&lt;/strong&gt; module.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Concepts</title>
      <link>https://preprod.als-app.org/docs/v1.0/userguide/concepts/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/userguide/concepts/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;By the end of this chapter, the basic concepts of ALS will be familiar to you.&lt;/p&gt;&#xA;&lt;p&gt;You will understand what ALS does and how it does it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;stacking&#34;&gt;Stacking&lt;/h1&gt;&#xA;&lt;p&gt;Stacking is the process of combining multiple subs of the same target to generate a more detailed and contrasted image than a single sub.&lt;/p&gt;&#xA;&lt;p&gt;The quality of the result increases as more subs are used.&lt;/p&gt;&#xA;&lt;div style=&#34;text-align: center;&#34;&gt;&#xA;&#xA;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://preprod.als-app.org/images/stacking.png&#34;&#xA;         alt=&#34;A sequence of eight nebula images, each labeled with the number of subs used: 1, 2, 4, 8 (top row) and 128, 64, 32, 16 (bottom row). The image improves as subs increase.&#34; width=&#34;1203px&#34; height=&#34;456px&#34;/&gt; &lt;figcaption&gt;&#xA;            &lt;p&gt;Comparison of 8 stacking results&lt;br&gt;The number of stacked subs is indicated at the top left of each image&lt;/p&gt;</description>
    </item>
    <item>
      <title>main controls</title>
      <link>https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;During this chapter, you will:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;get familiar with ALS main controls&lt;/li&gt;&#xA;&lt;li&gt;Deepen your knowledge on key features&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;div class=&#34;row&#34;&gt;&#xA;  &lt;div class=&#34;col-md-8&#34;&gt;&#xA;&lt;p&gt;The ALS control station is the &lt;code&gt;Main Controls&lt;/code&gt; interface panel&lt;/p&gt;&#xA;&lt;p&gt;Located on the left side of the ALS interface, it organizes the most used controls and displays into sections:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#session-section&#34;&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Session controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#stack-section&#34;&gt;&lt;strong&gt;Stack&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Stack controls and stack information&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#server-section&#34;&gt;&lt;strong&gt;Image Server&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image server controls and status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#saver-section&#34;&gt;&lt;strong&gt;Image Saver&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Image saving tools&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference documentation</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;This section contains detailed documentation about ALS bits and bolts&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    🧠 It elaborates on the &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/concepts/&#34;&gt;concepts&lt;/a&gt; introduced at the beginning of the user guide&#xA;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Modules and Processes</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;In here, you will find detailed documentation about ALS modules and processes.&lt;/p&gt;&#xA;&lt;p&gt;From what a module is to how a process works, you will find everything you need to know about the bits and bolts of ALS.&lt;/p&gt;&#xA;&lt;h1 id=&#34;modules&#34;&gt;Modules&lt;/h1&gt;&#xA;&lt;p&gt;An ALS module is an elaborated processing unit responsible for a specific task.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It has its own engine&lt;/li&gt;&#xA;&lt;li&gt;It can be started and stopped at will&lt;/li&gt;&#xA;&lt;li&gt;It has access to the settings defined in ALS preferences&lt;/li&gt;&#xA;&lt;li&gt;Its behavior can be controlled through the ALS interface&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Modules are &lt;strong&gt;dumb and isolated&lt;/strong&gt;. They have no knowledge of other parts of the application. They just do their job&#xA;and report to the application&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scanner</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/scanner/</link>
      <pubDate>Thu, 11 Jun 2026 18:38:13 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/scanner/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Scanner&lt;/strong&gt; module is the entry point for your subs in ALS.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitoring the &lt;strong&gt;appearance&lt;/strong&gt; of subs in the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Loading the detected subs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Existing files are ignored&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Files present in the &lt;strong&gt;scan folder&lt;/strong&gt; before the &lt;strong&gt;Scanner&lt;/strong&gt; module is started are not detected&lt;/p&gt;&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;alert alert-info&#34; role=&#34;alert&#34;&gt;&#xA;&#xA;&#xA;    &lt;p&gt;ℹ️ &lt;strong&gt;Detection of subs is recursive&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Subs are detected regardless of the level of subfolders where they appear within the &lt;strong&gt;scan folder&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Preprocess</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline handles &lt;strong&gt;calibration&lt;/strong&gt; processes&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;calibration&lt;/strong&gt; processes is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Preprocess&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger calibration&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;calibration&lt;/strong&gt; processes on the sub:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/hot_remove/&#34;&gt;Hot pixel removal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/dark_remove/&#34;&gt;Dark subtraction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/flat_calibrate/&#34;&gt;Flat calibration&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/preprocess/debayer/&#34;&gt;Debayering&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;output&#34;&gt;Output&lt;/h1&gt;&#xA;&lt;p&gt;Calibrated sub is broadcast&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stacker</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/stack/</link>
      <pubDate>Thu, 11 Jun 2026 17:57:08 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/stack/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stacker&lt;/strong&gt; module handles the alignment and stacking of calibrated subs.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Alignment ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;ON/OFF&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;          &lt;td&gt;ON&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Stacking mode&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#controls&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- mean&lt;br&gt;- sum&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;mean&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Minimum matches&lt;/td&gt;&#xA;          &lt;td&gt;Interface: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/ui/controls/#threshold&#34;&gt;Stacking controls&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;integer&lt;/td&gt;&#xA;          &lt;td&gt;YES&lt;/td&gt;&#xA;          &lt;td&gt;25&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Stack&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;session alignment reference&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;flowchart LR&#xA;Start([START])&#xA;FirstSub{{First sub of the session?}}&#xA;SetAlignReference[Set sub as alignment reference]&#xA;CheckShape{{Sub same dimensions as previous result?}}&#xA;CheckAlign{{Alignment ON?}}&#xA;AlignImage[Align sub]&#xA;StackImage[Add sub to Stack]&#xA;ComputeStacking[Compute stacking]&#xA;PublishReference[Return alignment reference]&#xA;PublishResult[Return generated image]&#xA;End([END])&#xA;&#xA;Start --&amp;gt; FirstSub&#xA;FirstSub -- YES --&amp;gt; SetAlignReference&#xA;SetAlignReference --&amp;gt; PublishReference&#xA;FirstSub -- NO --&amp;gt; CheckShape&#xA;CheckShape -- YES --&amp;gt; CheckAlign&#xA;CheckAlign -- YES --&amp;gt; AlignImage&#xA;AlignImage --&amp;gt; StackImage&#xA;CheckAlign -- NO --&amp;gt; StackImage&#xA;StackImage --&amp;gt; ComputeStacking&#xA;ComputeStacking --&amp;gt; PublishResult&#xA;CheckShape -- NO --&amp;gt; End&#xA;PublishReference --&amp;gt; End&#xA;PublishResult --&amp;gt; End&#xA;&#xA;classDef bounds fill: #333, stroke: #666, stroke-width: 2px, color: #BBB, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;classDef step fill: #444, stroke: #622, stroke-width:2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;,sans-serif&#xA;classDef test fill: #444, stroke: #226, stroke-width: 2px, color: #c6c6c6, font-family: &amp;#39;Poppins&amp;#39;, sans-serif&#xA;&#xA;class Start,End bounds&#xA;class SetAlignReference,AlignImage,StackImage,PublishResult,ComputeStacking,PublishReference step&#xA;class CheckShape,CheckAlign,FirstSub test&lt;/pre&gt;&#xA;&lt;h2 id=&#34;alignment&#34;&gt;Alignment&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;If alignment is ON&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Process</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/process/</link>
      <pubDate>Thu, 11 Jun 2026 00:33:39 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/process/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline handles &lt;strong&gt;visual processing&lt;/strong&gt; tasks applied to the stacking results.&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; pipeline itself requires no configuration.&lt;/p&gt;&#xA;&lt;p&gt;The configuration of the &lt;strong&gt;visual processing&lt;/strong&gt; tasks is managed by the &lt;strong&gt;processes&lt;/strong&gt; themselves.&#xA;See the &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/reference/modules/process/#behavior&#34;&gt;Behavior&lt;/a&gt; section below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Process&lt;/strong&gt; module is launched in the background at ALS startup.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Response&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub(s) in queue&lt;/td&gt;&#xA;          &lt;td&gt;Event&lt;/td&gt;&#xA;          &lt;td&gt;trigger processing&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;input&#34;&gt;Input&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Data&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sub at queue front&lt;/td&gt;&#xA;          &lt;td&gt;Image&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;behavior&#34;&gt;Behavior&lt;/h1&gt;&#xA;&lt;p&gt;Performs &lt;strong&gt;visual processing&lt;/strong&gt; tasks on the stacking result:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Save</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/save/</link>
      <pubDate>Wed, 10 Jun 2026 23:25:50 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/save/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module handles the saving on disk of all images generated by ALS.&lt;/p&gt;&#xA;&lt;p&gt;Its configuration is managed via ALS preferences&lt;/p&gt;&#xA;&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Source&lt;/th&gt;&#xA;          &lt;th&gt;Data type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Default value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;work folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/preferences/output/#work-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;∅&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;web folder&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/preferences/output/#web-folder&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;path to a folder&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;= work folder&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;file format&lt;/td&gt;&#xA;          &lt;td&gt;Prefs: &lt;a href=&#34;https://preprod.als-app.org/docs/v1.0/userguide/preferences/output/#format&#34;&gt;Output Tab&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;choices:&lt;br&gt;- TIFF&lt;br&gt;- PNG&lt;br&gt;- JPEG&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;JPEG&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h1 id=&#34;control&#34;&gt;Control&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Save&lt;/strong&gt; module is launched in the background at ALS startup&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server</title>
      <link>https://preprod.als-app.org/docs/v1.0/reference/modules/server/</link>
      <pubDate>Thu, 11 Jun 2026 00:20:09 +0000</pubDate>
      <guid>https://preprod.als-app.org/docs/v1.0/reference/modules/server/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Server&lt;/strong&gt; utility module exposes ALS processing results through a lightweight HTTP and WebSocket service.&lt;/p&gt;&#xA;&lt;p&gt;It is responsible for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Publishing the &lt;strong&gt;latest processed stacking result&lt;/strong&gt; and session metrics in the configured &lt;strong&gt;web folder&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Serving the &lt;strong&gt;viewer web application&lt;/strong&gt; (&lt;code&gt;index.html&lt;/code&gt;, JavaScript and icons)&lt;/li&gt;&#xA;&lt;li&gt;Streaming live &lt;strong&gt;new-image notifications&lt;/strong&gt; to connected browsers over WebSockets&lt;/li&gt;&#xA;&lt;li&gt;Providing a &lt;strong&gt;QR-code friendly URL&lt;/strong&gt; so that tablets or phones can join the session quickly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The module runs in its own asyncio event loop and accepts concurrent browser clients. It never alters the processing&#xA;pipeline; it only serves the web image written by the &lt;strong&gt;Save&lt;/strong&gt; module.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
