Skip to content

Releases: pdcgomes/redlamp

Redlamp 0.3.0-alpha

Choose a tag to compare

@pdcgomes pdcgomes released this 12 Oct 23:03

Highlights:

  • The grid and the loupe: Redlamp now has a Library beside Develop, in the same window, as Lightroom Classic does. Its grid shows thumbnails from 80 to 400 points in three cell styles, with click, ⌘-click, ⇧-click and rubber-band selection, and each folder or collection keeps its size, place and selection; the loupe shows one photo at Fit or 1:1 (#227, #228).
  • Culling with Auto Advance: ratings, flags, colour labels, your own labels and marks reach every selected photo at once, with Undo, by key, by a click on a cell or from the menus. With Auto Advance on, each one moves on to the next photo (#229).
  • Compare and Survey: C compares the photo you're keeping with the next candidate, side by side with zoom and pan in step, and N lays out a selection as large as it fits. Held arrow keys move through the grid, the loupe and Develop without a blank frame (#230).
  • Collections and smart collections: collections and sets, saved in each photo's sidecar so rebuilding the library loses none, and smart collections that stay current as saved searches (#237).
  • Search: a search field always on screen, its terms shown as chips, searching what's shown or the whole library with Search All (⌘K); filters by attributes and by up to eight metadata columns with counts, and seven sorts (#232).
  • Import: File › Import Photos… (⇧⌘I) opens when a card goes in. Browse it at once from its previews, grouped by moment, cull before copying, and copy to a destination and a backup, every copy checked before the card is safe to erase; photos already imported are left out (#241).
  • Polish and your theme: the filter bar, the grid's cells and bars, the sidebar, the panels and the import window reworked with macOS's own controls, and the library in Redlamp's theme, as Develop is (#328).

Changes since 0.2.9-prealpha: 1,020 commits, too many to list here; the comparison has every one: v0.2.9-prealpha...v0.3.0-alpha

Full Changelog: v0.2.7-prealpha...v0.3.0-alpha

Redlamp 0.2.9-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 11 Oct 15:41

Highlights:

  • A new Masks panel: one picker for every mask, behind New Mask, Add, Subtract and Intersect; every action on screen, with a menu button on each mask and component; and masks that preview themselves, with a thumbnail of each one's coverage and its overlay while the pointer is over it. Invert works for a whole mask, and the People picker chooses people and their parts. A mask preset now goes to every selected photo, and the Landscape picker offers the regions it finds, as one mask or one each (#301 to #307).
  • Panel switches: an eye on each Develop panel's header switches the panel off, so its settings render neutral, as a step in History; an Edited chip says how many of its settings have changed and lists them when the pointer is over it (#317).
  • Clipped highlights keep their colour: pulled below white by Highlights or Exposure, highlights the camera clipped in one or two colours keep the colour around them instead of turning lilac with a cyan band, and areas clipped in every colour fade smoothly to neutral. It applies to new edits; existing edits look as they did (#369).
  • More cameras: Nikon's High Efficiency NEFs (HE and HE*) open, through Redlamp's own fork of LibRaw, and the Sony A7 V opens and the A1 II no longer shows a strip along the bottom (#168, #169).

Changes since 0.2.8-prealpha:

  • Tracker: MSK-28's coarse floor beyond the band done (5ee859e); left: dense crowns, sky-coloured foreground, vignetted sky the coarse mask left out (MSK-28, #272)
  • Sky masks: the coarse mask's few percent of sky stay on foreground beyond the band only as far as its colour allows (MSK-28, #272)
  • Tracker: counsel confirmed CAM-07's CDDL port, at the owner's word (CAM-07, #20; DEC-40)
  • Feature videos: every video gets a synthwave track of its own (scripts/features/music/.py), built from what E01's theme shares, the lead-in out of the opener and the sting in the track's key, with E01's score byte-identical; E02's hook A is MASK YOUR SUBJECT / IN ONE CLICK
  • Tracker: MSK-28's low coverage at mixed pixels fixed (2a2b096); left: dense crowns, sky-coloured foreground and the coarse mask's floor beyond the band (MSK-28, #272)
  • Sky masks: pixels at an edge get their full share of sky, the foreground's colour learnt clear of the edge (MSK-28, #272)
  • Feature videos: each built episode has its own entry in Studio's Features folder (E01, E02), so it opens in one click
  • Release: the guard's remedy replaces mise's binary with a fresh copy without attributes, since macOS keeps tracking the file once its com.apple.provenance is removed (#333)
  • Tracker, README and comparison: a preset on every selected photo and the Landscape picker done, and the People picker's Subtract and Intersect (UX-25, #306; UX-26, #307)
  • Masks panel scenarios: a preset onto every selected photo, and the Landscape picker, through the panel's controls; the harness's tasks 9 and 14 and a Landscape specimen (UX-25, #306; UX-26, #307)
  • User manual: Part 3's Landscape picker, a preset on several photos, and the People picker's Subtract and Intersect, with the fact sheet (UX-25, #306; UX-26, #307)
  • People picker: Subtract takes away every part ticked, not the first alone, and Intersect takes one part at a time; another photo closes it (UX-21, #302)
  • Masks panel: the Landscape picker, the regions SAM 3 finds with their share of the photo, as one mask or one each (UX-26, #307)
  • Masks panel: with several photos selected, a mask preset goes to every one, each one's AI masks made for it (UX-25, #306)
  • Feature videos: E02, Subject mask, in the series' look, for the owner's review: the boy's photo in pixel art labelled as its raw, Apple Vision's real Subject mask as the overlay, a card for each bar's words, SELECTED / ACCURATELY in bar 3, and four rising blips as the overlay fills
  • Social room: posts the owner makes on Instagram himself are recorded with room.py published in the publisher's record, so the room shows them as posted and the publisher never posts them again
  • CAM-31 done: the tracker names its commits, and the README says what process 15 does to clipped highlights (CAM-31, #369)
  • Process 15: highlights the camera clipped in one or two colours keep the colour around them when pulled below white (CAM-31, #369)
  • Clipped highlights keep the colour around them at raw revision 2: CAM-08 corrected as the design's E (CAM-31, #369)
  • Raw stages by raw revision: an older edit of a photo that clipped renders from a variant session (CAM-31, #369)
  • Feature videos: E01 approved by the owner as the first reel and rendered (e01-a.mp4 for Tue 27 Oct, e01-b.mp4 for the trial reel on Thu 29 Oct)
  • User manual: the Masking fact sheet says what the panel figure and the masking screenshot show now, and what's left of the hero shot (UX-20, #301)
  • Feature videos: a bar of the theme leads in under the opener's held chord, so the cut into the episode ramps up rather than stopping dead: the arpeggio grows out of nothing on the notes D major and D minor share, over a muffled kick and a drone on D and A that carries on under the first bar, with the hit's reverb swelling into it; each episode writes its own opener for each arrangement
  • Feature videos: the dashboard look and a synthwave score for the series, as the owner chose; E01's cut is the dashboard version (the real-photo one kept as e01-photo), the dashboard's pieces move into world.py for the next episodes, and the campaign document, posts.json and the studio's sound notes follow
  • Tracker: UX-30's and UX-29's commits as they landed on main (UX-30, #317; UX-29, #316)
  • Palette: whether a theme is dark comes from its appearance, not luma worked out outside RedlampColor (UX-30, #317)
  • Panel switches and value fields as landed: the tracker (UX-30, #317; UX-29, #316)
  • Panel headers: the Edited chip in the row's greys rather than the accent, which drew the eye (UX-30, #317)
  • Panel headers: the Edited chip counts the panel's changed settings, and lists them on hover (UX-30, #317)
  • Themes: a light theme's panels keep at least 85% of their colour over the glass, so their labels read (UX-30, #317)
  • Panel headers: an Edited chip where the dot was, so a panel with edits says so (UX-30, #317)
  • Value fields: one width for every field in a Develop panel, so wells and tracks line up (UX-29, #316)
  • Value fields: no well in a field too small for its rounded corners (UX-29, #316)
  • Debug snapshots: off= switches panels off, type= clicks a value field to type in it (UX-30, #317)
  • Value fields: the well always shows, and a darker one while typing (UX-29, #316)
  • Panel switches: an eye at each header's trailing edge, the edited dot in the accent, and the Develop panels as cards (UX-30, #317)
  • Panel switches done: the tracker and the Lightroom comparison (UX-30, #317)
  • Panel switches: the switch posts no accessibility notice, which hung a context menu's tracking (UX-30, #317)
  • Panel switches: the sidecar's coding check covers panelsOff (UX-30, #317)
  • Panel switches: a switch on eight Develop panel headers, a History step each (UX-30, #317)
  • Panel switches: the edit's switched-off panels render neutral (UX-30, #317)
  • Driver tests: the popover test lets the popover lay out and draw before its tap, as it has by a person's click, and says where a press went when it isn't taken; on CI's runner the tap went unanswered twice on 10 October (ARC-07, #212)
  • Masking scenarios with focus: each gradient drawn by a drag starts somewhere else, as a drag started on the selected mask's handles moved that mask instead of drawing (UX-20 to UX-24, #301 to #305)
  • Release: refuse, before building, to make the disk image while the files the release writes are tagged with com.apple.provenance, as everything Homebrew's mise starts tags them, and say how to take the attribute off mise (#333)
  • Feature videos: E01's UI variation, drawn as the pixelartvisuals dashboards are (a pixel-art dusk developed by E01's sliders as coloured meters over a live histogram, and a card for each bar's words), to compare with the real photo in Studio as episode e01-ui
  • Feature videos: each message once: the hook in the opener, the title held from the opener into the episode's first bar, one brand line under the logo, and the logo giving way to the header in place; E01's header is ALTERNATIVE TO LIGHTROOM, so free is on screen three times rather than six
  • DEC-54 accepted; a Z 6III HE* decode matches Adobe DNG Converter's in every photosite, and what other samples turned up (CAM-12, #168)
  • Feature videos: E01 is Free alternative to Lightroom, and the opener's subtitle is each episode's title, unnumbered; E01's captions say Redlamp isn't affiliated with Adobe and its alt text describes the opener
  • Feature videos: the opener holds a bar to be read and introduces the episode, FEATURE 1 OF 10 over its feature where the hook was; its third bar holds the film's last chord, drawn by the film's score in its room and at its level; videos are 29.2 s
  • Feature videos: the opener is the pixel-art one, the looks explainer's intro redrawn for 9:16 on Introducing Redlamp's own two bars: the hook over the lamp warming, the logo, the brand's lines and the logo rising into the episode's header; each post's cover is the hook over the lit lamp
  • LibRaw's master reaches the fork by a weekly merge; release status reports what the pin lacks (CAM-30, #367)
  • Feature videos: every video opens with Redlamp's opener, the Introducing film's opening scene with the short's own sound, before the episode cuts in on its first hit; the whole video is mastered to -14 LUFS and each post's cover is the hook frame, 6.7 s in
  • Feature videos: a new theme with more ...
Read more

Redlamp 0.2.8-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 10 Oct 05:35

Highlights:

  • Redlamp Reproduction: a Base Look with no tone curve, for copying artwork and documents. Once the exposure is anchored to the camera, a grey scale's patches render at their own lightness (#360). Calibrate from Target sets the anchor from a click on a target's grey patch, for the camera or for one photo (#359).
  • The histogram's readout: with the pointer over the photo, the line under the histogram shows the R, G and B percentages or L*a*b*, and in stops under Redlamp Reproduction (#319).
  • The photo takes the panels' room: hiding the side panels with Tab, F7 or F8 fits the photo to the space they leave, rendered again at its new size (#358).
  • Fixes: a mask chosen by its pin no longer keeps its overlay once another mask is selected (#364); H and Show Spots hide the Healing tool's spots, so a pick's fill can be judged with nothing over it (#336); and each Color Grading wheel's Hue and Saturation values keep apart, so Hue 30 and Saturation 10 no longer read "30S 10".
  • A disk image to download: the site's download is a disk image, with Redlamp beside a link to Applications; updates and Homebrew keep the zip (#333).

Changes since 0.2.7-prealpha:

  • Color Grading: each wheel's values keep a gap before the next label, so Hue 30 and Saturation 10 no longer read "30S" (UX-28, #315)
  • 0.2.8's release notes
  • Tracker: picking what to remove by rectangle or brush, accepted from a report, on the roadmap and in the comparison (RM-19, #365)
  • Capture scripts: a canvas captured with its saved state, a tab and a moment of its own (--data, --set, --now); a page's lazy images loaded before its screenshot
  • Blog room: an on hold state, for a list's pull request that hasn't been merged
  • Tracker: Redlamp Reproduction and camera calibration done; the comparison's reproduction row done, the README's looks and readout (TON-39, #360; CAM-28, #359)
  • Raw pipeline: under Redlamp Reproduction the edit's exposure anchor takes BaselineExposure's place for every raw (CAM-28, #359)
  • Calibrate from Target: a click on a target's grey patch, a popover for its reference L*, then Calibrate [camera] or Set This Photo's Exposure; a status line under the Base Look says how the camera is calibrated and what bends the rendering; in the Photo menu and the palette, with Report a Bug's feature and the develop.reproduction scenario (TON-39, #360; CAM-28, #359)
  • Grey-scale measurement: Redlamp Reproduction on the CC0 Sigma fp chart reads 22.5, 35.5, 50.9, 66.4, 81.0 and 95.3 with middle grey anchored, within 0.1 L* of the row the design worked out and 0.4 of the references from Neutral 3.5 to 8 (TON-39, #360)
  • The histogram's readout in stops under Redlamp Reproduction: the light the tone controls receive, from the anchored 18% grey, read from the same render through a readout encoding that carries the luminance in alpha; a ≈ while the anchor is typical (CAM-28, #359)
  • Exposure anchored to the camera under Redlamp Reproduction: each edit keeps its own photo's camera's anchor, from a per-camera store or the typical +1.03 EV, written on choose, paste, sync and recipes and never copied; it replaces BaselineExposure for the render and Auto; Update Calibration; the CLI's --anchor; the format and schema; process references for a Reproduction edit (CAM-28, #359)
  • Redlamp Reproduction: a Base Look with no tone curve, mixed in by its Amount, in a section of its own after the others; a bitmap shows its own light under it (TON-39, #360)
  • Blog room: articles beside the posts, at their /articles address; status reads origin/main, and thumbs finds a kit rendered in a worktree
  • Blog: Linear vs scene-referred's kit, its card drawn in pixel art
  • Reproduction design approved: Redlamp Reproduction, an opt-in Base Look with no tone curve, and each camera's exposure calibrated from a target; the tracker rows point at it, and CAM-29 proposes anchoring every render (TON-39, #360; CAM-28, #359)
  • Healing: H and Show Spots hide the spots, so a pick's fills can be compared with nothing over them (#336)
  • Articles: Linear vs scene-referred, published
  • Articles: Linear vs scene-referred, without the line under What would fix it
  • Articles: Linear vs scene-referred, a draft with seven interactive figures
  • Site: technical articles at /articles, in the blog's Markdown, with interactive figures placed by a data-figure line
  • Masking: a mask chosen by a click on its pin no longer keeps its overlay once another mask is selected; the pointer's preview ends with the pin or row it came from (#364)
  • Tab's regression scenario: the photo grows into the side panels' room, rendered again at its new size, and Tab again puts it back (#358)
  • Hiding the side panels gives the photo their room: Tab, F7 and F8 refit it, rendered again at its new size (#358)
  • Tracker: the reproduction work accepted for before 0.3.0, on the roadmap and in the comparison (TON-39, #360; CAM-28, #359; UX-40, #363; EDT-26, #361; UX-39, #362)
  • Reports room: a reopened report goes back to triage, with its earlier round kept; Fix it again briefs a new agent on why the first fix wasn't enough
  • What's New for 0.2.7: sharper X-Trans photos, values you can drag, Auto Settings keeping bright skies (CAM-07, #20; UX-29, #316; UX-28, #315; #325)
  • Tracker: custom crop ratios and turning the photo by dragging outside the crop, accepted from reports (LNS-12, #352; LNS-13, #353)
  • Tracker: a scene-referred mode, exposure tied to camera metering, pinned readouts and reference export spaces, proposed from a museum's feedback, with the grey-scale measurement (TON-39, CAM-28, UX-40, EDT-26)
  • Records for 0.2.7: CAM-07 names its commit, the release's download and installed size, and the README's sizes (CAM-07, #20)
  • Site: colour science is scene-referred up to the tone curve, as the README says
  • The histogram's line reads the photo under the pointer, in RGB or Lab* (UX-32, #319)
  • Release: the disk image window's layout, as Finder made it with scripts/dmg/layout.sh
  • Release: the disk image's window, the lamp's light on the wall behind Redlamp with an arrow to Applications, in a layout Finder makes once (scripts/dmg)
  • Site: the download button offers the latest release's disk image, or its zip for a release without one
  • Release: a disk image for the site's download, the app beside a link to Applications and cleared of the extended attributes behind #333; updates and Homebrew keep the zip

Full Changelog: v0.2.7-prealpha...v0.2.8-prealpha

Redlamp 0.2.7-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 08 Oct 22:23

Highlights:

  • Sharper Fujifilm X-Trans photos: Redlamp now develops X-Trans raws with Markesteijn's demosaic, ported from LibRaw, which resolves fine detail far better (MTF50 0.185 to 0.345 cycles per pixel on a sharp edge). It applies to every X-Trans photo, so existing edits of them look sharper too.
  • Value fields you can drag: with the pointer over a number, a drag scrubs it across its range (Shift for finer steps), and a click still types. The color wheels show their hue, saturation and luminance, and the tone curve its point's input and output, as values you can type or scrub.
  • Auto Settings keeps bright skies from clipping: Highlights holds the brightest 1% of the photo, and the exposure gives way, by up to 1 EV, where Highlights can't (#325).
  • Fixes: the filmstrip slides away and back where it was left, not at the first photo (#344); Choose… in the Export dialog's Export to opens the folder panel on the first click (#356); the Diagonal Split's knob drags the split instead of zooming the photo (#326); and the download opens without Gatekeeper refusing it (#333).
  • Duplicate and Invert now stores the copy's inversion with the mask, so a copy made in 0.2.7 opens un-inverted in 0.2.6 and earlier.
  • More of the audit's fixes: responsiveness, render pipeline and lean code.

Changes since 0.2.6-prealpha:

  • Release: the bundled CLI's check prints its exit status and what it said, so a failure names its cause
  • The app embeds RedlampBench, which the bundled CLI links since redlamp task (ARC-11, #348); the release bundle check names a helper's missing framework, and the budget rises to 45,200 KB for its 756 KB
  • Tracker: stills of a photo not open keep none of its retouches or masks (AUD-08, #285)
  • The embedding cache lets go of its entry in memory when the models unload, the window closes, or a photo no longer open is embedded (MEM-09, AUD-08, #285)
  • A still of a photo that isn't open leaves the mask stage holding only the open photo's masks (MEM-09, AUD-08, #285)
  • A still or a dust search of a photo that isn't open keeps none of its retouches, and evicts none of the open photo's (MEM-09, AUD-08, #285)
  • Stills of a photo that isn't open keep its retouches and masks, and the embedding cache its last entry: failing tests (MEM-09, AUD-08, #285)
  • Tracker: the audit's four CI failures fixed, with the People picker bug behind one (AUD-06, #283; AUD-07, #284; AUD-08, #285)
  • Export tests: Export with Previous doesn't open its export in Finder (DATA-17, AUD-06, #283)
  • Export tests: the fixture creates the application, so Export with Previous runs without the rest of the UI bundle (DATA-17, AUD-06, #283)
  • Mask model slot test: margins of seconds for the idle unload (MEM-07, AUD-08, #285)
  • People picker: when the list of parts arrives, an open picker works out which parts need a model (RESP-15, AUD-07, #284)
  • People picker: a failing test that one opened before the list of parts arrives asks for a part's model (RESP-15, AUD-07, #284)
  • Export dialog test: its reads wait until the test has checked the name shown before they answer (DATA-17, AUD-06, #283)
  • Decode service: a call from the main thread stops before it reads the file (DATA-17, AUD-06, #283)
  • Tracker: renders that finish for a released photo keep nothing of it (AUD-08, #285)
  • AI mask renders and model results for a photo no longer open aren't kept, so a photo closed mid-render is freed (MEM-09, AUD-08, #285)
  • A render that finishes after the window closed keeps its photo: failing test (MEM-09, AUD-08, #285)
  • 0.2.7's release notes
  • Tracker: MEM-09's detail-stage fix landed, and where the 0.5 GB goes (AUD-08, #285)
  • A still for a photo no longer open keeps nothing in the detail stage (MEM-09, AUD-08, #285)
  • A render for a photo already released keeps its detail textures: failing test (MEM-09, AUD-08, #285)
  • Tracker: DATA-17 step 2 landed (AUD-06, #283)
  • Embedded mattes: found and read in the decode service, through the engine's decoder (DATA-17, AUD-06, #283)
  • Embedded mattes: the decoder's reads, parity tests with the service and the engine (DATA-17, AUD-06, #283)
  • HaldCLUT import: refuse a table past 65 points from the image's size, before decoding it (DATA-17, AUD-06, #283)
  • Tests that measure speed skip on a virtual machine, such as CI's runner, through a shared .measuresSpeed trait; the Base Look timing takes it
  • Tracker: PIPE-08 landed, AUD-10 done (AUD-10, #287)
  • AI mask analysis is kept for the photos visited last, and the warm-up prepares only Segment Anything: the matte, Depth Anything 3 and SAM 3 wait for a mask that needs them (PIPE-08, AUD-10, #287)
  • Test that a photo the Masking tool warmed up isn't analysed again, and the warm-up runs only what hovering needs (PIPE-08, AUD-10, #287)
  • Supporters room: skill and template for Redlamp's funding
  • Tests: the stub engine keeps its records of opens and releases behind a lock, as photos open at once off the main actor (MEM-09, MEM-07, AUD-08, #285)
  • Regression scenario: Choose… in Export to opens the folder panel once its menu has closed (#356)
  • Export dialog: Choose… in Export to opens the folder panel once its menu has closed (#356)
  • Tracker: DATA-17 step 6 and the Even Skin Tone test's wait landed, RESP-07 probed (AUD-06, #283; AUD-07, #284)
  • The Even Skin Tone test waits for the AI masks the engine offers (RESP-15, AUD-07, #284)
  • Camera previews in a colour space without a name come from the decode service drawn in Display P3, so the app parses no ICC profile from it and refuses a reply that carries one (DATA-17, AUD-06, #283)
  • Camera previews in an unnamed colour space are checked to arrive in Display P3, and replies carrying a profile to be refused, a known issue until they are (DATA-17, AUD-06, #283)
  • Camera Bench identifies files and reads their camera previews in the decode service, the previews coming back as pixels (DATA-17, AUD-06, #283)
  • The decode service is checked against the app's own identifying of raw files and reading of camera previews, a known issue until it reads them (DATA-17, AUD-06, #283)
  • Tracker: hashes for RESP-13 and the mask-editing wait after rebasing onto origin (AUD-07, #284)
  • Tracker: the mask-editing tests wait for the AI mask list (AUD-07, #284)
  • MaskEditingTests: wait for the AI mask list on the condition each test needs, up to 30 s (RESP-15, AUD-07, #284)
  • Tracker: RESP-13 landed (AUD-07, #284)
  • The inspector column sizes its document once a layout pass, and keeps its rows' heights (RESP-13, AUD-07, #284)
  • Test that the inspector column measures its rows once when several change (RESP-13, AUD-07, #284)
  • Looks explainer videos: the brief for the promo studio (TON-36, #345)
  • Tracker: the bench's commits as they land on main, and rl's (ARC-11, ARC-12, ARC-13, ARC-14, TON-36, TON-37, TON-38)
  • rl, the repository's launcher: a menu of the tools that asks for what each needs, rl status, and docs/tools.md from one registry checked in the lint (ARC-14)
  • app-import of a look reference installs through the decode service, as main's library now asks (TON-36, #345)
  • Tracker: Redlamp Bench and look references on main, with the owner's first reference from his phone (ARC-11, ARC-12, ARC-13, TON-36, TON-37, TON-38)
  • Looks and the bench: both workflows explained, and contributing a look (ARC-11 #348, TON-36 #345)
  • Bench app: steps that move, live status of what's sent, and a share sheet that shows its matches (ARC-12 #349)
  • Bench: Bonjour both ways, pairing by Allow in the Lab (ARC-12 #349, ARC-13 #350)
  • Tracker: Redlamp Bench and look references built on bench/tasks, what's tried and what waits (ARC-11, ARC-12, ARC-13, TON-36, TON-37, TON-38)
  • Docs: Redlamp Bench (the iPhone app, the Lab's hub, redlamp task) and look references with their candidates, with screenshots (ARC-11, #348; ARC-12, #349; ARC-13, #350; TON-36, #345; TON-37, #346; TON-38, #347)
  • Looks to evaluate in the Recipe Lab: references fitted as they arrive, ranked candidates compared large with the app's exports, pairwise picks, and install under Redlamp's own name (TON-38, #347); the hub falls back to a free port and no longer blocks on a DNS lookup (ARC-13, #350); harness --snapshot
  • Candidate looks for a capture: measured, smoothed, fitted to the charts and photos, and with film effects, each scored on the kit photos rendered through the engine against the app's exports (TON-37, #346)
  • Look references: the capture kit published as the hub's template, references made from it, and app-import reading one against its own kit images (TON-36, #345)
  • The redlamp-bench skill: how an agent asks the owner for a step in Lightroom, with DEC-08's mask task as the worked example (ARC-11, #348)
  • Redlamp Bench for iPhone: tasks pulled from the Lab, each step one at a time, sharing and saving the references, and a share extension that pairs results and sends the task back when it's complete (ARC-12, #349)
  • The Recipe Lab's bench hub: a Bench tab with the pairing code, the harness running it, and .redtask files opened in the harness (ARC-13, #350)
  • redlamp task: new, check, list, show, wait, withdraw, and serve, the hub without the Lab (ARC-11, #348)
  • Bench tasks: the folder format, pairing, .redtask archives, the hub and the phone's library (ARC-11, #348; ARC-13, #350)
  • Tracker: Redlamp Bench, its bench tasks and hub, and look references at scale (ARC-11, ARC-12, ARC-13, TON-36, TON-37, TON-38, DEC-53)
  • Filmstrip: centring a photo the strip hasn't loaded yet leaves it where it is, where asking for its row raised and the app quit (#344)
  • Regression suite: the test app's export rule seeded as addNumber, the value the app reads; keepBoth read as Ask, so smoke.export stopped on the file-exists alert (...
Read more

Redlamp 0.2.6-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 07 Oct 16:50

Highlights:

  • Keep the filmstrip up: turn off View › Filmstrip › Hide Automatically (or right-click the filmstrip, or Settings › Appearance), and the photo is fitted above the filmstrip instead of under it. The filmstrip also lost its scroll bar.
  • Skies that keep their branches: a Sky mask's edit reaches only the sky's share of each pixel along its edge, so darkening a sky no longer leaves twigs and leaves pale against it. It applies to edits started from now on; photos already edited look as they did.
  • Generative fill on more Macs: Macs with less than 16 GB of memory can download and try it, with a note that it hasn't been tested on them.
  • Hair and fine edges with ViTMatte: a download in Settings › Models that adds the fine strands Subject, Background and People masks miss. Refine Edges now solves the edge again per pixel, and Feather and Edge keep a mask's stray hairs.
  • Quitting while AI masks are being prepared no longer crashes Redlamp, a crash in Landscape masks since 0.2.0.
  • The Export dialog fits any window, and its settings scroll, so the ones at the bottom can be reached; Report a Bug and Copy Settings fit too (#290).
  • The audit's second batch of fixes: data safety, responsiveness, memory, concurrency and the render pipeline.

Changes since 0.2.5-prealpha:

  • Tracker: RESP-04's test, RESP-12, PIPE-05, MEM-08 and the packed analysis copy landed (AUD-07, AUD-08, AUD-10)
  • Analysis copy: packed RGB, 12 bytes a pixel, the same floats (MEM-04, AUD-08, #285)
  • Analysis copy: a failing test for its 12 bytes a pixel (MEM-04, AUD-08, #285)
  • Focus-stack merge: pack the colour copy, drop full luma after alignment, no extra fused copies (MEM-08, AUD-08, #285)
  • Focus-stack colour copy: a failing test for its 12 bytes a pixel (MEM-08, AUD-08, #285)
  • An idle canvas takes its display link off the run loop, and puts it back for the next scene (RESP-12, AUD-07, #284)
  • Test that an idle canvas takes its display link off the run loop, and draws what's published as it leaves or comes back (RESP-12, AUD-07, #284)
  • Frames render into the surfaces they have when their size changes (PIPE-05, AUD-10, #287)
  • Test that frames of alternating sizes reuse their surfaces (PIPE-05, AUD-10, #287)
  • Test that another writer's edit adopted during a photo switch is kept on going back (RESP-04, AUD-07, #284)
  • Tracker: PIPE-14's and LEAN-04's hashes after the rebase onto origin/main (AUD-10, AUD-11)
  • Tracker: LEAN-04 landed (AUD-11, #288)
  • Decode service: load the app's frameworks instead of its own copies (LEAN-04, AUD-11, #288)
  • check-release-bundle: fail if an XPC service carries its own copy of the app's frameworks; budget 54,300 KB (LEAN-04, AUD-11, #288)
  • Blog room: the library post went out on X; a mark the room has recorded no longer shows as waiting
  • Tracker: PIPE-14 landed (AUD-10, #287)
  • The detail stage lets go of the last photo's textures and session when it moves to another (PIPE-14, AUD-10, #287)
  • Test that moving to another photo lets go of the last one's detail textures and session (PIPE-14, AUD-10, #287)
  • Blog room: every post and its announcement in one canvas, the card generator rebuilt in a skill, and kits for the library, release and camera posts
  • Tracker: UX-19 done, the filmstrip hidden automatically or kept up; README roadmap and Lightroom comparison (UX-19, #292)
  • Filmstrip: no scroller, even in the legacy style a connected mouse brings, which took 17 pt from the photos (UX-19, #292)
  • README: the filmstrip's Hide Automatically (UX-19, #292)
  • Filmstrip: Hide Automatically's regression scenario, through the View menu, a right-click and Settings (UX-19, #292)
  • Filmstrip: Hide Automatically in the View menu, the filmstrip's own menu and Settings (UX-19, #292)
  • Filmstrip: Hide Automatically, one saved preference, with the photo fitted above a filmstrip kept up (UX-19, #292)
  • Tracker: RESP-05 and RESP-09 landed (AUD-07, #284)
  • Record a run of nudges as one history step (RESP-09, AUD-07, #284)
  • Test that a run of nudges is one history step (RESP-09, AUD-07, #284)
  • Make the histogram's channels off the main thread (RESP-05, AUD-07, #284)
  • Test that new histograms aren't drawn on the main thread (RESP-05, AUD-07, #284)
  • Tracker: MSK-31 done, Refine Edges per pixel and process 14's Feather and Edge (MSK-31, #275)
  • Process 14: an AI mask's Feather and Edge shape its body and keep its stray hairs, 48% of strands at Feather 50 against 35%, with less background taken in (MSK-31, #275)
  • Tracker: the Masks panel's rows renumbered UX-20 to UX-27; UX-19 was already the filmstrip's (UX-17 #277)
  • Masks panel design approved: rows UX-19 to UX-26; MSK-31 accepted, Edge and Feather in process 14 (UX-17 #277, MSK-31 #275)
  • Tracker: LEAN-03 landed (AUD-11, #288)
  • Build LibRaw with hidden visibility, so dead-stripping drops what Redlamp doesn't call (LEAN-03, AUD-11, #288)
  • check-release-bundle: fail if RedlampServices exports LibRaw's symbols; budget 56,500 KB (LEAN-03, AUD-11, #288)
  • check-release-bundle: say how to raise the size budget (LEAN-02, AUD-11, #288)
  • Generative Remove on Macs with less than 16 GB, with a note that it hasn't been tested on them (RM-15, #297)
  • Tracker: PIPE-09's hashes after the rebase onto origin/main (AUD-10, #287)
  • Tracker: PIPE-09 landed (AUD-10, #287)
  • The Subject matte is kept on the engine, not in a static (PIPE-09, AUD-10, #287)
  • Background reuses the Subject mask (PIPE-09, AUD-10, #287)
  • Test that Background after Subject takes the Subject matte (PIPE-09, AUD-10, #287)
  • Frame latency test: counts from an editor with every frame opening sent, so a late one isn't counted with the slider's (RESP-10, AUD-07, #284)
  • Export dialog: scenario and test for a short editor window (#290)
  • Copy and Sync Settings fit on a short editor window (#290)
  • Report a Bug fits on a short editor window (#290)
  • Debug snapshot: export=end scrolls the dialog's settings to the end (#290)
  • Export sheet scrolls when it's taller than the window (#290)
  • Snapshot script opens the Export dialog and captures a sheet over its window (#290)
  • Tracker: DATA-17's focus-stack step landed (AUD-06, #283)
  • The decode service reads a folder's captures and focus thumbnails in calls of at most 1,000 files (DATA-17, AUD-06, #283)
  • A folder over a thousand photos is checked to reach the decode service in calls of at most 1,000, a known issue until they're capped (DATA-17, AUD-06, #283)
  • The decode service's parity test names the Nikon Z6 run a series, not a stack (DATA-17, AUD-06, #283)
  • Focus stacks are found from captures and thumbnails read in the decode service, one call per folder (DATA-17, AUD-06, #283)
  • The decode service is checked against the app's own reads of capture settings and focus thumbnails, a known issue until it reads them (DATA-17, AUD-06, #283)
  • Tracker: LEAN-02 landed (AUD-11, #288)
  • Release: strip what ships and publish each release's dSYMs (LEAN-02, AUD-11, #288)
  • check-release-bundle: fail on debugging symbols, missing dSYMs, or the size budget (LEAN-02, AUD-11, #288)
  • Tracker: DATA-16 landed (AUD-06, #283)
  • The purity check flags a throw while an encoder is open (DATA-16, AUD-06, #283)
  • A buffer or texture that can't be allocated mid-encode ends its encoder: the session build, develop, detail and retouch passes (DATA-16, AUD-06, #283)
  • Compute encoders opened through withComputeEncoder end however their work exits (DATA-16, AUD-06, #283)
  • Tracker: MEM-04 landed (AUD-08, #285)
  • The session cache counts all of a photo's memory, keeps prefetches within budget and answers memory pressure (MEM-04, AUD-08, #285)
  • Test what the session cache counts, keeps and lets go of under pressure (MEM-04, AUD-08, #285)
  • Tracker: LEAN-12 landed (AUD-11, #288)
  • Release: thin Sparkle to arm64 and fail on any Intel slice in the bundle (LEAN-12, AUD-11, #288)
  • Packages: build for Apple Silicon only, as the app does (LEAN-12, AUD-11, #288)
  • RapidRAW study: how it decodes raws, which cameras it reads, its demosaics and its colour (RR §4.2)
  • Tracker: AUD-09 done, CONC-05 and CONC-07 landed (AUD-09, #286)
  • Solve a Sky mask's edges on the photo it was computed for (CONC-07, AUD-09, #286)
  • Test that a Sky mask's edges are solved on the photo it was computed for (CONC-07, AUD-09, #286)
  • A failed or dropped render forgets the masks it drew and the caches it grew (CONC-05, AUD-09, #286)
  • Test that a failed render leaves no mask cache pointing at what it never drew (CONC-05, AUD-09, #286)
  • Tracker: LEAN-07 landed (AUD-11, #288)
  • Project: the RedlampLab module, linked by the harness (LEAN-07, AUD-11, #288)
  • The Recipe Lab moves out of RedlampUI into RedlampLab, which only the harness links (LEAN-07, AUD-11, #288)
  • RapidRAW study: its tiered AI against Redlamp's, and fills from a server on the local network (RM-15, RM-16, RM-17, INF-10, CAM-27, DEC-37, DEC-38)
  • Raw denoise study: Lightroom's Denoise, joint demosaicing and Redlamp (DN-11)
  • Quitting waits for the AI models running, so it no longer crashes in SAM 3's Landscape
  • Core ML models load and predict through Inference, which can stop them before exit
  • Tracker: PIPE-10's hashes after main's rebase onto origin (AUD-10, #287)
  • Tracker: PIPE-10 landed (AUD-10, #287)
  • Focus stacks reuse decoding, alignment and depth across merge methods (PIPE-10, AUD-10, #287)
  • Test that another merge method reuses the frames' alignment and depth (PIPE-10, AUD-10, #287)
  • Tracker: UX-19, the filmstrip kept shown as a setting rather than a pin (UX-19)
  • Tracker: the R6 Mark III's and PowerShot V1's black levels, and the R6 Mark III verified (CAM-21, #184; CAM-01, #14)
  • Canon EOS R6 Mark III verified: its RAW sample in the camera coverage set (CAM-21, #184; CAM-01, #14)
  • Canon CR3s: the black level from the masked photosites where LibRaw misreads it (CAM-21, #184)
  • Tracker: MSK-30's face parts measured (MSK-30, #274)
  • Face parts measured on the evaluation ...
Read more

Redlamp 0.2.5-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 07 Oct 04:40

Highlights:

  • Generative fill for removal (Healing tool, Remove, Fill: Generative): an image model repaints what you remove when it's too large to fill from the photo, such as a parked car. It runs on your Mac after a 2.4 GB download, offers three fills a spot, labels them as generated, and needs 16 GB of memory or more.
  • Point Color (Color Mixer, and in each mask): pick up to eight colours on the photo with an eyedropper, or take a mask's own, and set each one's Shift, Uniformity and Range, with Visualize Range to see what it reaches. The Even Skin Tone mask preset evens a face's colour while keeping its fine detail.
  • Curves inside masks: each mask has an RGB curve and one each for red, green and blue, applied only as far as the mask reaches.
  • Reorder masks and components by dragging, see a mask with the Image on B&W overlay, and set the overlay's Opacity.
  • Zoom and pan inside every tool: the wheel, pinch and two-finger scroll work in Masking, Healing and Crop; Space-drag pans; [ and ] size the brush, with Shift for its feather.
  • More for masks and removal: Feather and Edge sliders for AI masks and a Refine Edge brush, Objects masks by dragging a box or brushing, a Color swatch, Whites and Blacks that move each pixel's end points, Snow in Landscape masks, and a removed object's shadow and reflection removed with it.

Changes since 0.2.4-prealpha:

  • Tracker: PIPE-16 landed, AUD-10 in progress (AUD-10, #287)
  • Regression suite: test copies are signed for their own bundle ID, so macOS remembers the file access they were given (ARC-08, #213)
  • Detail stage: masks' detail keys say whether process 13 refined their AI edges (PIPE-16, AUD-10, #287)
  • Detail stage: a test that shows PIPE-16; the reclaimed texture's comment and a failed render after reclaiming (PIPE-03, PIPE-16, AUD-10, #287)
  • Edge-aware application prototype: through the true coverage, twigs' error at mixed pixels falls from +11.7 to +0.2 L*; through today's Sky mask it halves; on hair mattes it doesn't help (MSK-27, #271)
  • Tracker: AUD-06 to AUD-11, the audit's second batch of approved fixes
  • mask_bench.py: the evaluation set's functions were defined twice (MSK-25, #269)
  • Tracker: MSK-25's benchmark, review and quality gate (MSK-25, #269)
  • Mask review: the gate's measurements; the edit's application glows beside dark hair too, and strands past the solved band never come back (MSK-25, #269)
  • Mask quality gate: the edit's rim at a sky's branches and beside strands, and the Sky and Subject mattes' edge error and thin recall, bounded at today's results (MSK-25, #269)
  • Mask review (MSK-25): the sky's aura is mostly how edits apply at an edge; hair's glow is the matte's; the fixes ranked and targets proposed, before Lightroom Mobile's results (MSK-25, #269)
  • Mask benchmark: today's Sky, Subject and People masks for the evaluation set, and a contact sheet per cell, whole and at 100% (MSK-25, #269)
  • Mask benchmark: mask_bench.py scores what's drawn and a standard edit's halo against the scene edited before compositing, through linear DNGs; the benches write each scene's ideal edit (MSK-25, #269)
  • Site: the Discord in the footer's Project links
  • Process 13: the bundled recipes' golden renders (MSK-07, #1)
  • CI: each push to main runs to the end, so the badge never reads a cancelled run as failing; a pull request's newer push still cancels its older run
  • CameraBenchReportTests: the sample report keeps the process version its golden was recorded with (12), so a new process doesn't change it
  • README: the Discord, in the badges and Contributing
  • Video: the star promo opens on the lamp at rest, swells through the squash instead of cutting to silence, and gains a bar for its last hit to die away and fade out (18 s)
  • Promo studio: the owner's taste in music, the cinematic palette and the score report; the star promo's design and README follow the new score
  • Video: the badge bumps on the score's own drum hits; frames paint cheaply (light on canvas, gradient shadows, cached grain), and stills and cuts Chrome captured unpainted are rendered again
  • Video: the star promo's score rewritten dark and cinematic: D minor, strings, a trailer's low brass and half-time drums, with a choke before the drop; and a score report for review
  • Promo studio: a project skill that makes promos like a small agency, and the docs for the star promo and its kit
  • Video: Star Redlamp, a 16 s promo in 9:16 and 1:1 with its score on one cue sheet, and stills and a storyboard sheet for review
  • Video: a synth library for promo scores: drums, basses, a supersaw and a lead, effects, sidechain, and mastering to BS.1770 loudness
  • Video: the promo kit: the star nudge's light, lamp, GitHub badge and sign on its rope for Remotion, drawn frame by frame from a seeded random source
  • Tracker: process 13's render-time edge for coarse masks only, done; README and comparison (MSK-26, #270; MSK-07, #1)
  • Process 13: the render-time edge only for masks coarser than masks are stored at; masks solved per pixel are drawn as stored (MSK-26, #270)
  • Tracker: AUD-05 done, drags at zoom render only what's visible (AUD-05, #162)
  • The overview is rendered again when a look is registered or a still installs retouch maps (PIPE-01, AUD-05, #162)
  • Region frames keep the previous overview and histogram while only the region moves (PIPE-01, AUD-05, #162)
  • Drags render the visible part plus a 64 px guard, the margin once they end (PIPE-01, AUD-05, #162)
  • Research: drawn_compare.py, where two drawings of one mask differ on a real photo (MSK-26, #270)
  • redlamp render --coverage, --mask-bitmap and --process: a mask's coverage as the renderer draws it, from a given matte, at any process version (MSK-26, #270)
  • Rules: main keeps a linear history; a diverged main is rebased onto origin/main, never merged, and issues sync only from a main that contains origin/main
  • Tracker: commit hashes as main has them after rebasing onto origin/main (MSK-25, #269; UX-18, #278; AUD-01, #151)
  • The Color Mixer's drop-down gives Point Color its glyph, missing once Point Color met the inspector's drop-downs (UX-18, #278; TON-29, #181)
  • Tracker: the mask evaluation photoset done (MSK-25, #269)
  • Mask evaluation set: 115 CC0 photos from Wikimedia Commons for Sky, Subject, People and face parts, downloaded by mise run maskeval (MSK-25, #269)
  • Tracker: the inspector's choices as drop-downs and notices on cards done (UX-18, #278)
  • The inspector's choices as drop-downs with a glyph beside each option, labelled in the panels' label column; notices on a faint card in their tone, a token type of their own (UX-18, #278)
  • Tracker: the inspector's choices as drop-downs and notices on cards, accepted as the owner asked (UX-18)
  • A hosted panel is measured again as its content grows: the Healing panel's rows no longer overlap its sliders when the download offer appears
  • Tracker: mask quality and the Masks panel (MSK-25 to MSK-32, UX-17); DEC-35 accepted, ViTMatte ships under a licence exception
  • Research: drawn_edges.py, what process 13 draws of an AI mask beside the mask as stored (MSK-07, #1)
  • README and tracker: AUD-01 done, a sidecar that can't be read is read again and a damaged one can start over (AUD-01, #151)
  • Removal's mask check sits apart from removeUnusedBitmaps' comment; a copy that can't be read keeps every mask (DATA-14, AUD-01, #151)
  • Removing a sidecar keeps the masks its damaged edits name (DATA-14, AUD-01, #151)
  • SaveQueueTests wait up to 30 s for an open (AUD-01, #151)
  • A damaged edit says so, and Start Over sets it aside for a new one (DATA-14, AUD-01, #151)
  • A sidecar read again keeps the zoom; this round's tests wait up to 30 s (DATA-18, AUD-01, #151)
  • A failed save a later one overtook leaves the editor as it is (AUD-01, #151)
  • A sidecar read again opens the photo in a new visit, and keeps trying while another opens (DATA-18, AUD-01, #151)
  • Failed saves keep earlier visits' history, and show another writer's edit merged (AUD-01, #151)
  • A photo whose sidecar can't be read opens read-only and is read again, never unedited (DATA-18, AUD-01, #151)
  • Tracker: TON-29 done (#181), its follow-ups proposed as TON-34; README and comparison in step
  • Face Skin: the forehead reaches the hairline, not a fixed height above the brows (TON-29, #181)
  • Point Color's design: built for review, and what's performance-sensitive (TON-29, #181)
  • Point Color: a duplicated mask's swatches are its own; choosing another mask ends the eyedropper (TON-29, #181)
  • Point Color: the preview shows a mask's own colour as a downscaled export does (TON-29, #181)
  • Point Color: a mask's own colour leaves out near-greys; Even Skin Tone tuned (TON-29, #181)
  • Point Color in masks: the mask panel and Even Skin Tone (TON-29, #181)
  • Point Color in masks: the kernel, and a mask's own colour (TON-29, #181)
  • Point Color: the Color Mixer's Point Color mode (TON-29, #181)
  • Point Color, step 3: the eyedropper reads what Point Color receives, masks included (TON-29, #181)
  • Point Color, step 2: the develop kernel's stage, after the Color Mixer, with Visualize Range (TON-29, #181)
  • Point Color, step 1: swatches on the edit and on masks, in the sidecar format and in Copy Settings (TON-29, #181)
  • What's New and release notes for 0.2.5: generative fill, curves inside masks, mask management, zoom and pan in tools (RM-10, #156; MSK-20, #253; MSK-21, #254; UX-15, #258)
  • DebugSnapshot: mask-select=, overlay=off and inspector=end, for captures of a mask's panel (UX-14, #193)
  • User manual: a project skill for writing and building it, and the fact sheet Part 3 was written from
  • User manual: a build that typesets docs/manual with Chrome, and Part 3, Masking, as its sample
  • Blog: all four posts rewritten; the big-feature post retitled How I manage a large feature across AI agents
  • Tracker: Generative Remove done, its model published; README and comparison (RM-10, #156)
  • Generative Remove's model published as the ...
Read more

ViTMatte (base) for Redlamp, v1

Pre-release

Choose a tag to compare

@pdcgomes pdcgomes released this 06 Oct 15:33

ViTMatte (base) converted to Core ML for the edges of Redlamp's Subject, Background and People masks: stray hairs and fine edges. Redlamp downloads it from Settings › Models; nothing here needs downloading by hand.

Source: hustvl/vitmatte-base-composition-1k (ViTMatte, by J. Yao, X. Wang, S. Yang and B. Wang), weights licensed under the Apache License 2.0 (LICENSE.txt). They were trained on Composition-1k, made from Adobe's Deep Image Matting dataset (distributed by its authors on request, for research), and on Distinctions-646; those datasets' terms are their authors'.

Changes: converted by research/prototypes/masking/convert_vitmatte.py (fixed 1024 × 1024 tiles, with the backbone's position embeddings frozen for that size) and compress_vitmatte.py (8-bit weights in blocks of 32; within 0.002 of float16 on average over a portrait tile's unsure pixels).

Files: each asset is named by its path in the model's folder, with / as __. Sizes and SHA-256 hashes are in packages/RedlampMasking/Resources/Models/vitmatte-base.json.

Redlamp 0.2.4-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 05 Oct 12:46

Highlights:

  • Test Your Camera (Help menu): the camera bench checks how your camera's raw files open, and compares Redlamp's rendering of each with the JPEG your camera saved inside it, on your Mac. It sends only the measurements, which you see first, to the cameras page on redlamp.app.
  • Right-click a photo in the filmstrip to copy its settings or paste onto it without opening it. On a selected photo, the menu has the Copy, Paste and Sync items, acting on the selection.
  • Report This Problem in the Camera Bench opens a bug report about that camera and raw mode, with its problems written in, for you to read and send.

Changes since 0.2.3-prealpha:

  • Folders: the highlight follows the folder that opens, not only its name (UX-08, #99)
  • Filmstrip: a photo selected only briefly isn't left highlighted (UX-08, #99)
  • CI: a 60-minute timeout
  • CI: fetch the dust evaluation's shoots, cached with the raws (RM-02, #119)
  • Dust evaluation: needs the shoots it was measured on (RM-02, #119)
  • Process gate: the bitmap fixture as a PNG of the JPEG's pixels (ARC-03, #89)
  • Welcome tests: Reduce Motion is given, not read from the Mac (UX-09, #163)
  • Tracker, README and comparison: the camera bench relay is on, CAM-16 done (CAM-16, #176)
  • Release room: a release's highlights lead its notes, from docs/releases/.md; 0.2.4-prealpha's three
  • Blog: How I release Redlamp, without the paragraph on where the regression suite stands
  • Blog: How I release Redlamp, published, with the release room's Overview, Needs you, Problems and Checks (ARC-07, #212; ARC-08, #213)
  • README: the filmstrip's right-click menu (EDT-19, #191)
  • Workstream canvas: read the owner's Needs you marks first; releases belong to the release room
  • What's New: the second highlight, the filmstrip's right-click menu, for 0.2.4-prealpha (UX-14, #193)
  • Captures: the filmstrip kept up, a range selected and a photo's context menu open, for What's New (UX-14, #193)
  • Blog: How I release Redlamp: the cover isn't repeated as a figure, and the status output fits its block
  • Point Color with uniformity: design (TON-29, #181)
  • Blog: How I release Redlamp, a draft on the release room and the regression suite (ARC-07, #212; ARC-08, #213)
  • Tracker: where the colour controls sit, accepted, to settle before Point Color is built (TON-31, #190; TON-29, #181)
  • Blog: publish Testing cameras I don't own
  • Blog: Testing cameras I don't own, a draft on the camera bench (CAM-14 to CAM-17)
  • Tracker: TET-10 no longer waits for makers' permission (TET-19)
  • Tethered capture: makers' protocol licensing is a risk to verify before release (TET-19), not a blocker; DEC-30 deferred
  • Release room: a skill, a canvas and scripts/release-status.py for preparing, approving and shipping each release
  • End-to-end regression suite: design, ARC-07 and ARC-08, and the shortcut count (97 actions on 96 bindings)
  • Tracker: What's New merged, UX-14 done (UX-14, #193)
  • Workstream canvas: Needs you items take Done, Skip and Ask the agent from the owner
  • Tethered capture: DEC-29 says what 'no maker SDK' includes (Apple's frameworks, PTP, PTP/IP, the hot folder)
  • Tethered capture: PTP only, no maker SDKs (DEC-29 accepted, DEC-31 rejected, SKIP-16)
  • Welcome and What's New: the website's buttons, the main one lit in safelight with a breathing glow (UX-14, #193)
  • README and tracker: What's New, and what its request sends (UX-14, #193)
  • What's New: the first highlight, Test your camera, for 0.2.4-prealpha (UX-14, #193)
  • What's New: opens after an update, from Help › What's New in Redlamp, and Settings › About turns it off; captures (UX-14, #193)
  • Tracker: tethered capture, TET-01 to TET-18, DEC-29 to DEC-34, SKIP-14 and SKIP-15; the roadmap and comparison name them
  • Tethered capture findings: route, parity, coverage, sizes, risks and decisions
  • Tethered capture research: routes and licences, maker by maker
  • What's New window: the film's rise, the highlights and a page each, in the welcome's look (UX-14, #193)
  • What's New: the feed's types, its relay and cache, and when it opens by itself (UX-14, #193)
  • Tethered capture research: Lightroom Classic and the other tethering tools
  • Welcome window: its pages and window move into FilmPages.swift, to share with What's New (UX-14, #193)
  • Site: the What's New feed at /api/whats-new, from content/whats-new (UX-14, #193)
  • Tracker: What's New, the release's highlights after an update (UX-14)
  • Workstream canvas: a plan's first todo is its canvas, and every todo is a step in it
  • Tethered capture research: how it would fit Redlamp's architecture, workflow and tests
  • Tethered capture research: an ImageCaptureCore probe for standard PTP, and its notes
  • Tethered capture research: Capture One teardown and its camera list as JSON
  • Tracker, design and comparison: the filmstrip's context menu and Auto Sync's undo done (EDT-19, #191; EDT-20, #192)
  • Auto Sync: Undo, Redo and history clicks give the other photos their own edits back; one history session per run; its checkmark in the Photo menu (EDT-20, #192)
  • Settings selection: a deleted mask reaches the other photos; a pasted AI mask keeps the photo's own result when it asks the same (EDT-20, #192)
  • Filmstrip context menu: Copy, Paste and Sync on the photo right-clicked, or on its selection; another photo without opening it (EDT-19, #191)
  • Sync batches wait their turn: Paste and Paste from Previous reach the whole selection (EDT-20, #192)
  • Tracker: the filmstrip's context menu and Auto Sync's undo, accepted (EDT-19, EDT-20)
  • Cameras page: proofread the camera bench copy (CAM-15, #175)
  • Cameras page: Test your camera, a guide to the camera bench with screenshots (CAM-15, #175)
  • Camera Bench: what helps most on the start page, and capture arguments (CAM-15, #175)
  • Site: the AI disclosure says the agents use models from several providers, and what Pedro decides, tries and reviews
  • Skill: redlamp-site, a map of the website for agents, with a capture script
  • Site: an AI disclosure on the home page, saying how agents build Redlamp and where the app uses AI
  • Tracker: masks have only Hue and Saturation among the colour controls (TON-31, #190)
  • README: the pipeline is scene-referred up to the tone curve; tracker: where the colour controls sit (TON-31)
  • Build directories inside the checkout, now that ~/src is on the SSD
  • Tracker: the camera bench, its window and its evidence done; the relay waits on its repository (CAM-14, #174; CAM-15, #175; CAM-16, #176; CAM-17, #177)
  • Tracker: what the camera bench's run over raw.pixls.us found (CAM-20 to CAM-26)
  • Camera bench: the raw.pixls.us seed run is the first evidence, 742 camera modes (CAM-14, #174; CAM-17, #177)
  • Tracker and comparison: generative fill in progress, step 1 done (RM-10, #156)
  • Generative fill, step 1: MLX and FLUX.2 [klein]'s text encoder (RM-10, #156)
  • Camera bench: the decode's measurements move out of RawDecoder.decode, within SwiftLint's limits; README (CAM-14, #174; CAM-15, #175)
  • Camera bench evidence: scripts/camera-bench.py, and its tiers on the cameras page (CAM-17, #177)
  • Camera bench: a dark strip the camera's JPEG is dark along too passes (CAM-14, #174)
  • Camera bench: scripts/camera-bench-seed.py runs the bench over raw.pixls.us (CAM-14, #174)
  • Camera bench relay: POST /api/bench keeps reports in a private repository (CAM-16, #176)
  • Camera Bench window: Report This Problem opens Report a Bug or Send Feedback (CAM-15, #175; UX-10, #164)
  • Camera Bench window: --camera-bench opens it on a folder in development builds, for captures (CAM-15, #175)
  • Camera Bench window: Help › Test Your Camera… and the command palette (CAM-15, #175)
  • Camera bench: the black check reads the image inside its edge strips, zeros left out (CAM-14, #174)
  • Camera bench: redlamp camera-bench, and tests on the verified cameras and injected faults (CAM-14, #174)
  • Camera bench: the checks, the comparison with the camera's JPEG, and the report format (CAM-14, #174)
  • Camera bench: decode diagnostics, the file's identity and the decode's measurements (CAM-14, #174)

What's Changed

New Contributors

Full Changelog: v0.2.3-prealpha...v0.2.4-prealpha

FLUX.2 [klein] 4B, model version 1

Pre-release

Choose a tag to compare

FLUX.2 [klein] 4B: Generative Remove: fills areas too large for content-aware Remove, labelled as generated fill. Licence: Apache-2.0 (LICENSE.txt).

Redlamp 0.2.3-prealpha

Choose a tag to compare

@pdcgomes pdcgomes released this 04 Oct 20:54

Changes since 0.2.2-prealpha:

  • Site: the Product Hunt card under Homebrew, and the Open source section no longer cut off on phones
  • Tracker: RM-11 done in process 12; RM-12 tried, with what it found (RM-11, #171; RM-12, #172)
  • Process 12: a Remove spot's fill copies from none of the edit's other spots (RM-11, #171)
  • Tracker, README and comparison: Point Color with uniformity accepted for Phase 2, spatial uniformity deferred (TON-29, #181; TON-30, #182)
  • Tracker: colour uniformity for skin, proposed, with a note and a prototype (TON-29, TON-30)
  • Your Reports: each report's state beside it, as GitHub marks it (UX-10, #164)
  • Tracker: in-app bug reports and feedback done, the first report filed from the app (UX-10, #164)
  • Tracker: in-app feedback merged to main (UX-10, #164)
  • README: a link to the film under the hero
  • Site: the film, Introducing Redlamp, from YouTube in place of the 24-second explainer, loaded only when played, and Watch the film in the hero
  • Tracker, README and comparison: the camera bench (CAM-14 to CAM-19, DEC-28)
  • Tracker: content-aware fill quality and shadows (RM-11, RM-12, RM-13)
  • Tracker, README and rules: ARC-06, the performance page, and recording runs (ARC-06)
  • Performance harness: redlamp bench, perf-record.sh, and a history seeded from the README (ARC-06)
  • Hero shots: the Masks shot shows a Subject mask on the dancer in the red overlay, with its own Exposure and Clarity
  • README: the palette, its slider bar and a Subject mask in Screenshots, and capture-hero.sh in the development tasks
  • Site: the hero shows seven shots of the app, picked from thumbnails, and every screenshot opens in a lightbox with ← →, swipes and thumbnails
  • Hero shots in the Neutral theme: scripts/capture-hero.sh captures the editor, the palette, its slider bar, shortcuts, a Subject mask, CineStill 800T and before and after
  • Debug script: a palette= step drives the command palette, as the harness's --palette-steps does
  • Tracker: in-app feedback built and tested on its branch (UX-10, #164)
  • README and tracker rule: reporting bugs and feedback from the app, and what a report contains (UX-10, #164)
  • Cameras page: each verified camera's resolution, and a camera in two formats counted once (CAM-01, #14)
  • Tracker and README: one decomposition for detail, process 11 (TON-06, #26)
  • Feedback: Your Reports with each issue's state and a toolbar badge, an outbox, and saving or filing a report by hand (UX-10, #164)
  • Feedback relay on redlamp.app: reports filed as the Redlamp Feedback bot, with their attachments, and their status (UX-10, #164)
  • Tracker: CAM-12 without a Markdown escape, which its issue title would show (CAM-01, #14)
  • Feedback: Report a Bug or Send Feedback, from the toolbar, Help menu, palette and messages on screen (UX-10, #164)
  • Lightroom comparison: what Lightroom added through Classic 15.6, and an Undecided status
  • README, comparison and tracker: 25 verified cameras, and what doesn't open (CAM-01, #14)
  • CI and agent worktrees: the camera coverage set (CAM-01, #14)
  • Camera list: only the cameras Redlamp's LibRaw build reads
  • Camera coverage set: one CC0 sample per main maker and format (CAM-01, #14)
  • Detail ladder becomes process 11, after main's process 10 (retouch maps), with its references (TON-06, #26)
  • Phase One IIQ: the back's black levels and calibration, from LibRaw's raw2image (CAM-01, #14)
  • Hasselblad FFF files open as raws (CAM-01, #14)
  • Tracker and README: the edit embedded in exports (EDT-14, #76); the decomposition becomes process 11
  • Feedback: the report builder, from the editor's state to a redacted GitHub issue and diagnostics (UX-10, #164)
  • Detail ladder: large areas keep the noise-reduced source and take the ladder per drag (TON-06, #26)
  • Feedback: the session's activity, recorded as people work, with photos by alias (UX-10, #164)
  • Tracker: the welcome window merged, UX-09 done (UX-09, #163)
  • Feedback areas: the hierarchy reports are filed under, mirroring the UI (UX-10, #164)
  • Tracker: in-app bug reports and feedback, and three follow-ups (UX-10 to UX-13)
  • Welcome window: the film's opening, then what Redlamp is and Pedro's note on how to help (UX-09, #163)
  • Rules: keep the roadmap, the Lightroom comparison and the camera list in step
  • Site: Compare and Cameras pages, and a roadmap driven by the tracker
  • Roadmap and camera list checks: in step with the tracker, the decode tests and LibRaw
  • Lightroom comparison, and a finer roadmap whose items name their tracker rows
  • Tracker: RM-07's maps made from the retouched photo in process 10 (RM-07, #153)
  • Workstream canvas: tabs, Needs you items with what they unblock, and a timestamped log
  • Process 10: a retouched photo's maps are made from it, so a removed object leaves no trace (RM-07, #153)
  • Agent wave 4: process 10 is the detail decomposition's; fit-level caching decided (TON-06, #26)
  • Welcome window's film: the opening as it is, the logo rising to the top, and its score (UX-09, #163)
  • Process 10: the sidecar golden records new edits' version (TON-06, #26)
  • Tracker: a welcome window at first launch (UX-09)
  • Tracker: AUD-03 follow-up is 5785c16 (AUD-03, #160)
  • Tracker: AUD-03 follow-up c06c0dc (AUD-03, #160)
  • Detail ladder: drag GPU times at process 9 and 10 (TON-06, #26)
  • Process 10: the detail ladder renders new edits, with its references (TON-06, #26)
  • The app's exports embed the edit; the dialog says so (EDT-14, #76)
  • Texture at process 10: gain 1.6 from full-resolution crops; harness and prototype under research (TON-06, #26)
  • Detail stage: a command buffer at a released one's address starts its own encoding (AUD-03, #160)
  • Sidecar format: edits embedded in exports (EDT-14, #76)
  • Exports carry their edit recipe in XMP, with a reader (EDT-14, #76)
  • Tracker: AUD-04 progress, analysis results land on their own photo (AUD-04, #161)
  • CONC-03 review: Edge brush, Remove Dust, model downloads, messages (AUD-04, #161)
  • MaskInterleavingTests: say why the isDraining wait means the new export started (AUD-04, #161)
  • Apply analysis results only to the photo they were computed for (AUD-04, #161)
  • Detail ladder: preview weights for ARC-04 at 700, 1000 and 2000 px, and no limit on negative Texture (TON-06, #26)
  • Tracker: crop overlay choosers merged, LNS-06 done (LNS-06, #84)
  • Detail ladder: separator, apply pass, caches and tile halos at process 10 (TON-06, #26)
  • Crop tool: Choose Overlays to Cycle and Aspect Ratios beside Overlay (LNS-06, #84)
  • Crop overlay choices: the overlays O cycles and the ratios outlined (LNS-06, #84)
  • Detail ladder: kernel, band noise calibration and the process-10 path (TON-06, #26)
  • Agent wave 5: crop overlay choosers and the edit embedded in exports; EDT-14 accepted
  • Agent wave 4: the owner's decisions on the detail decomposition (TON-06, #26)
  • README and tracker: detail-stage memory bounded (AUD-03, #160)
  • Detail stage: scratch within budget on reuse, failed buffers forgotten (AUD-03, #160)
  • Detail stage: review fixes for residency, tiles and scratch (AUD-03, #160)
  • Detail stage: tile large work areas, scratch per slot (AUD-03, #160)
  • Detail stage: scratch and caches volatile between renders (AUD-03, #160)
  • README and tracker: bad-file checks, conflict metadata and interrupted saves landed (AUD-01, #151)
  • Sweep interrupted saves after a folder lists, in the background (AUD-01, #151)
  • Check every field of the decode service's reply, and keep readers' values finite (AUD-01, #151)
  • Clean up after interrupted saves and deletes (DATA-11, AUD-01, #151)
  • A mask shape with more than one key reads the same way every time and opens read-only (DATA-15, AUD-01, #151)
  • iCloud conflict merges keep every copy's rating, flag and label (DATA-13, AUD-01, #151)
  • JPEG XL raw: the directory is read only at LibRaw's size, checked before allocating (FUZZ-02, FUZZ-03, AUD-01, #151)
  • Profile gain table maps bound each count before multiplying (FUZZ-02, AUD-01, #151)
  • Gain maps checked where they're read and where the app receives them (FUZZ-01, FUZZ-02, AUD-01, #151)
  • README and tracker: the save queue, failed saves, quit and other writers landed (AUD-01, #151)
  • Detail decomposition: baseline and design for one ladder behind Texture, Clarity and Sharpening (TON-06, #26)
  • A quit that runs out of time still says which edits can't be saved (DATA-05, AUD-01, #151)
  • Reopening a photo whose save failed merges with another writer's save (DATA-02, DATA-07, AUD-01, #151)
  • Write no metadata when a merge leaves none (DATA-07, AUD-01, #151)
  • Keep each photo's failed saves until they go through, and say so on quit (DATA-02, DATA-05, AUD-01, #151)
  • Merge later saves into a won clash rather than finding it again (DATA-07, AUD-01, #151)
  • Merge another writer's metadata field by field (DATA-07, AUD-01, #151)
  • Report a photo's last save even when it's tracked again before the editor hears (DATA-09, AUD-01, #151)
  • Don't save over what another writer saved to the open photo (DATA-07, AUD-01, #151)
  • Save the last edits before quitting (DATA-05, AUD-01, #151)
  • Tell the user when edits can't be saved (DATA-02, AUD-01, #151)
  • Save edits in order through one save queue (DATA-09, AUD-01, #151)

Full Changelog: v0.2.2-prealpha...v0.2.3-prealpha