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. ---