Rendered at 05:32:32 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
giancarlostoro 11 hours ago [-]
Be fully aware it is AGPL licensed before you try to use any of this code for something "at work" without realizing it. That said, looks neat!
speerer 11 hours ago [-]
Exciting! I needed this last week, and now here it is. Thanks.
I share the annoyance about phone detection previees over-promising. But I'm pleased this comes with perspective correction and lighting correction together.
dmwood 11 hours ago [-]
Crashes on launch
macOS: macos-26_arm version installs (with intervention to permit running), but crashes on launch.
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: perspec [94673]
Path: /Users/USER//Perspec.app/Contents/Resources/perspec
Identifier: perspec
Version: ???
Code Type: ARM-64 (Native)
Role: Unspecified
Parent Process: Exited process [94672]
Coalition: com.adriansieber.Perspec [86355]
Responsible Process: Perspec [94671]
User ID: 501
Date/Time: 2026-08-04 12:50:37.5848 -0600
Launch Time: 2026-08-04 12:50:37.5821 -0600
Hardware Model: Mac13,1
OS Version: macOS 26.6 (25G72)
Release Type: User
Termination Reason: Namespace DYLD, Code 1, Library missing
Library not loaded: /opt/homebrew//libwebp.7.dylib
Referenced from: <47F30FA1-4AB9-310F-8988-5CABFEF76F5E> /Users/USER//Perspec.app/Contents/Resources/perspec
Reason: tried: '/opt/homebrew//libwebp.7.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew//libwebp.7.dylib' (no such file), '/opt/homebrew//libwebp.7.dylib' (no such file)
(terminated at launch; ignore backtrace)
Dyld Error Message:
1
adius 11 hours ago [-]
Thanks for the report. I'm looking into it!
adius 10 hours ago [-]
Fixed this on main.
The macOS build linked against Homebrew's libwebp by absolute path but never bundled it, so it only ran on machines that happened to have it installed. The build now copies all non-system dylibs into the app and rewrites the install names, and fails if any absolute reference survives.
Gualdrapo 10 hours ago [-]
Last time I used Gimp it had a plugin that let you correct perspective, wonder how they both compare
virtualritz 7 hours ago [-]
I build a tool like this with Claude in 2hs, uses Rust with OpenCV crate, egui GUI, PDF output.
Basically it steps through a folder with images, finds corners, user presses Space if ok, or adjusts corner if not (about 1 in 20 pages has a corner wrong).
Undistort, contrast correct based on histogram, etc. happens automatically.
On the last page pressing Space creates a PDF.
My brother and I were digitizing medical bills for our mother and everything we tried to do this with out there was meh, cost money or both! It seems as soon as you need PDF anything it's $$$.
This is a throwaway tool as we're now more and more getting bills as digital files anyway.
My only input was specs, otherwise it's "vibe coded" if you want.
But consider that the Rust crate ecosystem is mature and my prof. background is computer graphics.
Oh, and I have an image manipulation crate that I wrote for work (closed source for now, unfortunately) that has corner pin with area filtering as a primitive.
I was just surprised how possible this is now.
This was earlier this year (Opus 4.8 was just out) and while we were photographing the pages with our smartphones Claude wrote the tool.
OutOfHere 10 hours ago [-]
It is nagware:
> Before an image is saved, a "Buy License" banner is shown for 10 seconds.
nerdsniper 10 hours ago [-]
That seems pretty reasonable! It's also AGPL licensed and the source code is available on GitHub. 20 minutes with an LLM would likely yield you a nagware-free version if you value your time at less than $21/hour. Otherwise it costs just $7 to pay Adrian for their good work!
OutOfHere 10 hours ago [-]
Why, when I could use an AI to both detect the corners and write+run a completely free ad-hoc script to fix the perspective.
cvadict 51 minutes ago [-]
meh, every single license key ever issued is stored in the binary.... also you can just compile your own copy from scratch.
-or- just pay the author the $7 or whatevs if you use it.
esafak 9 hours ago [-]
The Google Camera app already does this (much). I look into this problem during a receipt scanning project. If you want development ideas look up "metric rectification" and 'manifold dewarping'; e.g. https://openaccess.thecvf.com/content/WACV2025/papers/Hertle...
stronglikedan 9 hours ago [-]
Samsung Galaxy camera as well. Just hit "scan" when it pops up and you get the same results.
adius 9 hours ago [-]
The "Initial Motivation" section in the article explains why existing mobile apps aren't good enough.
I share the annoyance about phone detection previees over-promising. But I'm pleased this comes with perspective correction and lighting correction together.
macOS: macos-26_arm version installs (with intervention to permit running), but crashes on launch. ------------------------------------- Translated Report (Full Report Below) ------------------------------------- Process: perspec [94673] Path: /Users/USER//Perspec.app/Contents/Resources/perspec Identifier: perspec Version: ??? Code Type: ARM-64 (Native) Role: Unspecified Parent Process: Exited process [94672] Coalition: com.adriansieber.Perspec [86355] Responsible Process: Perspec [94671] User ID: 501
Date/Time: 2026-08-04 12:50:37.5848 -0600 Launch Time: 2026-08-04 12:50:37.5821 -0600 Hardware Model: Mac13,1 OS Version: macOS 26.6 (25G72) Release Type: User
Crash Reporter Key: 9FD40ACB-279F-0F79-41E1-8B4D3B663EA7 Incident Identifier: 207F9047-B786-4C8C-8263-BA9C4DB370EB
Time Awake Since Boot: 320000 seconds
System Integrity Protection: enabled
Triggered by Thread: 0
Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace DYLD, Code 1, Library missing Library not loaded: /opt/homebrew//libwebp.7.dylib Referenced from: <47F30FA1-4AB9-310F-8988-5CABFEF76F5E> /Users/USER//Perspec.app/Contents/Resources/perspec Reason: tried: '/opt/homebrew//libwebp.7.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew//libwebp.7.dylib' (no such file), '/opt/homebrew//libwebp.7.dylib' (no such file) (terminated at launch; ignore backtrace)
Dyld Error Message: 1
Basically it steps through a folder with images, finds corners, user presses Space if ok, or adjusts corner if not (about 1 in 20 pages has a corner wrong). Undistort, contrast correct based on histogram, etc. happens automatically.
On the last page pressing Space creates a PDF.
My brother and I were digitizing medical bills for our mother and everything we tried to do this with out there was meh, cost money or both! It seems as soon as you need PDF anything it's $$$.
This is a throwaway tool as we're now more and more getting bills as digital files anyway.
My only input was specs, otherwise it's "vibe coded" if you want.
But consider that the Rust crate ecosystem is mature and my prof. background is computer graphics.
Oh, and I have an image manipulation crate that I wrote for work (closed source for now, unfortunately) that has corner pin with area filtering as a primitive.
I was just surprised how possible this is now.
This was earlier this year (Opus 4.8 was just out) and while we were photographing the pages with our smartphones Claude wrote the tool.
> Before an image is saved, a "Buy License" banner is shown for 10 seconds.
-or- just pay the author the $7 or whatevs if you use it.