docs: Desktop Stacker — free app, optional account, slide credit; five engines #1133

Merged
spikerj merged 1 commits from docs/stacker-free-copy into main 2026-09-02 02:40:57 +00:00
+7 -5
View File
@@ -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.
---