Changelog
Every release, newest first. BurstPick is a perpetual license — every update below is free for existing owners.
-
v1.6.1
Jul 9, 2026Added
- Scroll through a burst with the mouse wheel over the filmstrip. Hover the filmstrip and scroll the wheel to step frame by frame — wheel down for the next frame, wheel up for the previous — mirroring the main viewer's scroll-to-zoom. Hold Shift while scrolling to pan the strip sideways instead of changing frames. Works in both the grid and the lightbox.
-
v1.6.0
Jul 9, 2026Added
- Compare (multi-up survey + triage, Champion & Contenders) and Smart Zoom v2 point tracking are now on by default. Both shipped dark behind build flags in v1.5.0 for a targeted beta and have since been smoke-verified — no action needed to use them. Opening Compare on a burst of more than four frames now lands you on the triage survey wall by default; Smart Zoom v2's zero-model point tracker now runs by default when "Eye relative" zoom is on.
- Compare: survey a large burst on a triage wall, then promote frames into the comparison. Opening Compare on a big burst (more than four frames) now lands you on a fast survey wall of the whole burst — each frame shows its quality score and a focus/eye sharpness cue, so you can spot the keepers at a glance without zooming. Click to promote the frames worth judging (up to four), press "Judge these" to hand them to the side-by-side comparison, and "Back to triage" to keep surveying — your picks stay intact. The AI's top four are pre-promoted so the comparison is never empty and you can see and override its choices. Ships behind the Compare feature flag (dark until the v1.6 Compare + Smart Zoom general-availability release).
- Grid: a visible "Survey"/"Compare" button on each expanded burst's header.
Previously the only way into Compare from the grid was the
Cshortcut or a right-click "Compare in burst" — easy to miss. Every expanded burst's header now shows a button reading "Survey N" (for a burst of more than four frames, which opens the triage wall above) or "Compare" (for anything smaller, which opens the classic side-by-side). It calls the same Compare entry point as the shortcut and context-menu item — nothing about how Compare opens has changed, just how you get there. Ships behind the same Compare feature flag as the triage wall above (dark until the v1.6 general-availability release). - Triage polish: a proper size control, and a breadcrumb back to the survey wall. The triage wall's tile-size control is now the same square-size indicator used for grid cards and filmstrip thumbs (small/medium/large, one click each) instead of two buttons labeled "[" and "]" — the keyboard shortcut is unchanged. And when you funnel promoted frames into the side-by-side comparison with "Judge these," a Triage crumb now appears in the breadcrumb trail so you can jump straight back to the survey wall without hunting for the "Back to triage" button. Ships behind the Compare feature flag (dark until the v1.6 Compare + Smart Zoom general-availability release).
Changed
- Steadier "Eye relative" zoom on hard-to-detect frames. With zoom locked and "Eye relative" turned on, flipping through a burst now holds the subject steadily on frames where the eye is hard to detect (fast wingbeats, turned heads) instead of drifting as the detector's eye estimate wanders. Frames with a clearly detected eye are unchanged.
Fixed
- Your license no longer reads as expired after a relaunch on some Macs. On a Mac whose network name changes between sessions (a common macOS behavior over Wi-Fi/DHCP), an activated license could be misread as expired on the next launch, forcing re-activation — while the same key stayed activated on Windows. The local integrity check that guards your license file no longer depends on the machine's changeable network name; existing activated licenses self-heal on the next launch without re-entering your key. Copying a license file to a different computer still correctly fails to activate. Export Diagnostics (Help → About → Export Diagnostics) now includes the network-name details so we can confirm the fix on affected machines.
- Composition scoring is now fair across subjects — a clean dog, elk, or bear frame is no longer penalized for not looking like a "beautiful nature photo." Composition previously blended in a learned aesthetic signal that mostly tracked the subject's domain rather than the quality of the individual frame, quietly inflating birds and deflating mammals (and crushing non-wildlife subjects like dogs by ~20 points) regardless of how well each frame was actually composed. Composition is now purely subject-agnostic frame geometry — placement, background simplicity, and subject/background separation. Within-burst picks are unaffected (the removed term was measured to add no ranking value). Note: photos scored before this release keep their old composition until you rescan the folder.
- Importing a scoring preset can no longer make every photo score 100. A custom-preset file that was missing one of the six criterion weights used to slip through import and quietly corrupt scoring — every photo showed 100 and the burst pick became an arbitrary tie. Import now fills in any missing weight from the defaults, and scoring has a built-in fail-safe so a bad weight can never again push a score to a false 100.
- Compare now honors a deliberate multi-frame selection. Ctrl-selecting two or more frames of a burst in the grid and pressing C used to be silently ignored — Compare opened on the whole-burst survey instead of just the frames you picked. Selecting frames and pressing C now opens Compare on exactly those frames.
- Compare's best frame now agrees with the rest of the app on a tie. On a burst where two frames tied on quality score, Compare could crown a different frame as champion than the one shown as the burst's "best" elsewhere (the grid, filmstrip, Lightbox candidate strip). Compare now uses the same tie-break rule as everywhere else, so the champion always matches.
- The picked "best" frame in a burst now always leads the ranked list. When two or more frames in a burst tied on quality score, the app could pick one frame as the burst's representative while showing a different frame first in the Lightbox candidate strip, the burst filmstrip, or the grid's score order — the tie-break rule used to elect the representative didn't match the rule used to order those lists. All four now share one rule (score, then eye visibility, then filename), so the badge and the top of every ranked list always agree.
-
v1.5.1
Jul 6, 2026Fixed
- Crash reporting now catches launch-time native-module failures. Crash reporting is armed by a tiny entry step that runs before the app's image libraries load, so a launch that fails at that very first step (the crash class behind a prior asar-integrity crash and a Mac out-of-memory crash) now produces a report instead of failing silently with no diagnostic trail. Behavior for everyone with crash reporting off is unchanged.
-
v1.5.0
Jul 6, 2026Added
- Richer diagnostics for support reports. Every scan now records a one-line per-stage performance summary (decode, detection, keypoints, CLIP, saliency, and each scorer — median/p95/p99, photo count, and whether the GPU was used) in the app log, so an Export Diagnostics bundle finally answers "why was scoring slow on this machine" without any special setup. The per-photo "Export Scoring Diagnostics" bundle's metadata.json now also includes the detection record (bounding box, eye keypoints, facing), the per-criterion score components, and the scoring-pipeline metadata the app already saves — previously these were missing from the export.
- Smart Zoom v2 — point tracking (behind the
SMART_ZOOM_V2flag). When you lock the zoom and arrow through a burst, the loupe now follows whatever point sits under it — a wingtip, a flank, an antler tip — not just the eye, keeping that spot centered as the animal shifts between frames. A zero-model tracker (body geometry cross-checked against a pixel match on the 800px previews) re-anchors the pan, and holds today's fixed-coordinate framing whenever it isn't confident, so a big pose change never jumps you to the wrong place. Off by default (dark until a later general-availability change); enable withSMART_ZOOM_V2=1. Requires the "Eye relative" zoom preference on; flag off, the zoom lock behaves exactly as before. - Compare: Champion + Contenders (behind the
COMPARE_MULTIbeta flag). Compare a growable set of up to four frames with one sticky gold champion — the eye-anchored synced zoom holds every tile on the same eye as the animal moves. Build the set from the always-visible filmstrip (click a thumb to add it, click an in-set thumb to remove it), scrub the focused frame through the burst with the arrow keys, pressMto promote a frame to champion, andKto crown the champion as the keeper (Pick + burst representative). Adding, removing, and scrubbing are view-only, so frames keep their flags. Flag off, Compare is unchanged. Ships off by default in a targeted beta build. - Compare: Re-sync button (behind the
COMPARE_MULTIbeta flag). After you nudge one tile's zoom or position out of tandem, the new Re-sync control in the Compare toolbar re-aligns every tile onto the champion — re-applying the same alignment a double-click would under your current zoom mode (matched zoom and position, each tile's own eye, or a tracked subject point, depending on the "Eye relative" setting) — so you can quickly re-sync the set and keep comparing. Available while pan/zoom is synced. Flag off, Compare is unchanged. - Compare: eye close-up chip (behind the
COMPARE_MULTIbeta flag). Each Compare tile now carries a small always-visible corner overlay with a tight close-up framed on the frame's detected eye plus its eye-visibility and focus scores — so a blink, a soft eye, or a missing catchlight is obvious across the whole set at a glance, no zooming required, and the tile image keeps its full height. The close-up reuses the frame the tile already shows and the eye it already found (no extra loading or detection); when the eye can't be located it frames the head instead, and if there's nothing to frame it shows a small "no eye" placeholder rather than a misleading body crop. On a small, far bird the eye is only a few pixels in the preview, so its close-up will look soft — that's the preview's pixel budget. Dark until the Compare beta flag is on. - Filter by keyword. The Filters popover gains a Keywords facet listing the IPTC/XMP keywords embedded in your photos (the tags Lightroom or Photo Mechanic write), each with a photo count. Check one or more keywords to show only photos carrying any of them — the filter combines with the score, ISO, focal length, body, and search filters, and Reset Filters clears it. Keywords are read during scanning, so folders scanned with an earlier version need a rescan to pick them up.
Changed
- One place to adjust scoring. The "Adjust scoring" panel is now the only editor, with two sections: What matters most — the six criterion weights as relative-importance sliders that balance automatically (no more Total / Normalize bookkeeping) and preview live on the grid — and Situations, the six scoring preference controls. Saving now asks for a preset name instead of silently creating "(tuned)" copies: keep a preset's own name to update it, or enter a new one to save a copy. Manage presets is now just that — rename, duplicate, delete, import, export — and its Edit button opens the Adjust scoring panel. Settings → Scoring slims down to the preset dropdown, "Adjust scoring…", "Calibrate from my picks…" (the guided way to fill What matters most), and Reset.
Fixed
- Manual burst merges and splits now survive a full folder rescan even when you have changed the burst gap from its default — previously a rescan could silently revert them.
-
v1.4.0
Jul 3, 2026Changed
- Simpler scoring adjustments. The "Tune scoring" panel (now "Adjust scoring") drops from ten controls to six, with plain-language settings and a single rule — dragging any control to the right is always stricter (except high-ISO tolerance, which is measured in real stops). Closed-eye handling is now one Lenient-to-Strict slider, hidden or turned-away heads is one Off/Gentle/Standard/Strict setting, and rule-of-thirds placement reads as a plain 0–100%. Recipe chips now highlight when selected and show their one-line explanation right below the row, and the "no subject" and rescan notices are shorter and clearer. Keep and Discard are now "Save & use" and "Cancel", and a confirmation appears after you save.
- "Facing away" is no longer a manual setting. BurstPick handles it automatically: mammals photographed facing fully away are still demoted (a turned-away mammal has no visible eye), while birds are no longer docked for facing away — that detection was unreliable and caused good, sharp-eyed bird frames to be pushed down. If you had tuned "Facing away" or "Side profile" values in a custom preset, those knobs are gone and BurstPick now uses the built-in behavior (birds neutral, mammals demoted); presets you saved or imported keep working, with the old setting safely ignored.
Added
- Pause and resume live folder watching. Click the "Live" chip in the toolbar to pause automatic updates — new files dropped into the folder are ignored until you resume. Click "Paused" to resume, and BurstPick picks up anything added while it was paused. "Check for changes" still works while paused, the paused state looks distinct from the drive-disconnected one, and your choice is remembered across restarts. Reconnecting a drive never overrides an explicit pause.
Improved
- More accurate bird eye scoring. Better eye localization on small or distant perched birds, and birds whose eye can't be verified are no longer penalized twice for the same fact — so sharp, well-composed bird frames stop being pushed down for a detail the model simply couldn't confirm. When the eye can't be verified, the inspector now says so plainly instead of mislabeling the source.
- Truer exposure and focus scoring. Exposure now judges backlit subjects correctly — a dark bird against bright water or sky reads as backlit rather than overexposed — and focus scoring is steadier within a burst, so near-identical frames no longer swing apart on a metric technicality.
- Faster scoring on busy frames. Frames with several animals score quicker: the pose model now runs only on the subject BurstPick actually scores.
Fixed
- Dismissed removable-drive warning now stays dismissed. After ticking "Don't show this again" on the removable/network-drive startup warning, the choice is no longer forgotten the next time you change a setting.
- Pinning a representative no longer corrupts saved scores. Pinning or
unpinning a burst's best frame (
R) while a custom preset or Technical-only mode was active could overwrite the saved scores for those frames; it now writes only the pin. - Quick-export XMP carries your latest flag. With auto-flag and XMP sidecars
on,
Ctrl+S/Ctrl+Ron an unmarked frame wrote a sidecar that still said "unmarked"; it now reflects the pick or reject just applied, so Lightroom sees your decision. - Switching folders mid-scan keeps them separate. If you opened a new folder while the previous one was still scoring, late-arriving photos from the old folder could land in the new session; they're now discarded.
- Shortcuts stay put behind dialogs. Pick/reject, arrows, score overrides, and Delete no longer act on the photos behind the What's New window, Settings, About, a right-click menu, or the Compare view.
- No dropped edits or trash on quit. Quitting through an update prompt — or closing the window — now flushes pending flags, score edits, and trash moves that some quit paths previously skipped.
- Steadier scanning and updates. Canceling a scan and immediately reopening no longer breaks scanning or starts a duplicate, and an unresponsive network no longer hangs the update check for the rest of the session.
- Leaner saves with many rejects. A large internal buffer was being written into session saves for rejected frames, which could bloat saves or, with enough rejects, make them fail; it's now released before the save.
-
v1.3.0
Jul 1, 2026Added
- What's New in the app. A "What's New" entry under Help opens an in-app view of the release notes, and BurstPick shows it automatically the first time you launch a new version.
- The window remembers where you left it. BurstPick reopens at the size, position, and monitor you last used, and safely re-centers if that monitor is no longer connected.
Changed
- One window per copy of BurstPick. Launching BurstPick while it's already running now brings the existing window to the front instead of opening a second copy — which also prevents two copies from colliding over the same data folder.
Fixed
- Portable-ZIP launch crash on Windows. Fixed the "An invalid access to the memory location occurred" error some no-installer (ZIP) users hit, by turning off embedded asar integrity validation (already in the build; shipping now).
- Bird-eye guidance updated. BurstPick now scores bird eyes with a dedicated model, so the in-app notes that said bird eyes were estimated from contrast (with a model "on the way") have been corrected.
- "Unable to move the cache" errors and leftover background processes. Fixed a problem where a second copy of BurstPick sharing the same data folder could leave orphaned background processes and cache-access errors behind.
- Reliable shutdown. BurstPick now always closes fully, instead of occasionally leaving a process running after the window has closed.
-
v1.2.1
Jul 1, 2026Changed
- Smaller download. Removed an unused image-quality model component from the bundle, reducing installer and update size by roughly 177 MB.
Fixed
- Composition scoring restored. An image-quality signal that feeds the Composition score was missing from recent packaged builds; it is bundled again, so scoring now matches the intended, tested behavior. Some photos' composition scores may shift slightly.
-
v1.2.0
Jun 28, 2026Added
- Live session updates. BurstPick now watches your session folder while you work. New photos that land in the folder — from a tethered shoot or a card copied in mid-session — are scored in the background and added to the grid on demand, without moving your place in the view. A subtle "Live" chip in the toolbar shows when watching is active, and an "N new" count tells you how many frames are waiting to be added.
- Graceful handling of missing files. If a photo disappears from the folder (a drive is unplugged, a file is moved or deleted), BurstPick grays it in place instead of dropping it, preserving its flags and score. A toolbar "N missing" chip and a missing-only filter let you Restore or Remove them in bulk, a file that reappears is restored automatically, and Compare and Lightbox navigation skips over missing frames.
- Check for changes. A toolbar control re-scans the current folder on demand and reports what is new or missing, so you can fold in a fresh import without reloading the session. Watching also re-checks automatically when you return to the window.
- RAW+JPEG pairing for live imports. New photos that arrive as RAW+JPEG pairs are stacked together as they are added, matching how the initial scan already pairs them.
Changed
- Drive-aware watching. Folder watching pauses cleanly when the source drive disconnects — showing a "Paused — drive disconnected" status — and resumes when the drive returns, instead of stalling the session.
- Best-shots tracks the live set. When Best-shots mode is on, its score floor now follows photos added or removed during the session instead of freezing at the moment you turned it on.
Fixed
- Stable burst numbers. Burst numbers no longer shift when you collapse and expand bursts, and a collapsed burst's cover frame now shows its ordinal.
-
v1.1.0
Jun 24, 2026Added
- Activate a license key from About. The About window now has a "Have a license key?" entry point, so you can activate without hunting through menus.
- Eye-relative Smart Zoom. A new "Eye relative" toggle keeps Smart Zoom anchored on the subject's eye as you step through a burst, so the eye stays put while you compare sharpness frame to frame.
- Eye-uncertain flag. When a bird's eye can't be confidently located, the frame now carries an "eye uncertain" badge and is scored neutrally on eye visibility — instead of being rewarded as if the eye were tack-sharp or penalized as if it were missing.
Improved
- Sharper bird-eye placement. Bird-eye detection now recovers the eye from the beak when the keypoint is weak, and a mask-containment gate (on single-subject frames) rejects eye points that fall outside the bird — so the eye lands on the eye, not the plumage, on more real-world frames. Mammal scoring is unchanged.
Changed
- Fast RAW decode is always on. The Advanced toggle for fast RAW decoding has been removed; the faster decode path is now permanent for everyone.
Fixed
- No more snap delay at locked 100% zoom. Stepping between frames while zoom is locked at 100% now keeps the next frame warm, so it appears instantly instead of snapping in after a beat.
- Smoother fast scrolling. Rapidly scrolling a cold burst no longer backs up the decode queue, so thumbnails keep pace with the scroll.
- Clearer eye-uncertain labeling. Corrected the eye-uncertain banner wording and the unverified-eye label color in the inspector.
-
v1.0.0
Jun 23, 2026BurstPick 1.0 — the first stable release. BurstPick scores and ranks your RAW photo bursts entirely on your own machine, so the sharpest-eyed keeper in each burst surfaces first. No cloud, no upload, no subscription.
Highlights
- Wildlife-tuned burst culling. Every frame is scored across six criteria — focus, eye visibility, exposure, composition, noise, and context — and each burst is ranked so the likely keeper floats to the top.
- Sharp eye detection for birds and mammals. A bird-specialized eye model locates the eye accurately on real wildlife, even on small, distant, and feeder birds.
- Built for the cull. A burst-centric grid with per-burst expand/collapse, Compare and Lightbox at true 100% zoom, undo (Ctrl+Z), rotate-for-review, and a Tune-scoring panel that re-ranks the grid live so you can dial in what "best" means for your work.
- Everything stays local. On-device scoring, no telemetry, perpetual license.
Fixed
- Smoother updates. When a previous download is still finishing in the background, the updater now shows a calm "downloading" status instead of a failed-update error.
-
v0.9.0-rc.0
Jun 22, 2026Added
- Undo and rotate-for-review. Press Ctrl+Z to undo your last curation action (pick, reject, delete, score). You can also rotate a frame for review without altering the file, and panning and zooming now behave correctly under rotation.
- Compare from multi-select. The multi-select action bar now has a Compare button, so you can send any set of selected frames straight into the Compare view.
- Burst numbering in the grid. Burst separators now show an ordinal ("Burst N") so you can keep your place as you scroll a long shoot.
- Filename breadcrumb. When you're focused on a single frame, the breadcrumb shows the filename as the leaf, so you always know which file you're looking at.
Improved
- Sharper bird-eye detection. A new bird-specialized eye model is now on by default, locating the eye more accurately on real wildlife — especially small, distant, and feeder birds where the previous path could land on plumage. Mammal scoring is unchanged.
Fixed
- Pick/reject pills no longer read as a close button. The reject ✗ pill is now clearly labeled so it can't be mistaken for a window-close control.
-
v0.9.0-beta.9
Jun 11, 2026Added
- Manual burst management. Bursts are no longer fixed at scan time — you can
now reshape them by hand. Merge two bursts together, split one burst into two
at any frame, move or detach a frame, or build a brand-new burst from a set of
frames. Every action is reachable three ways: the toolbar action bar, a
right-click context menu (on the grid and inside an expanded burst), and the
Mkey for merge. A merge that would combine very different shots asks for confirmation first, and a "keeper inside" indicator flags bursts that already contain a frame you've picked. - Burst-vs-frame selection. The grid now distinguishes selecting whole bursts from selecting individual frames, with a dedicated burst action bar. Shift/Ctrl(Cmd)-click extends a selection of either kind, and a single-frame burst can be selected so it can be merged into a neighbour.
- Camera-body awareness. In a multi-body session each burst shows a camera-body badge, and a per-body filter facet lets you narrow the grid to one camera. Burst detection is now body-aware, so frames from two cameras fired at once no longer collapse into one burst.
- Flat (score-ranked) grid. A new
[Bursts | Flat]toggle in Sort & group switches the grid between burst grouping and a flat, globally score-ranked list of every frame — useful for picking across an entire session at once. Your choice persists across sessions. - Adjustable burst detection. A Burst detection control (presets plus an Adjust modal with a fine gap slider, live preview, and Undo) lets you re-detect bursts at a different time gap. Bursts you've edited by hand are frozen and carry a lock badge, so re-detecting never silently undoes your manual edits.
Changed
- One "Sort & group" popover. Sorting and grouping are now folded into a single toolbar popover, replacing the separate sort menu and a duplicate grid status dropdown.
- Manual edits are durable. Burst edits, the burst-gap setting, and the grouping axis now survive rescans, gap changes, and reopening the folder.
- Faster Lightbox open. Opening the Lightbox now warms the active frame's decode immediately and coalesces concurrent full-resolution decodes, so the sharp preview lands sooner.
Fixed
- macOS large-folder scan crashes (Apple Silicon). Reworked the macOS CoreML execution path: per-model MLProgram flags are on by default, ONNX Runtime thread counts are capped to stop thread-bloat, and emergency environment kill-switches are available. This addresses the out-of-memory crash some Mac users hit scanning large folders; scan-phase diagnostics were also added to pin down any remaining edge cases.
- Cross-kind selection symmetry. Starting a Shift/Ctrl extend on a lone frame and dragging onto a burst now behaves the same as starting on the burst, instead of dropping the frame.
- Orphan frame merge. A single orphaned frame can now merge into an adjacent burst.
- Whole-burst selection stays coherent when switching to the flat grid or mixing with a frame selection; the burst lock badge is no longer clipped on covers; and the "Sort & group" breadcrumb link now works.
- Manual burst management. Bursts are no longer fixed at scan time — you can
now reshape them by hand. Merge two bursts together, split one burst into two
at any frame, move or detach a frame, or build a brand-new burst from a set of
frames. Every action is reachable three ways: the toolbar action bar, a
right-click context menu (on the grid and inside an expanded burst), and the
-
v0.9.0-beta.8
Jun 9, 2026Performance
Smoother UI during the initial scan. The grid, toolbar, and workspace no longer re-render on every progress tick while a folder is scanning — hot components now subscribe only to the data they display, so the ~10/sec progress updates (and the much faster per-file EXIF stream) stop forcing a full-window re-render storm. The per-file EXIF progress is also throttled to ~10 Hz at the source, matching the scoring phase. The result is a noticeably less "janky" feel while photos stream in.
Scan-time scoring recompute is now linear, not quadratic. As photos arrive during a scan the grid re-derives its effective scores; this previously reprocessed the whole (growing) library on every new photo. A per-photo memo reuses already-computed scores, cutting total recompute work by ~400× on a 1,000-photo scan and ~875× on a 2,000-photo scan — which also speeds up preset switches on large libraries. Backed by a new headless harness (
npm run bench:scan-ui) and a regression gate.The filmstrip scrolls smoothly during a scan. Fast-scrolling the docked filmstrip while photos were still streaming in felt sluggish and jumpy: every new photo re-centered the strip on the active frame, fighting your scroll. The strip now re-centers only when you navigate (or change thumbnail size), not when the list grows underneath you. Thumbnails also decode a little further ahead of the scroll, so fewer cells flash blank while loading.
The Lightbox preview keeps up with fast navigation. Scrolling quickly through frames in the Lightbox used to lag — each frame you passed kicked off a full-resolution decode, and with only two decode workers those stale decodes piled up and starved the frame you actually stopped on. The cold full-res decode is now deferred while you're scrolling fast, so only the frame you land on pays for it; deliberate single-frame opens are unchanged.
Changed
- Bursts now start expanded. Fresh sessions open with every frame of each burst visible (the cull-optimized default), so you can review and reject right away — collapsing all bursts back to just their picks is still one key away. Sessions where you've already collapsed your bursts keep that choice.
- An opened burst now reads as one raised panel. Expanding a burst lifts it onto an opaque panel above the grid — header flush with its frames, a single unbroken fill, and a soft shadow — so an open burst is instantly distinct from the flat collapsed stacks around it. Collapsed covers keep their stacked-edge look, deepened so they sit clearly "below" an open panel.
- Toolbar tidy. "Best shots" moved next to Filters / Color legend / Scores in the far-right set-once cluster, leaving the Status filter to lead alongside the sort it pairs with.
-
v0.9.0-beta.7
Jun 9, 2026Added
Delete photos to the Recycle Bin / Trash. A Delete key and a context-menu "Move to Trash" finish the cull loop, sending a photo — along with its
.xmpsidecar and any stacked-JPEG companion — to the OS Recycle Bin / Trash. It is always recoverable (never a hard delete) and always routed through a confirm dialog. When you delete a burst's pick, the burst re-picks its next-best frame automatically.Undo a delete. Deleting now shows an Undo toast instead of being one-way. The files stay put during a short window and only move to the Recycle Bin once it lapses, so Undo restores the exact session state instantly. If the window has already passed, the toast points you to the Recycle Bin.
Alt+1–5 score override. Photographers' muscle memory maps 1–5 to star ratings, which collided with BurstPick's plain 1–5 score override. Alt+1–5 is now an explicit, unambiguous override that works everywhere — including the Lightbox, where plain "1" jumps to 100% zoom. Plain 1–5 behaviour is unchanged.
Clickable status chips in the toolbar. The header counts — photos, picked (✓), rejected (✗), and a new exported (→) chip — are now buttons that switch the grid's status view. The active view carries a highlight ring; clicking the photo total returns to Active.
Two-axis sort for the burst-centric grid. Bursts and frames now sort independently, each by capture time or by score (View → "Sort Bursts By" / "Sort Frames By").
Stoggles the frame axis, which also drives the Lightbox filmstrip order.Live scan speed and ETA. The scan progress screen and the background progress toast now show a smoothed items/sec and a countdown to completion.
Changed
Burst-centric grid and richer burst separators. Burst separators now show the frame count, capture span, start date/time, and the gap that triggered the split ("1.4 s gap → new burst"). The burst badge is now an explicit Open burst button (a stack glyph in Best-per-burst view, a focal-cyan star marking the best frame in All-frames), double-click defaults to burst review, and the Picked / Rejected views keep multi-frame bursts grouped.
Compare panes are independent by default. Each Compare pane now pans and zooms on its own — needed for framing two eyes side by side — and remembers your choice across Compare sessions. The old "Lock zoom" toggle is renamed Sync pan/zoom, always available (no longer trapped behind "zoom must be on first"), and reads as an explicit Independent ↔ Synced two-state.
Scanner skips Lightroom / Capture One catalog & preview bundles. Scans now ignore app-managed bundles by suffix (
.lrdata,.cosessiondb,.cocatalogdb) so preview pyramids and catalog databases stop manufacturing phantom bursts and burning scan time.Settings clarity. A "Calibration is global" note and a Reset-to-default preset button, plus a "?" explainer on the Burst Gap control describing how bursts are detected.
-
v0.9.0-beta.6
Jun 8, 2026Changed
Fast RAW decode is now on by default. The faster decode pipeline — which paints sharp images sooner, pre-decodes the neighbouring frames as you cull, and keeps recently viewed photos in memory — graduates from an experimental opt-in to the default experience. It was validated as a net improvement with no feature regressions across Nikon (D500/Z9) and Sony (A7III) bodies via a real-app interaction harness (cold load, mouse zoom, 100% double-click, fast navigation, revisit). Still toggleable under Settings → Advanced. Anyone who had explicitly turned it off keeps it off.
Updates no longer download automatically. BurstPick now checks for an update without downloading it and shows an "available" notification with the download size — "BurstPick vX is available (NN MB)" — offering Download and Later, so a release never lands on a metered or hotspot connection without your say-so. Once you choose Download, the install path is unchanged.
Consistent file naming when an export collides. Copying or moving a photo into a folder that already contains a file of that name now always appends a Windows-Explorer-style suffix —
DSC_1234 (1).NEF,(2), and so on. The copy and move paths previously diverged on the scheme.
Fixed
Sharper neighbouring frames on full-frame Nikon/Canon bodies during fast decode. On bodies that embed a full-size JPEG, navigating to a pre-fetched neighbour could show a slightly softer transient render instead of the camera's full-quality image. The pre-fetch now warms the camera's own full-resolution frame on those bodies (reserving the fast sensor decode for bodies whose embedded JPEG is too small), so navigated frames are both sharp and faster to appear.
Keyboard shortcuts no longer act on the photos behind an open dialog. With Settings, weight calibration, About, the User Manual, the bug-report form, or the move-confirmation dialog open, pressing P / X / U, 1–5, the arrow keys, or Ctrl+S no longer leaks through to the grid underneath.
Rejected frames keep their reject score across view changes. A frame rejected for catastrophic blur or exposure no longer drifts back up toward a raw near-zero score when you switch scoring presets, toggle the Technical-only view, or regroup a burst — it stays pinned at the reject floor.
A failed XMP sidecar move no longer loses track of the photo. If a photo moves but its
.xmpsidecar can't move alongside it, the app now keeps the moved photo and records its new location (logging a non-fatal note) instead of leaving the session pointed at the old, now-empty path.Filenames containing
#or%now load correctly — e.g.100%crop.jpgno longer fails to display.Assorted view and lifecycle fixes: the zoom-percent label shows the right state while navigating between differently-shaped photos; dragging the Burst Gap slider then immediately entering Lightbox or Compare no longer fires an unseen regroup; pressing Escape mid-submit in the bug-report form no longer closes it; and Compare's mouse Pick/Reject buttons route through the same path as the keyboard.
Settings saved by older builds keep all their values — loading a settings file written by an earlier version no longer drops newer required fields.
Security
- Hardened license verification in packaged builds. Release builds now fail closed when the license-signing key is missing or invalid: a forged success response or an unsigned cached verdict can no longer activate the app. Existing beta licenses are unaffected.
-
v0.9.0-beta.5
Jun 8, 2026Added
- Multi-select with batch actions. Select multiple frames with click, Shift-click, and Ctrl/Cmd-click, then flag, reject, or export the whole selection at once — the desktop-standard selection model.
Changed
- Recalibrated scoring with a new aesthetic signal. Composite scores now use a monotonic calibration curve across the full 0–100 range and factor in a learned CLIP-IQA aesthetic signal (at no extra inference cost). Scores spread out more meaningfully within a burst; pick rankings stay stable.
Fixed
- First scan after install no longer freezes at "0/0". On a fresh install, picking a folder straight out of onboarding could leave the scan stuck at "0/0" — no progress, unresponsive Cancel — until you restarted the app. The first scan now shows progress and results like any other scan.
- Scan errors are visible and Cancel responds during a stall. A failed or stalled scan now shows a clear message instead of freezing silently, Cancel returns promptly, and a file whose metadata can't be read degrades gracefully instead of being misreported as a sleeping drive.
- The RAW+JPEG scoring-source control works again — it had been permanently disabled. You can once again choose whether RAW+JPEG pairs are scored on the RAW preview or the camera JPEG.
- Quick-export (copy) records the real per-file destination, so re-exports and "show in folder" resolve to the right place.
- HEIF/HEIC folders warn when the system extension is missing, and thumbnail generation now picks the largest available fast preview.
- Multi-select borders no longer merge — the selection ring is inset so adjacent selected cards stay distinct.
- Interrupted updates recover cleanly. The install marker is cleared if an update fails to apply, so the app no longer gets stuck mid-install.
- More reliable settings, session, and license writes on Windows. Settings and session saves are serialized and file renames are retried, preventing a torn file from resetting preferences, losing a session, or failing a license write.
- Technical-only scoring view no longer breaks when all technical weights net to zero.
-
v0.9.0-beta.4
Jun 5, 2026Added
- In-app User Manual. A full user guide is now bundled with the app, reachable from Help → User Manual, the About dialog, and the toolbar overflow menu.
- Linked zoom and pan in Compare. Toggle "Lock zoom" (L) while comparing two frames to pan and zoom both panes in tandem — frame each side onto a different eye first, then move together. Each pane keeps its own framing.
- Write XMP for rejects, not just picks. "Write XMP to Source" now exports rejected frames too (as an XMP reject rating Lightroom understands), so your DAM can filter culls out — not only your picks. A toast now guides you when nothing is flagged instead of doing nothing.
Changed
- ~24% faster scanning. The scorer no longer lets CLIP inference monopolize the CPU, freeing the GPU eye-detection branch to run alongside it. Folder scan throughput improves about 24% with no change to scores.
Fixed
- A single bad file no longer aborts the whole scan. An undecodable photo (e.g. a TIFF that can't be converted) is now logged and skipped, and the scan finishes the rest of the folder instead of crashing.
- The right-click menu now closes over a zoomed image. Dismissing the context menu by clicking elsewhere worked everywhere except on top of a zoomed-in photo; it now closes correctly there too.
-
v0.9.0-beta.3
Jun 4, 2026Changed
- Sharper picks on frames with unverifiable or edge-clipped subjects. Scoring now penalizes a primary subject whose head and eye can't be confirmed, and favors a fully-framed animal over one clipped by the frame edge when choosing which subject to score. This corrects cases where a head-turned or partially-cropped animal was ranked too high within a burst.
- More detail in the scan activity log for performance troubleshooting. The diagnostics log now records which inference backend (GPU vs. CPU) the scorer bound to and a per-photo scoring time breakdown, making it easier to pin down why scanning is slow on a given machine.
-
v0.9.0-beta.2
Jun 3, 2026Added
- Scan activity log for troubleshooting. BurstPick now keeps a rolling log of each scan — the current phase, per-file progress, and a heartbeat that keeps writing even while a scan is stalled — and includes it in the diagnostics export. If a scan ever hangs, the log pinpoints exactly which file and phase it stopped on instead of leaving a bare "0 / 0".
Changed
- More accurate scoring on additional camera bodies. Noise scoring now infers a sensor class from the lens crop factor for bodies not in the sensor table, and Ricoh-badged Pentax bodies (e.g. PENTAX K-1) now resolve their correct sensor dimensions. Noise scores and zoom resolution are more accurate on these cameras as a result.
Fixed
- Canon R8 / R6 Mark II / R50 / R7 RAW files now display. These bodies store their embedded preview as HEVC rather than JPEG, which previously failed to decode and left the photo with no thumbnail. BurstPick now falls back to a direct RAW decode so the image shows.
- Scans no longer hang on a flaky external or network drive. A slept-down or unresponsive drive could freeze a scan at "0 / 0" indefinitely. Scanning now times out stuck reads, shows files as they're found, and stops with a clear "drive unresponsive" message instead of spinning forever.
-
v0.9.0-beta.15
Jun 21, 2026Added
- Tune the scoring rubric to your taste. A new Tune scoring panel, reachable from the toolbar, exposes seven scoring adjustments that used to be baked in — the no-subject penalty, the unverified-head penalty, rule-of-thirds placement weight, eye-state, facing (profile / looking away), ISO tolerance, and subject size. Drag a slider and the grid re-ranks live, with no rescan, so you can dial in what "best" means for your work. One-click starter recipes give you sensible presets to build from, every control is labeled in plain photographer's language, and the panel floats alongside the grid so you can compare as you tune. Adjustments are saved per preset.
Changed
- Side-on shots are no longer penalized by default. The facing penalty is now neutral out of the box, so a sharp side profile is judged on its merits; only a subject facing fully away — with no visible eye — is still demoted. You can re-enable a profile penalty from the new Tune scoring panel. This may shift some rankings compared with previous betas.
Improved
- Compare and Lightbox now match. The two inspect views have been brought to
feature parity: Compare gains the score-cap badges and the R / E / I flag
actions, while the Lightbox gains clickable flag buttons and the
?shortcuts popover. Marking keepers and rejects, and seeing why a frame's score was capped, now works the same way wherever you are inspecting.
Fixed
- No more soft frame when arrowing at 100% locked zoom. Stepping through frames at 100% locked zoom — in both the Lightbox and Compare — could briefly show a soft image before it snapped sharp. Both views now hold the previous sharp frame until the next one has fully decoded, and Compare now pre-warms its neighboring frames the way the Lightbox already did, so navigation stays crisp.
-
v0.9.0-beta.14
Jun 18, 2026Fixed
- Compare view is now as sharp as the Lightbox at 100% zoom. A side-by-side Compare pane could stay soft — capped below full resolution — until you had first opened that frame in the Lightbox. Compare now reaches true full resolution on its own: standard JPEG/PNG frames hit their native top resolution, and full-embed RAW bodies (such as the Canon R5 II) materialize the full-size frame as soon as the pane opens. Each pane also shows a resolution label so you can confirm it is fully sharp, and switching frames within a pane no longer briefly stalls.
Improved
- Snappier focus peaking. Adjusting the focus-peaking opacity now updates instantly, and stepping back and forward through frames repaints the overlay immediately instead of recomputing it each time.
-
v0.9.0-beta.13
Jun 17, 2026Added
- Keep / Reject buttons on every photo. Each card now shows Keep and
Reject buttons on hover (pinned while a photo is selected), so you no longer
have to know the
P/Xkeyboard shortcuts to mark a frame. Click a button again to clear it, and the usual undo still applies. - A labeled Help menu in the toolbar. A new Help menu gathers the User
Manual, the keyboard-shortcuts reference, and a plain-language "What the
scores mean" explainer in one place, instead of hiding them in the overflow
menu. Pressing
?now opens straight to the Shortcuts tab.
Changed
- A gentler first run. The welcome wizard now leads with what BurstPick does for you and spells out that moving photos always asks first. "One per burst" is badged as the recommended starting view, and first-time users land on it automatically — your later choices always win. First-run teaching tips now appear one at a time instead of stacking up, and the score explainer reframes the star as BurstPick's suggested best frame (marking a Pick is always your own decision), with a plain green / yellow / red color legend.
- Plain-language export options. The export dialog's choices — copy keepers, move keepers out, score-prefix filenames, XMP sidecars — are reworded in everyday language, with a clear note that moving asks for confirmation first.
Improved
- More accurate eye-visibility scoring. Eye sharpness is now measured on a clean, quantile-matched crop of the eye rather than the smaller 800px preview, so the frame with the sharpest eye in a burst rises to the top more reliably. This affects ranking and was validated across multiple camera bodies.
- Much faster 100% zoom. Full-resolution display tiers no longer run an expensive extra compression pass, cutting the time to sharp pixels at 100% by roughly 10–15× — a full-resolution frame that took about 5.5 seconds now appears in under half a second — with no visible change in quality. This is a display-only change and does not affect how photos are scored.
Fixed
- Export Logs now captures redirected installer logs. For users who
followed the troubleshooting steps to redirect Windows installer logs to an
ASCII path (the
SQUIRREL_TEMPworkaround for "Failed to extract installer" on accented usernames), Export Logs had been looking in the old location and missing them. It now sweeps both locations, so the logs that matter for those installs end up in the bundle.
- Keep / Reject buttons on every photo. Each card now shows Keep and
Reject buttons on hover (pinned while a photo is selected), so you no longer
have to know the
-
v0.9.0-beta.12
Jun 15, 2026Added
- Portable (no-installer) build for Windows. Every release now also ships a
BurstPick-win32-x64-<version>.zipalongside the regular installer. If the installer ever fails with "Failed to extract installer" — usually antivirus, low disk space, a half-finished previous install, or an accented Windows username — you can download the ZIP, extract it to a folder on your C: drive, and runburstpick.exedirectly. No installer required. The portable build does not auto-update, so it's a fallback rather than the default download. See docs/install-troubleshooting.md for the full Windows install troubleshooting guide. - Export Logs… (Help menu). A new Help → Export Logs… command (also linked from the Report a Bug dialog) bundles BurstPick's log files — including Windows installer logs, which help diagnose "Failed to extract installer" problems — into a single ZIP via a save dialog, so you can attach them to a bug report or forum post. Nothing is uploaded automatically — the file stays on your machine unless you choose to send it.
- Heads-up when running from an external drive. If BurstPick is launched from a USB/removable or network drive — a setup that can crash it at startup with an "invalid access to the memory location" error — it now shows a one-time, dismissable warning that points to the fix, instead of failing opaquely.
- "Make select" in Compare. When comparing two frames side by side, a new Make select action promotes the right-hand frame to the left (your current pick) and auto-advances to the next candidate, so you can walk a burst and lock in the keeper without leaving Compare.
Improved
- Sharper 100% view. Display tiers now get a gentle capture-sharpening pass so zoomed-in previews read as crisp as Lightroom's default render, instead of the soft look reported on Canon R5 Mark II files. This is a display-only change — it does not affect how photos are scored or ranked.
- More accurate focus scoring. Focus is now measured on a cleaner, single-compression crop of the subject, which reduces compression artifacts leaking into the sharpness reading and improves how reliably the in-focus frame of a burst rises to the top.
- Faster scanning and Canon CR3 thumbnails. Embedded-JPEG extraction for Canon CR3 files is quicker, and scanning caps its image-processing workers to reduce contention, for a modest throughput gain on large folders with no change to scores.
Fixed
- Cryptic Windows launch crash on damaged copies. Some Windows installs failed to start with an "invalid access to the memory location" error when the app files had been altered (for example by antivirus quarantine). BurstPick no longer hard-aborts on that integrity check, so it launches instead of crashing opaquely.
- Portable (no-installer) build for Windows. Every release now also ships a
-
v0.9.0-beta.11
Jun 12, 2026Added
Shift+Zreturns to your last zoom framing. BurstPick now remembers the last spot you were zoomed in on for each photo — however you got there (keyboard, double-click, scroll, or pinch). From a fitted view,Shift+Zjumps straight back to that framing; from a zoomed-in view it collapses back to fit, so the two round-trip. In Compare, each side remembers its own framing.
Changed
Znow toggles Fit ↔ 100% directly, and double-clicking the photo does the same. There's no separate "zoom mode" to arm anymore — one press jumps to 100% from a fitted view, the next returns to fit. Because zoom no longer claims the number keys, the1–5rating shortcuts now work everywhere: grid, Lightbox, and Compare alike (Alt+1–5still works too).- Sorting moved to
O/Shift+O.Otoggles the frame sort (time ↔ score) andShift+Ocycles burst order — both view operations that no longer need a selection.Sis now Split-only, matchingMfor Merge. These mirror the toolbar Sort & group popover. - Clearer pick/reject chips in the filmstrip. The small check/cross marks are now solid green/red chips with tooltips, matching the grid cards and Compare, so a frame's verdict is easy to read against the photo.
Fixed
- Sony A7R VI preview stuck at 2400px. On newer Sony bodies (A7R VI / ILCE-7RM6) the full-resolution preview could stall at 2400px instead of resolving to the real full-size image. BurstPick now floors the full-resolution tier so the sharp preview always lands.
- macOS large-folder scan memory leak. Fixed a memory leak that built up while scanning large folders on macOS, traced to scan-time pre-rendering of scoring-diagnostic overlays. The periodic memory sampling added in beta.10 (which caused a brief ~30-second pause on Mac) is turned back off now that the leak is resolved.
- Keep your place when leaving a burst. Returning to a collapsed grid after arrowing to an interior frame of a burst no longer jumps you back to the first card — you now land on that burst's cover instead.
-
v0.9.0-beta.10
Jun 11, 2026Fixed
- macOS "dot-underscore" files are no longer scanned as photos. Copying RAWs
from a Mac to an external (exFAT/NTFS) or network drive leaves hidden
._*companion files next to each one. BurstPick was treating these as images and failing to decode them, cluttering the grid with un-openable entries. They are now skipped during the scan.
Changed
- Added memory-pressure and scoring-progress logging during scans, visible only in exported diagnostics, to help track down rare large-folder scan crashes on macOS. On Mac this samples memory roughly every 30 seconds during a scan and can cause a brief pause; it has no effect on Windows or Linux.
- macOS "dot-underscore" files are no longer scanned as photos. Copying RAWs
from a Mac to an external (exFAT/NTFS) or network drive leaves hidden