- commit
- 095ccbcb5290deec8968b6e968004cc5405a58f2
- parent
- a3b0c9010ff505c4daf898f110084e9baecf37ee
- author
- Dami <dami.etoile@gmail.com>
| A | LICENSES/ | 43 | ++++++++++++++++++++++++++++++ |
| M | NOTICE.md | 2 | + |
| M | fuji.html | 2 | +- |
| M | index.html | 14 | +-------- |
| M | perspective.html | 2 | +- |
| M | style.css | 3 | +- |
@@ -0,0 +1,43 @@
1+ISC License2+3+Copyright (c) 2026 Lucide Icons and Contributors4+5+Permission to use, copy, modify, and/or distribute this software for any6+purpose with or without fee is hereby granted, provided that the above7+copyright notice and this permission notice appear in all copies.8+9+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES10+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF11+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR12+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES13+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN14+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF15+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.16+17+---18+19+The following Lucide icons are derived from the Feather project:20+21+airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out22+23+The MIT License (MIT) (for the icons listed above)24+25+Copyright (c) 2013-present Cole Bemis26+27+Permission is hereby granted, free of charge, to any person obtaining a copy28+of this software and associated documentation files (the "Software"), to deal29+in the Software without restriction, including without limitation the rights30+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell31+copies of the Software, and to permit persons to whom the Software is32+furnished to do so, subject to the following conditions:33+34+The above copyright notice and this permission notice shall be included in all35+copies or substantial portions of the Software.36+37+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR38+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,39+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE40+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER41+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,42+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE43+SOFTWARE.@@ -21,6 +21,8 @@ Original notices are retained in the source. Both GPL and AGPL license texts are
2121 - Film simulation LUTs in `assets/luts/` (provia, velvia, astia, classic_chrome, pro_neg_std, pro_neg_high, eterna, acros, mono and filter variants, sepia): Bastian Bechtold, https://github.com/bastibe/Fujifilm-Auto-Settings-for-Darktable revision `79a458ce9bc28c870091c978b829aaed8dbdb45a`, GPL, unmodified. They were fitted from a Fujifilm camera's own renders against darktable's default render and approximate the camera looks.2222 - `assets/luts/neutral-dr*.png`: generated by `scripts/neutral-lut.py` using darktable-cli 5.6.1 (GPL-3.0-or-later). They map LibRaw's render to darktable's default scene-referred render so the film simulation LUTs apply as intended. Film simulation names are Fujifilm trademarks used to identify the looks being approximated; this project is not affiliated with Fujifilm.2323 24+- Interface glyphs on the landing page and empty states: Lucide Icons (https://lucide.dev), ISC license, see `LICENSES/LUCIDE.txt`.25+2426 ## Extraction changes (2026-09-21)2527 2628 `scripts/extract.py` reproducibly selects darktable's original constants, line classification, vector helpers, homography, RANSAC, model fitness and Nelder–Mead fit from the pinned source. It uses the original LSD detector and simplex implementation.@@ -27,7 +27,7 @@
2727 <section class="stage" id="stage" aria-label="Photo">2828 <div class="canvas-wrap"><canvas id="canvas" aria-label="Developed photo"></canvas><img id="photo" alt="Camera JPEG" hidden></div>2929 <button class="empty" id="open-empty" aria-label="Open RAF">30- <svg width="64" height="64" viewBox="0 0 56 56" aria-hidden="true"><path d="M14 6h20l10 10v34H14z" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linejoin="round"/><path d="M34 6v10h10" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linejoin="round"/><text x="28" y="40" text-anchor="middle" font-size="13" font-weight="700" fill="currentColor" font-family="-apple-system,system-ui,sans-serif">RAF</text></svg>30+ <svg width="72" height="72" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"/><path d="M14 2v5a1 1 0 0 0 1 1h5"/><circle cx="10" cy="12" r="2"/><path d="m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22"/></svg>3131 <svg class="plus" width="28" height="28" viewBox="0 0 28 28" aria-hidden="true"><path d="M14 5v18M5 14h18" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round"/></svg>3232 </button>3333 <div class="hud">@@ -23,23 +23,13 @@
2323 <ul class="tools">2424 <li>2525 <a class="tool-card" href="./perspective">26- <svg viewBox="0 0 160 96" aria-hidden="true">27- <path d="M42 14 L118 14 L138 82 L22 82 Z" fill="none" stroke="#5e5e5e" stroke-width="4" stroke-linejoin="round"/>28- <path d="M60 14 L100 14 M52 40 L108 40 M46 62 L114 62" stroke="#5e5e5e" stroke-width="3" stroke-linecap="round"/>29- <rect x="42" y="14" width="76" height="68" rx="3" fill="none" stroke="#f0c04a" stroke-width="4"/>30- <path d="M42 40 L118 40 M42 62 L118 62" stroke="#f0c04a" stroke-width="3" stroke-linecap="round"/>31- </svg>26+ <span class="tool-glyph"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M14 15H9v-5"/><path d="M16 3h5v5"/><path d="M21 3 9 15"/></svg></span>3227 <h2>Perspective</h2>3328 </a>3429 </li>3530 <li>3631 <a class="tool-card" href="./fuji">37- <svg viewBox="0 0 160 96" aria-hidden="true">38- <path d="M34 14h62l30 30v38H34z" fill="none" stroke="#5e5e5e" stroke-width="4" stroke-linejoin="round"/>39- <path d="M96 14v30h30" fill="none" stroke="#5e5e5e" stroke-width="4" stroke-linejoin="round"/>40- <rect x="52" y="44" width="56" height="26" rx="4" fill="#f0c04a"/>41- <text x="80" y="63" text-anchor="middle" font-size="16" font-weight="700" fill="#1a1400" font-family="-apple-system,system-ui,sans-serif">JPG</text>42- </svg>32+ <span class="tool-glyph"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="m14.31 8 5.74 9.94"/><path d="M9.69 8h11.48"/><path d="m7.38 12 5.74-9.94"/><path d="M9.69 16 3.95 6.06"/><path d="M14.31 16H2.83"/><path d="m16.62 12-5.74 9.94"/></svg></span>4333 <h2>Fuji</h2>4434 </a>4535 </li>@@ -27,7 +27,7 @@
2727 <section class="stage" id="stage" aria-label="Photo">2828 <div class="canvas-wrap"><canvas id="canvas" aria-label="Current photo"></canvas><canvas id="overlay" aria-hidden="true"></canvas></div>2929 <button class="empty" id="open-empty" aria-label="Open photo">30- <svg width="64" height="64" viewBox="0 0 56 56" aria-hidden="true"><rect x="7" y="11" width="42" height="34" rx="5" fill="none" stroke="currentColor" stroke-width="2.5"/><circle cx="20" cy="22" r="4" fill="currentColor"/><path d="M9 42l13-13 9 9 6-6 10 10" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linejoin="round"/></svg>30+ <svg width="72" height="72" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 5h6"/><path d="M19 2v6"/><path d="M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/><circle cx="9" cy="9" r="2"/></svg>3131 <svg class="plus" width="28" height="28" viewBox="0 0 28 28" aria-hidden="true"><path d="M14 5v18M5 14h18" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round"/></svg>3232 </button>3333 <div class="hud">@@ -68,7 +68,8 @@ h1, h2, h3, p { margin: 0; }
6868 transition: transform .12s, background .12s;6969 }7070 .tool-card:active { transform: scale(.97); background: var(--surface-2); }71-.tool-card svg { width: 100%; height: auto; margin-bottom: 14px; }71+.tool-glyph { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--surface-2); color: var(--tint); margin-bottom: 18px; }72+.tool-glyph svg { width: 34px; height: 34px; }7273 .tool-card h2 { font-size: 17px; font-weight: 600; }7374 .tool-card p { font-size: 13px; color: var(--label-2); margin-top: 3px; }7475