Materializr
Open-source parametric 3D CAD for makers — constraint sketches, solid modeling, threads, SVG & text engraving, STL/STEP export. Android, iPad, Linux, Mac, Windows. Vibe coded.
Compare images, PDFs and TIFFs side by side with synchronized zooming and panning. Files stay in your browser.
DesignTypeScript · JavaScriptGitHub @yusukeenomotoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Compare images, PDFs and TIFFs side by side in the browser. Synchronized zoom and pan, per-pane offsets, video + operation log recording. Files never leave your machine.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A browser-based viewer for arranging images, PDFs, and TIFFs in multiple panes. Use it to inspect files side by side with synchronized zooming and panning. 画像・PDF・TIFFを複数のペインに並べて表示し、同期ズームやパンで見比べられるブラウザービューアーです。 PaneViewer is for visual inspection only. It does not guarantee that files match. このアプリは視覚的に確認を行うもので、ファイル間の一致を保証するものではありません。Read the full README ↗
A browser-based viewer for arranging images, PDFs, and TIFFs in multiple panes. Use it to inspect files side by side with synchronized zooming and panning.
画像・PDF・TIFFを複数のペインに並べて表示し、同期ズームやパンで見比べられるブラウザービューアーです。
PaneViewer is for visual inspection only. It does not guarantee that files match.
このアプリは視覚的に確認を行うもので、ファイル間の一致を保証するものではありません。
localStorage (three keys, prefixed image-viewer.). The contents and names of the files you open are never stored.Drop one or more files onto a pane, or click an empty pane to select files. The first file replaces the target pane; the rest fill empty panes in pane order. The grid expands automatically, up to nine panes. Other loaded images are kept; if there is not enough room, a message reports how many files were not loaded. Click a loaded pane's file name to choose replacement files.
複数ファイルのドロップ・選択に対応しています。1枚目を操作したペインへ、残りを空きペインへ 順に配置し、最大9ペインまで表示を自動で広げます。ほかの画像は保持し、空きが足りない分は 件数を通知します。読み込み済みのファイル名をクリックして、別のファイルへ変更できます。
| Input | Action |
|---|---|
| Two-finger scroll (trackpad) | Pan |
| Pinch, or ⌥ + wheel | Zoom |
| Mouse wheel | Zoom |
| Drag | Pan |
| Double click | Fit the pane |
0 / 1 | Fit / actual size |
+ / - | Zoom in / out |
Ctrl(⌘)+Space+click | Zoom in 2× at the pointer |
Ctrl(⌘)+Alt(⌥)+Space+click | Zoom out 2× at the pointer |
| Arrow keys | Pan |
R / Shift+R | Rotate right / left |
H / V | Flip horizontally / vertically |
S / Shift+S | Toggle sync / align panes |
Ctrl(⌘)+S | Save a PNG |
Ctrl(⌘)+Shift+C | Copy a PNG to the clipboard |
Single-key shortcuts fire only without a modifier, so ⌘R, ⌘H and the rest
stay with the browser. The combinations with Ctrl(⌘) above are the only
exceptions.
The recording button writes compare_<timestamp>.mp4 (or .webm) plus
compare_<timestamp>.json. Browsers allow only one automatic download at a
time, so the toast keeps a button to save the log by hand if the second file is
blocked.
Developed and tested on Chrome. Recording uses MediaRecorder, whose container
support differs between browsers: Chrome and Safari produce MP4, Firefox
produces WebM, which QuickTime and PowerPoint may not play. Everything else
relies on widely supported APIs.
Use Node.js 24.22.1, matching the Duo Checker build environment.
The version is recorded in .nvmrc and used by CI.
nvm install
nvm use
npm ci
npm run dev # http://localhost:5173
npm test # vitest
npm run typecheck
npm run build # production build into dist/
predev and prebuild copy PDF.js's cmaps/, standard_fonts/, wasm/ and iccs/ into
public/. Without them, PDFs whose fonts are not embedded render with missing
text, so do not remove that step. Generated PDF.js files are not tracked; public/_headers and public/favicon.svg are tracked.
Tests cover the parts that can break silently: the relative-sync transform, orientation math, the operation-log format, trackpad detection, and settings migration. Rendering, recording and file loading are still verified by hand.
wrangler.jsonc is the configuration for the author's own Cloudflare Workers
deployment. A fork should change name and routes before running
npm run deploy, or delete the file and serve dist/ with any static host.
PaneViewer is released under the MIT License. See LICENSE and THIRD-PARTY-NOTICES.md for application and dependency license information. Security reports go to SECURITY.md.