HomeRoadmap
A live view. Updated as tools ship and priorities shift.
All planned tasks shipped — see history below.
Show 1 more (0 planned, 1 shipped)
Shipped
All planned tasks shipped — see history below.
Show 1 more (0 planned, 1 shipped)
Shipped
All planned tasks shipped — see history below.
Show 11 more (0 planned, 11 shipped)
Shipped
- Optional-content (layer) visibility diff and signature state
- Units-aware dimension comparison and 'value unchanged, measured length changed' flag
- Scanned pages, later: OCR text layers with a baseline per word, scan grading only inside picture regions, one side scanned against a born-digital side
Show 13 more (0 planned, 13 shipped)
Shipped
- Research briefs 2–7 from the vision doc (tree matching, tagged-PDF reality, vector comparison, FPC/MCO conventions, evaluation methodology, competitor teardown)
- Synthetic corpus generator with exact ground truth: six document families, three producers, a scored ratchet
- Document model: flat node tree with per-node hash, weight, height and semantic key; text, vector, image, form and annotation layers
- Layout-first text extraction: words, lines, blocks, tables, columns, furniture
- Page pairing by content (sheet key, signature, similarity), never by index alone
- Tree matcher: semantic anchors, exact subtree anchors, container propagation, order-aware gap alignment, global move sweep, split/merge
- Vector layer: canonical path hashing, dash reassembly, grouping, Hausdorff verifier, raster fallback
- Callout identity (value + anchors): moved, value changed, retargeted
- Image, form-field and annotation layers; flattened forms compare with live forms
- Classifier: kinds only from the mapping; clustered moves; reflow cascades; segment-level and sub-image parts
- Viewer: no picker, move vocabulary (dashed source, solid destination, printed displacement), reviewer ordering
- OCR channel for scanned and stroked-text pages (PaddleOCR, words snapped into rows, scan-aware classification)
- Everyday browser and office PDFs read as printed: spaces, columns, lists, spacing, Arabic, vertical Japanese (review 2)
All planned tasks shipped — see history below.
Show 47 more (0 planned, 47 shipped)
Shipped
- v1 — visual + overlay + text-diff modes with smartCompare pixel engine
- v1 — dHash fast-reject + grayscale + pixelmatch + morph close + CCL + tone classifier
- v1 — focal-point zoom, drag-pan, sync scroll, fullscreen, overlay slider
- v2 — editor template port (chrome unification with PDF Editor family)
- v2 — featured-tool landing page + homepage placement
- v3 — lean rebuild on strategy substrate (one driver, three mode strategies)
- v3 — shared lib/ primitives (align.ts RANSAC TSR, pixel-engine.ts, header-footer.ts, text-cache.ts)
- v3 — right-pane ChangeList + filter chips + pulse-on-click + history panel
- v3 — IndexedDB result cache with build-SHA invalidation
- v3.1 — histogram-diff anchoring (Pearce / git xhistogram)
- v3.1 — hyphenation merge (geometric, language-agnostic)
- v3.1 — dmp linesToChars line-mode pre-pass
- v3.1 — Heckel neighbor extension + duplicate-bucket nearest-y fallback
- v3.1 — paragraph MOVE detection (consecutive-anchor consistent-dy clustering)
- v3.1 — cross-page MOVE promotion via FNV-1a hash
- v3.1 — row-level MODIFY with char-level sub-paint metadata
- v3.1 — post-promotion 5-stage add/remove → MODIFY pass (Jaccard + dmp similarity)
- v3.2 — per-side MODIFY emission (yellow lands at each panel's actual row position)
- v3.2 — word-level yellow MODIFY (paint only on differing chars, Adobe-style)
- v3.2 — fuzzy cross-page MODIFY promote (drifted paragraphs)
- v3.2 — paragraph MOVE jitter tolerance + gap≤2 consecutive relaxation
- v3.2 — hyphen unicode class (U+002D / U+00AD / U+2010 / U+2011 / U+2013)
- v3.2 — pixel-fallback chip count + status-bar alignment
- v3.2 — orphan page counting (13-pg vs 14-pg compare)
- v3.2 — tighter post-promotion thresholds (PROMOTE_SIMILARITY 0.65, token-Jaccard floor 0.35)
- v3.2 — pixel classifier threshold bumps (kills blueprint title-block flood)
- v3.2 — table-cell positional MODIFY (Tier 0.5, identical-cell-ratio ≥ 0.3 gate)
- v3.2 — histogram longest-run anchor pairing (Pearce HistogramDiff.java::tryLongestCommonSequence)
- v3.2 — filename labels on Original / Modified panels (restored from v2)
- v3.2 — additive pixel residual on mixed text+drawing pages (overlap-filter > 50% with text-tier)
- v3.3 — pre-blur 2-px canvases before smartCompare (sub-pixel jitter mask)
- v3.3 — drop oversize regions (> 15% canvas) prevents whole-drawing yellow blanket
- v3.3 — skip morphClose by default (no more mega-CCL components)
- v3.3 — RANSAC affine alignment via lib/align.ts (anchorPairs from document-mode → align B → smartCompare)
- v3.4 — adaptive pre-blur on alignment quality (0 px when near-identity affine for same-template forms; 2 px when drift)
- v3.4 — restored signature detection thresholds (CONTENT_CHANGE_THRESHOLD 50, MIN_REGION_AREA 12, morphClose default 1)
- v3.4 — synthesized Change records from pixel-residual highlights (ChangeList + chip count + pulse navigation all see them)
- v3.6 — re-adopted document-type selector (Document / AEC-Blueprint / Image-Scan) on splash + ?mode= hatch
- v3.6 — AEC / Blueprint hybrid: word-level text pass + masked geometry pixel pass + RANSAC pre-align
- v3.6 — in-place text revisions classify as MODIFY (overlapping leftover pair = same element edited; co-location beats similarity floor)
- v3.6 — change-location tags (sheet region + XY) in the AEC change list
- v3.6 — geometry MOVE detection (dHash + zero-mean NCC + high-freq interior gate, global mutual-best, square-pad blob crop)
- v3.6 — Fonts panel populated (commonObjs iteration) + Form Fields empty-state hardening
- v3.6 — per-panel ruler (independent A/B, px/in/mm) + toolbar Export (marked PDF) + plain-wheel scroll-zoom
- v3.6 — hang guard: bounded timeouts on every pdfjs worker call (render/getTextContent/getPage/getDocument) + adaptive wall-clock; graceful 'timed out' recovery, timeout-aware page status, no silent 'no changes'
- ?debug=1 verbose tier-by-tier console logging for QA
- v4 — one engine for every PDF: structured document model, tree matcher, vector/image/form/annotation layers, moves as moves (see the v4 card)
- Gerber Viewer — editor mode (select / move / copy / delete / add primitives / save Gerber out)
- Gerber Viewer — netlist extract + IPC-D-356 compare
- Gerber Viewer — DRC expansion (paste / inter-layer / sliver checks; silk and mask ship today)
- Gerber Viewer — faster open on large multi-layer boards (the copper polygon pre-pass dominates load time on a 10-layer job)
- CAD viewers v0.7 (engine) — seam census asks a winding question instead of a density one (a ring needed 20 samples/period to be recognised, so an under-sampled rim silently left an annular band unfilled: watertight meshes carrying up to 14.5% volume error); boundary scale-matching solves the joint-needle class (393 -> 62 needles, max aspect 372 -> 64) and stays opt-in pending a junction-arc regression on the nut inner-thread family
- Visio .vsdx viewer
- DICOM — medical imaging viewer
- IFC — BIM model viewer
- KiCad .kicad_pcb native viewer
- Shapefile / GeoTIFF — GIS viewers
Show 26 more (4 planned, 22 shipped)
Planned
- NIfTI / FITS — scientific image viewers
- Rhino .3dm viewer
- SPSS .sav viewer
- MATLAB .mat viewer
Shipped
- Gerber Viewer — open RS-274X / X2 / X3 + Excellon, archive auto-detect, layer auto-classify, realistic PCB palette
- Gerber Viewer — pan / zoom / fit / 1:1 / mirror / 90° rotation, URL viewport snapshot, status bar with cursor coords
- Gerber Viewer — measure tool with snap-to-pad, distance + angle + reference-pad-anchored mode
- Gerber Viewer — three-pane CAM350 layout: layer rail, canvas, inspector accordion (Job info, Apertures, Drill table, DRC, PnP, Test, Measurements, About)
- Gerber Viewer — World-View minimap with click-to-recenter
- Gerber Viewer — command palette (⌘/) + Find modal (⌘F: D-code / refdes / coords) + Print snapshot
- Gerber Viewer — DRC checks (trace width, drill, annular ring, copper-to-edge, trace clearance, shorts, pour-to-trace) with fab presets
- Gerber Viewer — diff mode: slider + XOR comparison of two archives
- Gerber Viewer — trace pick (click net → BFS highlight, cross-layer via drill correlation)
- Gerber Viewer — 3D board preview with CSG drill cuts + orbit controls
- Gerber Viewer — flex / rigid-flex detection, stackup pane with IPC-2223 bend radius, vertical bend slider in 3D
- Gerber Viewer — WebGL2 polygon-mesh GPU renderer (opt-in)
- Gerber Viewer — pick-and-place / CPL overlay (.pos / CSV)
- Gerber Viewer — Fab-readiness score + drill CSV + aperture CSV downloads
- Gerber Viewer — exports: PNG / SVG / DXF / Print
- Gerber Viewer — ODB++ / IPC-2581 file format support, including flex / rigid-flex ODB++ (coverlay, stiffener, bend / flex / rigid regions, user-defined pad shapes)
- STEP / DXF — CAD drawing viewer (in-house Rust→WASM B-rep engine, 6 mesh formats, section view, assembly tree)
- CAD viewers v0.2 — top-floating measure rail (4 modes + path toggle + cursor coach), per-snap-type glyphs, polygon ghost + close-ring, smooth camera tween, Pan / Zoom-Window / Home / Bookmarks / TreeSearch, face-flood-fill selection + right-click context menu, STEP explode, display + lighting + render-quality presets, canonical editor primitives extracted (useEditorHistory, ContextMenu, measure-math, edge-adjacency)
- CAD viewers v0.3 (engine) — STEP unit-context parsing (mixed INCH+MILLI/METRE), STEP PRODUCT NULL-description deser fix, STEP arc parametric surfacing for 1-click radius auto-detect
- CAD viewers v0.4 — canonical top-bar layout across the 8-viewer family: FILE | MODE | NAV | DISPLAY | ACTIONS | ⌘K group order with dividers + TopBarSpacer primitive, Dims→Bbox / PNG→Screenshot naming sweep
- CAD viewers v0.5 — manufacturability (DFM) analysis on all 6 mesh viewers: deep-hole / countersink / counterbore / bolt-circle (PCD), sharp internal corners, draft angle, undercut (pull-direction picker), thin-wall; process-aware cost + 0–100 difficulty (CNC / FDM-SLA / sheet metal / casting); click-a-finding-to-highlight in 3D; analyzeDfm / analyzeCost on the window.loft.tools agent API
- CAD viewers v0.6 (engine) — surface-quality pass measured against an independent kernel on real production parts: 3-D-metric triangulation of curved blends (parameter-space Delaunay optimises the wrong shape on anisotropic surfaces), sheet-metal seam cracks closed at the boundary-repair step, per-edge roundness floor so a rim shared between a cylinder and a blend no longer over-samples one to serve the other
All planned tasks shipped — see history below.
Show 8 more (0 planned, 8 shipped)
Shipped
All planned tasks shipped — see history below.
Show 3 more (0 planned, 3 shipped)
Shipped
All planned tasks shipped — see history below.
Show 9 more (0 planned, 9 shipped)
Shipped
All planned tasks shipped — see history below.
Show 33 more (0 planned, 33 shipped)
Shipped
All planned tasks shipped — see history below.
Show 5 more (0 planned, 5 shipped)
Shipped
All planned tasks shipped — see history below.
Show 3 more (0 planned, 3 shipped)
Shipped
- Light token palette (swap values, keep semantic names)
- System-preference auto-pick + per-user toggle
- Audit every tool surface in light mode
All planned tasks shipped — see history below.
Show 27 more (0 planned, 27 shipped)
Shipped
- v1 — eight modes wired (Select / Edit / Add / Sign / Redact / Annotate / Fill Forms / OCR)
- v1 — continuous-scroll virtualised canvas
- v1 — Photoshop-style history timeline
- v1 — find / search with scrollbar marker column
- v1 — Save via FS Access API + download fallback
- v1.1 — Watermark mode with live current-page preview
- v1.1 — Bates numbering
- v1.1 — Header / Footer with token resolve
- v1.1 — Numeric-precision page crop
- v1.1 — Bookmarks editor (read pdfjs / write pdf-lib)
- v1.1 — Metadata editor
- v1.1 — Excel export via pdf-table-detect
- v1.1 — Markdown export (headings + lists + tables)
- v1.1 — True byte-level redact (page rasterisation)
- v1.1 — PII auto-detect (SSN / email / phone / CC / IBAN)
- v1.1 — Move tool (Adobe Hand) + 8× zoom + edge-accessible pan
- v1.1 — Edit-text drag-select for substring edits
- v1.1 — Right pane single-active accordion + pinned history
- v1.2 — true in-place text edit (pdfium-wasm content-stream rewrite)
- v1.2 — click-to-edit with caret at click position (Acrobat-style)
- v1.2 — same-line sibling shift when edit width changes
- v1.2 — line wrap at right margin + push paragraphs down (reflow)
- v1.2 — preserve original font / color / matrix on edit
- v1.2 — base-14 font fallback for subset miss
- v1.2 — NotoSans embed for non-base-14 families (bold + italic variants)
- v1.2 — toast warning when reflow clips past page bottom
- v1.2 — smallest-text-object-containing-click matching
- qr-code-generator — logo embedding is the moat vs commodity QR generators; verify error-correction levels work with embedded logos at common sizes
- canning-calculator — botulism safety stakes; cross-check pressure / time tables against USDA Complete Guide to Home Canning (current source of truth?)
Show 1 more (0 planned, 1 shipped)
Shipped
- compare-pdf — annotated diff PDF export (shipped 2026-05-21)
- v3.5 — multilingual / CJK / RTL support (current whitespace-strip normalization breaks non-Latin)
- v3.5 — phase-correlation image registration for image-only PDFs (no text anchors → no RANSAC path today)
- v3.5 — confidence-% legend tooltip on chip count (UX clarity for tier debugging)
- v3.5 — summary report PDF export (matched / changed / pages summary)
- v3.5 — tunable cross-page promote-similarity threshold slider in UI
Show 3 more (0 planned, 3 shipped)
Shipped
- v3.6 — move-pairing end-to-end visual confirm on a real relocated element (superseded by v4 moves)
- v3.5 — per-cell diff for mismatched-row-count tables (v4 order-aware gap alignment)
- v3.5 — form-field diff on pages ≥ 2 (v4 reads fields on every page)
- font picker beyond Helvetica / Times / Courier (current toolbar exposes only those three; should expose every embedded NotoSans variant + family detection from the doc)
- paragraph reflow that actually works on real-world PDFs (the v1.2 wrap + push-down logic ships but doesn't trigger correctly when a paragraph's line count changes from a long edit — line detection or trigger heuristic needs a rebuild against a real-PDF corpus)
- digital signature (WebCrypto)
- faithful Word (.docx) export
- measure tool
- mid-word break on overflow wrap
- cross-page overflow (push content to new page instead of clipping)