From 505930cb2aef48083c48c87921f9025f4ba663b3 Mon Sep 17 00:00:00 2001 From: Joseph Spiker Date: Wed, 2 Sep 2026 01:35:59 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20Desktop=20Stacker=20=E2=80=94=20free=20?= =?UTF-8?q?app,=20optional=20account,=20slide=20credit;=20five=20engines?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The section still described Stacker as "fully offline, no Keycloak, no api.spikersoft.com" and listed two fusion engines. Since the cloud integration it signs in with the site's Keycloak session, publishes to the gallery/blog, and the /stacker page proxies installers from the Gitea Release. Also states the licensing truth once: free, nothing to buy, no registration key; unlinked copies only add a small spikersoft.com/stacker credit to exported share-set slides. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_013AWfb8Wasy3J9dZue5akv3 --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d369328..9393cce 100644 --- a/README.md +++ b/README.md @@ -80,8 +80,8 @@ A multi-project .NET 10 solution providing: │ │ │ │ Compose) │ │ │ │ │ └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘ │ │ ┌──────────────────┐ ┌──────────────────┐ │ -│ │ Time & Materials│ │ Desktop Stacker │ (Stacker is fully offline — │ -│ │ Android app │ │ (Rust, offline) │ no backend connection) │ +│ │ Time & Materials│ │ Desktop Stacker │ (Stacker: offline pipeline, │ +│ │ Android app │ │ (Rust, offline) │ publish needs sign-in) │ │ └────────┬─────────┘ └──────────────────┘ │ └───────────┼─────────────────────┼─────────────────────┼─────────────────────┘ │ HTTPS/WSS │ HTTPS + WSS │ WSS (GameServer) @@ -930,7 +930,7 @@ Note: this repo currently has **no CI** — in-engine test scripts only (`tests/ ## Desktop Stacker (spikersoft-stacker) -A **local, fully offline** focus-stacking application (Zerene/Helicon class) for macro photography — one self-contained executable per OS (macOS / Windows / Linux). It ports the platform's PhotoStack pipeline (artpipe `align.py` + `fusion.py`) to a fast desktop workflow; algorithm parity with the Python implementation is verified by a test harness in the repo. +A **local, offline-first** focus-stacking application (Zerene/Helicon class) for macro photography — one self-contained executable per OS (macOS / Windows / Linux). It ports the platform's PhotoStack pipeline (artpipe `align.py` + `fusion.py`) to a fast desktop workflow; algorithm parity with the Python implementation is verified by a test harness in the repo. ### Workflow stages @@ -938,7 +938,7 @@ A **local, fully offline** focus-stacking application (Zerene/Helicon class) for 1. **Import** — `.ORF` and other RAW/TIFF/JPEG; instant previews from embedded JPEGs; Olympus `FocusStepCount` ordering and duplicate curation. 2. **Align** — phase-correlation seeding + chained pyramidal ECC-style affine refinement against a reference frame. 3. **Mass crop** — auto intersection rect of all aligned frames, adjustable on the master; "Crop" bakes warp+crop into every frame so no border replication reaches fusion. -4. **Stack** — selectable fusion engines: **Laplacian pyramid** and **depth map**. +4. **Stack** — five fusion engines: **Laplacian pyramid**, **depth map**, **complex wavelet**, **Spiker**, and the content-aware **Patch** engine, validated against a ground-truth harness. 5. **Touch up** — dual synced previews (source frame | fused result); a soft brush copies source pixels into the result at full 16-bit resolution, with stroke-replay undo. 6. **Export** — 16-bit TIFF / JPEG + a JSON `.sstack` project sidecar. @@ -946,7 +946,9 @@ A **local, fully offline** focus-stacking application (Zerene/Helicon class) for A Rust workspace of four crates: `stacker-core` (the pipeline — no UI deps; `rawler` RAW decode, `rustfft`, `rayon`, `memmap2`), `stacker-gpu` (**wgpu** compute kernels from one WGSL codebase targeting Metal/Vulkan/DX12, with a CPU fallback for every kernel), `stacker-camera` (Olympus Wi-Fi CGI protocol + UDP live view + optional BLE wake, plus a mock camera for tests), and `stacker-app` (egui/eframe desktop UI). -**Platform integration: none, by design.** There is no S3 client, no Keycloak, no `api.spikersoft.com` anywhere in the workspace — it shares *algorithms* with the platform's [Photo Stack](#art-studio) lane, not services. Output stays local. +**Free app, optional account.** Stacker is free — nothing to buy, no registration key, and every stage above works offline without an account. **Account → Sign in with spikersoft.com** (the website's Keycloak SSO session, via a loopback PKCE flow) links the app to a spikersoft.com account, which unlocks **Publish to spikersoft.com** (source frames + finished stack with provenance and Darwin Core identification into the user's gallery, optional blog post, optional public share page at `/p/{token}`) and removes the small `spikersoft.com/stacker` credit that unlinked copies add to exported **share-set slides**. That credit points at the free app page, never at donations, and the finished TIFF / JPEG export never carries it. The public [`/stacker`](https://spikersoft.com/stacker) page lists per-platform installers proxied by `api.spikersoft.com` from the repo's rolling Gitea Release (`latest`). + +Beyond publishing, the app shares *algorithms* with the platform's [Photo Stack](#art-studio) lane, not services: no S3 client, and every pipeline stage runs locally. --- -- 2.54.0