mesh-avatar-studio
Turn one illustration into an animated 2D mesh avatar with a coding agent and a local editor
翻譯準備中
lapstack 將一系列對焦括號的照片融合為一張全焦圖像和密集深度圖,可在瀏覽器的 WebGPU 上或本機指令列運行。免費軟體,遵循 MIT 授權。
AI 翻譯
lapstack fuses a focus-bracketed series of photographs into one all-in-focus image and a dense depth map, in the browser on WebGPU or natively on the command line. Free software under the MIT license,
設計Rust · JavaScriptGitHub @ragtux上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證GPU-accelerated focus stacking software in the browser and desktop native.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Focus stacking on the Laplacian pyramid, written from the papers — native, and in the browser on WebGPU.
A focus-bracketed series in, one all-in-focus image and a dense depth map out, with a retouch brush,
stereo pairs, rocking animations and a 3D model from the same run. Free software, offline, and yours.
Run it in your browser ·
Manual ·
Releases ·
Support lapstack
A 100-frame stack of 45 MP frames fused into one image, then rocked by its own depth map. Every animation on this page is one the browser app saved, reduced for the page.檢視完整 README ↗[!NOTE] Nothing leaves your machine. The browser app runs the whole engine on your own GPU through WebGPU; no frame is uploaded anywhere. The command-line tool and the desktop application run the same engine natively.
lapstack-core holds the pyramid, the aligner, the depth pass and every output. The CUDA engine and the wgpu engine run the same kernels natively; the browser runs the wgpu kernels on WebGPU, one frame at a time in a Web Worker, so browser memory stays at a couple of frames regardless of stack size.docs/README.md, with no reference to anyone else's source. The design document in docs/engine.md and docs/browser.md states every formula and names the file that implements it.crates/lapstack-core library: pyramid, fusion, depth from focus, aligner, dust map, stereo views, 3D model, batch splitting, I/O, linear DNG, frame preparation
crates/lapstack-cli `lapstack` command-line tool
crates/lapstack-web the browser app's engine: wasm32 decode + the core's wgpu kernels on WebGPU
crates/lapstack-raw the camera raw decoder (rawler, LGPL) as a module of its own: a shared library the CLI loads at run time, a wasm module the browser app loads beside its engine
web/ the browser app (static files) and its headless test
docs/ the design document (`engine.md`, `browser.md`) and the papers the algorithm is written from, cited
lightroom/ the Lightroom Classic plugin (the CLI as an export target and a Library menu item)
desktop/ the browser app as an Electron desktop application
In the browser, nothing to install: open lapstack.app.ragtux.com, add the frames, press Run. Chrome and Edge have WebGPU on by default on Windows and macOS; on Linux, Chrome needs the switches in web/chrome.sh (or use the desktop application); Firefox needs dom.webgpu.enabled; Safari 26 and later work.
The command-line tool, from a release or from source:
cargo build --release # the CLI and the raw decoder module, in target/release
lapstack --align-coarsen 2 --save-depth -o out.png frames/*.tif # align, fuse, write the depth map beside the result
lapstack --no-align -o out.png aligned/*.png # already registered: streams from disk
lapstack --gpu --gpu-align --align-coarsen 2 -o out.png frames/*.tif # fusion, depth pass and the aligner's search on the GPU
lapstack --help # every option, with its default
A directory stands for the image files in it. Input is PNG, JPEG or TIFF, 8- or 16-bit, or a camera raw; the output keeps the input bit depth (16-bit needs PNG or TIFF) and carries the first frame's EXIF, ICC profile and XMP (--no-metadata turns it off).
From source, the rest: just lists the developer commands (build, test, serve, chrome, dev, …); just build-web && just serve builds the browser app and serves it on http://localhost:8765/; CONTRIBUTING.md is the short version.
Two engines, two build features, one switch: --gpu fuses (and runs the
depth pass) on the GPU, --gpu-align puts the aligner's cost search there
too, and --gpu-backend cuda | wgpu names the engine — without it the first
that answers is taken, CUDA before wgpu, and a run with neither says so and
goes on on the CPU.
cargo build --release --features gpu,wgpu -p lapstack-cli
# CUDA (`gpu`; `gpu.rs`): NVIDIA. Linux: libcuda (driver) + libnvrtc (toolkit) on the path,
# and nvidia_uvm loaded. NixOS: LD_LIBRARY_PATH=/run/opengl-driver/lib:<cudaPackages.cuda_nvrtc's lib output>/lib
# Windows: nvcuda.dll ships with the display driver; drop the two DLLs from NVIDIA's cuda_nvrtc
# redist zip (bin/nvrtc64_120_0.dll + nvrtc-builtins) next to lapstack.exe, their major.minor
# matching the driver's CUDA version (nvidia-smi), or the PTX JIT rejects the kernels.
# wgpu (`wgpu`; `wg/`): any GPU — Vulkan on Linux and Windows, Metal on macOS, DX12 on Windows.
# Linux needs the Vulkan loader (libvulkan.so.1) and the driver's ICD; NixOS:
# LD_LIBRARY_PATH=<vulkan-loader's lib>:/run/opengl-driver/lib and, with several ICDs installed,
# VK_ICD_FILENAMES=/run/opengl-driver/share/vulkan/icd.d/nvidia_icd.json (or the one for the card).
cudarc is built with dynamic-loading and wgpu finds its backends at run
time, so a binary built with both features runs on a machine with neither:
--gpu reports what it looked for and the CPU does the work.
Builds for Linux, Windows and macOS are attached to each release; the browser app needs no download. The desktop builds are not code signed, so Windows and macOS warn before the first launch.
Each archive holds the binary, the raw decoder module beside it, LICENSE, THIRD-PARTY.md and the decoder's source.
| Platform | File | GPU engines in the build |
|---|---|---|
| Linux x86_64 | lapstack-<ver>-x86_64-unknown-linux-gnu.tar.gz | CUDA and wgpu (Vulkan) |
| Windows x64 | lapstack-<ver>-x86_64-pc-windows-msvc.zip | CUDA and wgpu (Vulkan, DX12) |
| macOS, Apple silicon | lapstack-<ver>-aarch64-apple-darwin.tar.gz | wgpu (Metal) |
| macOS, Intel | lapstack-<ver>-x86_64-apple-darwin.tar.gz | wgpu (Metal) |
The browser app in an Electron window, with WebGPU on every platform and no launcher script.
| Platform | Files |
|---|---|
| Linux | lapstack-<ver>.AppImage, lapstack-desktop_<ver>_amd64.deb |
| Windows | NSIS installer (.exe) |
| macOS | .dmg, x64 and arm64 |
lapstack-lightroom-<ver>.zip holds lapstack.lrplugin: add it in File › Plug-in Manager, point it at the lapstack binary, then select the frames of a stack and choose Library › Plug-in Extras › Stack with lapstack, or export with lapstack as the Export To target. The result comes back into the catalog stacked above the first frame. lightroom/README.md has the settings and the details; desktop/README.md the desktop application's.
docs/engine.md (the engine and the command-line tool: transform, fusion, alignment, depth from focus, the raw and DNG paths, dust map, scale bar, stereo and 3D model, batch runs, performance, the wgpu engine) and docs/browser.md (the browser app: every layer and render, retouch, results and project files, the GPU aligner).docs/README.md.CONTRIBUTING.md for bug reports and changes, SECURITY.md for a security problem ([email protected]).lapstack is made by RAGTUX LLC. A contribution helps keep it going and buys nothing, because nothing is for sale.
lapstack is free software under the MIT license: Copyright (c) 2026 RAGTUX
LLC, LICENSE is the whole of it (SPDX MIT), and it covers the source in
this repository and everything built from it — the command-line tool, the
browser application, the desktop application and the Lightroom Classic
plug-in. Earlier revisions were published under other terms (AGPL-3.0-only
from 2026-09-24 to 2026-09-30, then a proprietary license); those terms stay
with the copies distributed under them and do not extend to this revision.
Paying for lapstack, where it is offered, buys support and services, not the
software: the software is yours.
Third-party components keep their own licenses and are listed with their
notices in THIRD-PARTY.md, which just third-party regenerates from the
Cargo metadata and the crates' own license files; a distributed build carries
it. Two need more than a listing:
vendor/rawler (MIT and LGPL-2.1 per
file, copyright Daniel Vogelbacher) inside crates/lapstack-raw, RAGTUX's
own LGPL-2.1 shim around it. It is kept a component of its own so that
the MIT-licensed parts and the LGPL work stay separate and the user can
replace it, as the LGPL asks, so lapstack never links it: lapstack-raw
is built as a shared library the CLI loads at run time and as a wasm
module the browser app loads beside its engine, and its
source — the crate and the patched rawler, with a workspace file so it
builds as it is — travels with every build (web/dist.sh puts
legal/lapstack-raw-src.tar.gz in the app; the CLI's downloads carry the
same tarball). vendor/rawler/LAPSTACK-PATCH.md has the obligations in
full; crates/lapstack-raw/README.md how to rebuild and drop in a
replacement.docs/README.md
rather than redistributed: they are their authors' and publishers' work,
under their own copyright.