<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>cat/gudpics</title>
<subtitle>a photo toolkit for your phone that never uploads: fuji film looks for raw files, social crops, error level analysis</subtitle>
<id>https://src.rest/cat/gudpics/</id>
<link href="https://src.rest/cat/gudpics/"/>
<updated>2026-10-17T17:01:57-06:00</updated><entry>
<id>55012d4d1e21bc5446ea8d0440f5fce9981db042</id>
<title>Packaging: serve from a plain file server under a path for forge site deploy</title>
<link href="https://src.rest/cat/gudpics/commit/55012d4d1e21bc5446ea8d0440f5fce9981db042/"/>
<author><name>cat</name></author>
<updated>2026-10-17T17:01:57-06:00</updated>
<content type="text">forge site deploy sets FORGE_SITE_BASE and serves dist/ from a file server
with no extensionless routes, so with it set the pages, manifest shortcuts
and service worker name pages by file (./fuji.html). The service worker reads
paths relative to its own directory, which changes nothing at the root of
gud.pics. .forge/sites declares the app so it deploys to
https://pages.src.rest/sites/cat/gudpics/app/.</content>
</entry>
<entry>
<id>970270f355f14975280b365df6773a4fc7cddd61</id>
<title>CI: rebuild and test the perspective core, then package, for src.rest</title>
<link href="https://src.rest/cat/gudpics/commit/970270f355f14975280b365df6773a4fc7cddd61/"/>
<author><name>cat</name></author>
<updated>2026-10-17T17:01:34-06:00</updated>
<content type="text">forge attest runs .forge/ci in a clean worktree of each commit and signs the
result into refs/notes/ci; forge push sends it with the branch. The script
follows the README&#39;s rebuild loop: scripts/build.sh, node
scripts/test-core.mjs and scripts/package.py. Emscripten&#39;s system libraries
live in ~/.cache/gudpics/emscripten, outside the worktree, so runs don&#39;t
rebuild them.</content>
</entry>
<entry>
<id>09378f89521c2a72b0fe367b8fd4b040681ee557</id>
<title>ELA tool: live error level analysis with quality and amplify, JPEG quality estimate, PNG export</title>
<link href="https://src.rest/cat/gudpics/commit/09378f89521c2a72b0fe367b8fd4b040681ee557/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T13:05:39-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>5aa71722eb4432fb419e0cb2de63193a2e7728c5</id>
<title>Landing: square tiles with glyph top-left and name anchored bottom</title>
<link href="https://src.rest/cat/gudpics/commit/5aa71722eb4432fb419e0cb2de63193a2e7728c5/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T12:41:17-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>934d0b53beead12c44f0b6bc0758a091108a8187</id>
<title>Landing: info button and details sheet per tool card</title>
<link href="https://src.rest/cat/gudpics/commit/934d0b53beead12c44f0b6bc0758a091108a8187/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T12:39:38-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>f41a40e37d0e93986ab59189c91edec00132014e</id>
<title>Landing: drop Source row, trim About to the top level</title>
<link href="https://src.rest/cat/gudpics/commit/f41a40e37d0e93986ab59189c91edec00132014e/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T12:06:11-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>9fb3a63acf449f78c194a2d977058aa2af8fd8ca</id>
<title>Disable text selection, drag and pinch zoom; keep chip rows and sliders touchable</title>
<link href="https://src.rest/cat/gudpics/commit/9fb3a63acf449f78c194a2d977058aa2af8fd8ca/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T12:01:23-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>2297218ffb1d781bca3be48cb94bd53625f0f181</id>
<title>Social: opaque pinned rotate button</title>
<link href="https://src.rest/cat/gudpics/commit/2297218ffb1d781bca3be48cb94bd53625f0f181/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T12:00:18-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>64e55dba27ec3974e2e581b59e48398eafa7e3b1</id>
<title>Social: let the ratio list scroll clear of the pinned rotate button</title>
<link href="https://src.rest/cat/gudpics/commit/64e55dba27ec3974e2e581b59e48398eafa7e3b1/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T11:50:18-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>970c76f7112597ab3673e375819565c02b03117e</id>
<title>Social: grouped aspect ratios with a pinned rotate control</title>
<link href="https://src.rest/cat/gudpics/commit/970c76f7112597ab3673e375819565c02b03117e/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T11:49:55-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>5bfdae4ed6ad18784ea7c78e5435ecceb11441db</id>
<title>Social tool: post formats, crop or pad, frame, vignette, grain; share opens inside the tap with a pre-rendered JPEG</title>
<link href="https://src.rest/cat/gudpics/commit/5bfdae4ed6ad18784ea7c78e5435ecceb11441db/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T11:32:24-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>27136f2f67a0763f0f199eb1ae2224832a58d378</id>
<title>Fuji: apply in-camera lens corrections from RAF metadata (distortion, CA, vignetting) with camera-matching scale</title>
<link href="https://src.rest/cat/gudpics/commit/27136f2f67a0763f0f199eb1ae2224832a58d378/"/>
<author><name>Dami</name></author>
<updated>2026-09-22T11:10:27-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>fba043ee54181fa22d0a23dc1888169a29a5ef3d</id>
<title>Measure app height in JS; dvh resolves stale in installed Android windows</title>
<link href="https://src.rest/cat/gudpics/commit/fba043ee54181fa22d0a23dc1888169a29a5ef3d/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T23:11:13-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>dfb1f90cd0ae7dd103bc8d81d6ce71f8a5362f27</id>
<title>Never ship viewport-fit=cover to Android; add it on iOS at load</title>
<link href="https://src.rest/cat/gudpics/commit/dfb1f90cd0ae7dd103bc8d81d6ce71f8a5362f27/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T23:09:35-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>cfc3fd2e51a7e27b5b5016512d369afddcab42af</id>
<title>Size canvas box to the picture so the line overlay aligns for any aspect</title>
<link href="https://src.rest/cat/gudpics/commit/cfc3fd2e51a7e27b5b5016512d369afddcab42af/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T23:00:31-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>175cac3adadb9beff9160feac2a6988b865667c0</id>
<title>Tool tile glyphs without backplate</title>
<link href="https://src.rest/cat/gudpics/commit/175cac3adadb9beff9160feac2a6988b865667c0/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T22:36:36-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>095ccbcb5290deec8968b6e968004cc5405a58f2</id>
<title>Lucide glyphs for tool tiles and empty states</title>
<link href="https://src.rest/cat/gudpics/commit/095ccbcb5290deec8968b6e968004cc5405a58f2/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T22:34:42-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>a3b0c9010ff505c4daf898f110084e9baecf37ee</id>
<title>Fuji tool: develop RAF with LibRaw wasm and apply film simulation LUTs</title>
<link href="https://src.rest/cat/gudpics/commit/a3b0c9010ff505c4daf898f110084e9baecf37ee/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T22:16:06-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>d0461c2d4dcb2798d65f6f9cf553ae156650924a</id>
<title>Content-hashed static assets, network-first pages, immutable cache headers</title>
<link href="https://src.rest/cat/gudpics/commit/d0461c2d4dcb2798d65f6f9cf553ae156650924a/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T22:10:09-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>22d0b46654c9ca6c0cd0a818189410b6546e0ec0</id>
<title>Fuji tool: extract the in-camera JPEG from a RAF with film simulation and camera details</title>
<link href="https://src.rest/cat/gudpics/commit/22d0b46654c9ca6c0cd0a818189410b6546e0ec0/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T21:43:44-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>30fe6299788ae3a70b850705dbb797ee5b4c67b1</id>
<title>Keep viewport-fit=cover on iOS only so Android does not hide the toolbar</title>
<link href="https://src.rest/cat/gudpics/commit/30fe6299788ae3a70b850705dbb797ee5b4c67b1/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T21:29:33-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>cc5dc795aab71199b6a4e01ae518549dcac808f4</id>
<title>Lines switch in sheet, direct sheet close handlers, reload on SW takeover</title>
<link href="https://src.rest/cat/gudpics/commit/cc5dc795aab71199b6a4e01ae518549dcac808f4/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T21:26:33-06:00</updated>
<content type="text"></content>
</entry>
<entry>
<id>e716e076f2caad416e3ccd7f65e180da3069d282</id>
<title>gud.pics: mobile-first photo toolkit with perspective tool</title>
<link href="https://src.rest/cat/gudpics/commit/e716e076f2caad416e3ccd7f65e180da3069d282/"/>
<author><name>Dami</name></author>
<updated>2026-09-21T21:22:44-06:00</updated>
<content type="text"></content>
</entry>
</feed>
