Skip to content
Redlamp
The Redlamp app icon: a glowing ruby safelight lens in a steel bezel

Alpha 0.3.4 · macOS 26

Lightroom's workflow.
Native to your Mac. Open source.

Redlamp is a RAW photo editor built from scratch in Swift and Metal for Apple Silicon. It keeps the panels, sliders and shortcuts you already know, renders every change within a frame, and never touches your originals.

statusalphalicenseMPL-2.0open sourceyespricefree, no subscriptionAIon-deviceruns onmacOS 26 · Apple Siliconbuilt withSwift · MetalsupportKo-fi
Editing a Sony α7R V raw file.

Why Redlamp

A red lamp is the darkroom safelight: the one light you can work by without fogging the paper.
You can see and shape your photo freely, and the original is never harmed.

Lightroom defined how millions of photographers edit, but it's a cross-platform application that doesn't feel at home on a Mac, and it's tied to a subscription and a cloud.

Redlamp keeps the workflow photographers already know, including the panel layout, slider names and ranges, and keyboard shortcuts, and rebuilds everything underneath as a native, GPU-first, open-source application.

Redlamp works on your folders. They stay the organisation: the library saves your edits, ratings, keywords and collections in small sidecar files right next to the photos, and keeps an index on your Mac only for speed. Albums from Apple Photos can join it too.

01

Instantly familiar

Lightroom's panels, slider names, ranges and shortcuts. Conventions copied, never Adobe's assets.

02

Masks from day one

Every edit is a layer with a mask, combined by add, subtract and intersect, with AI masks made on the device.

03

Native, neutral UI

macOS 26 design, Liquid Glass only on floating chrome, and neutral grey wherever you judge colour.

04

Under 16 ms

Rendering and UI are strictly separated. The UI never waits on the engine, the disk or the GPU.

05

Serious colour

Linear and scene-referred up to the tone curve, with camera profiles, LUTs and looks fitted by measurement.

06

Computational photography

Best-in-class denoise, one-click focus stacking, and AI only where it clearly wins, on the device.

07

Mac first

One platform-neutral engine. The Mac editor comes first; iPad and iPhone follow from the same engine.

08

Open source

MPL-2.0, compatible with the App Store, with algorithms implemented clean-room from papers.

Command palette

Find anything, then adjust it without leaving the keyboard.

⌘K opens one search for every action, every Develop slider and every picker. Choosing a slider or a picker doesn't close the palette: it turns into that control, over the photo.
  1. 1Search everything

    ⌘K

    Every action with its shortcut beside it, every slider, and pickers for white balance, treatment, Base Looks, recipes, Before / After, snapshots and history. ⌘F searches the sliders alone.

  2. 2Adjust from the keyboard

    ↵← →↑ ↓

    ↵ on a slider shrinks the palette to a slider bar over the photo. ← → step it, ⇧ ten times as far and ⌥ finer, ↑ ↓ move to the next slider, and a run of presses is one history step.

  3. 3Preview before you apply

    ↑ ↓↵Esc

    Moving through a picker previews each choice on the photo. ↵ applies the choice, and Esc goes back one level.

  4. 4Type the value

    ↵

    A name and a value, such as exposure 0.7 or temp 5600k, sets the slider straight from the search. In the slider bar, type a value or x+0.3.

A hint bar always shows the keys that work right now, and each opening shows a tip.

What works today

A complete Develop module, built for Apple Silicon.

The core RAW pipeline and the Develop workspace work today on macOS 26. Every screenshot here is the app itself, on CC0 sample raws.

Develop

Lightroom's workflow, at home on the Mac.

The Develop module's layout, panel order, slider names, ranges and defaults, and single-key shortcuts all carry over, so there's nothing to relearn. Everything underneath is rebuilt as a native, GPU-first app.

  • Basic, Tone Curve, Color Mixer, Color Grading, Detail and Effects
  • Lightroom Classic's shortcuts: 186 actions on 135 key bindings
  • Find an adjustment (⌘F) by name, or by the words people use
  • Before and after in three layouts, cached so edits never re-render it
Before and after on a Nikon Z 6 NEF: Exposure, Highlights, Shadows, Dehaze, Clarity and Vibrance.

Responsiveness

Every slider lands within a frame.

One fused Metal kernel applies every adjustment, frames arrive as IOSurfaces without a copy, and rendering never waits on the main thread. Drag a slider and the photo keeps up.

  • Interactive renders at Fit in 0.6 to 3 ms on Apple Silicon
  • A full 26 MP frame at 1:1 in about 13 ms
  • Latest-wins scheduling: a burst of slider events collapses to the newest
  • A full mip pyramid, so every zoom level samples the right resolution
A Fujifilm X-T3 X-Trans RAF at 1:1, rendered in about 13 ms.

Masking

Masks are part of the architecture, not an afterthought.

Every edit is a layer: its own adjustments plus a mask built from components that add, subtract and intersect, exactly as in Lightroom. Masks are evaluated per pixel inside the same GPU kernel, so 16 of them cost well under a millisecond.

  • Linear and radial gradients, a brush, and luminance and colour ranges
  • AI masks made on your Mac: Subject, Sky, People, Objects, Depth Range and Landscape
  • 15 local adjustments, including Texture, Clarity and Dehaze
  • A red mask overlay, and a full mask list
A linear gradient darkens and cools the sky; a feathered radial gradient warms the trees.

Colour

Serious colour science, on the light the camera recorded.

White balance, exposure and tone work on linear, scene-referred light, with a proper camera white-balance model, before a tone curve renders it for the screen. The Color Mixer works in OKLCh, so hues move the way your eye expects, and some looks are measured against cameras' own renderings.

  • Temperature and Tint with Robertson's method and the camera's matrix
  • 3-way and individual colour-grading wheels, with Blending and Balance
  • Parametric and point tone curves
  • Measured looks: Standard v3 sits within ΔE 3.26 of the camera's Provia
Split-toned shadows and highlights on a Canon EOS R6 CR3.

Detail

Noise reduction that knows your camera's noise.

Noise reduction scales to each photo's own noise, read from the DNG or measured from the raw data when it opens. Sharpening measures detail on a denoised copy, so grain passes through untouched instead of being sharpened.

  • Luminance and Color noise reduction with Lightroom's controls
  • Noise-aware sharpening, from unsharp mask towards deconvolution
  • Texture, Clarity and Dehaze, globally and inside masks
  • Highlight reconstruction rebuilds clipped photosites
Detail at 1:1 on a Canon EOS R6 CR3.

Base Looks and Recipes

Choose the look first, then start from a recipe.

A Base Look is where a photo starts: a camera profile, one of Redlamp's looks, a film stock built from its datasheet or a LUT you imported, all in the Base Looks panel with its own search. Recipes are presets in one open format, and a recipe that sets a Base Look shows it on its row. You can type in a Fujifilm-style camera recipe card exactly as it's written.

  • Every look, film stock and LUT in one searchable panel, with hover to preview
  • 77 bundled recipes in ten folders, Mood and Borders among them
  • Import .redrecipe, Lightroom presets, .cube, .3dl and HaldCLUT
  • Show in Finder, Move to Trash, and hide the folders you don't use
Chrome Street, built from a Fujifilm-style recipe card, on the measured Chrome Base Look.

Borders

A border goes around the photo, not over it.

The canvas grows to hold a border, so nothing of the photo is hidden. Borders have a panel of their own, the last in Develop, and a Borders folder in Recipes, apart from looks and moods, so a look or a mood never takes your border away.

  • An even margin, or a shape such as 4:5, 1:1, 9:16, A paper or your own
  • 35 mm film with its sprocket holes and edge print, medium format, instant cards and slide mounts
  • The histogram, clipping warnings, masks and the crop leave the border out
  • Export as edited, without the border, or with a border recipe on every photo
Nine of the Borders recipes on a Sony A7 III ARW, each drawn around the photo.

Our own RAW pipeline

Your originals are never touched.

LibRaw only unpacks the file. Black levels, white balance, demosaicing and colour all happen in Redlamp, on the GPU. Edits are saved to a small sidecar next to each photo, and the original stays exactly as you shot it.

  • Menon demosaic for Bayer sensors, and X-Trans support
  • Hot-pixel repair, banding correction and DNG gain maps
  • Sony ARW, Canon CR3, Nikon NEF, Fujifilm RAF, Apple ProRAW and Pixel DNG
  • Plus JPEG, HEIC, TIFF and PNG
iPhone 12 Pro ProRAW, with highlight recovery and blues tuned in the Color Mixer.

Focus stacking

Focus stacking in one click, and it still develops like a raw.

Redlamp spots a focus bracket in your folder and offers to merge it. Frames are stacked as demosaiced camera RGB before any edit, so every Develop slider still works on the result, and you can retouch from any frame.

  • Stacks are detected for you, with a Merge banner
  • Auto, Smooth and Detail strategies, and a depth map
  • 25 Canon CR3 frames merge in about 8 seconds
Open a raw file
70–250 ms
Open a raw file
Render at Fit while editing
0.6–3 ms
Render at Fit while editing
Render the whole photo at 1:1
13 ms
Render the whole photo at 1:1
Full-resolution export render
45 ms
Full-resolution export render

Measured on an Apple M1 Ultra with a Release build. Every measurement, and how it has changed

Everything that works today

From the README, last updated 31 October 2026.

RAW pipeline (our own, GPU-first)14 items
  • Decodes RAW files through LibRaw (unpacking only). Black levels, white balance, demosaicing, and color are all done by Redlamp on the GPU.
  • Bayer demosaic by directional filtering with a posteriori decision (Menon, Andriani and Calvagno, 2007), with a dual pass that takes plain green where the neighbours differ only by noise, Markesteijn's X-Trans demosaic (ported from LibRaw under its CDDL licence), and linear DNG support (for example iPhone ProRAW).
  • Hot pixels are repaired before demosaicing, judged against each photo's own noise level.
  • Row and column banding is measured in the sensor's masked (optical-black) margins and subtracted with the black level, only where the margins show more than their own noise.
  • DNG gain maps (OpcodeList2), such as phones' lens shading correction, are applied before demosaicing, and noise reduction scales with the noise they amplify.
  • Highlight reconstruction: channels are no longer clipped at 1 after white balance, and photosites that did clip are rebuilt from their bright unclipped neighbours, using the colour measured around the clipped area. Fully blown areas stay neutral. From process version 15, highlights clipped in one or two colours keep the colour of what's around them when Highlights or Exposure pull them below white, so a clipped sky stays blue instead of turning lilac, and areas clipped in every colour fade smoothly to neutral.
  • Each camera's brightness: for new edits (process version 16), a raw opens about as bright as its camera's own JPEG, from a table of 576 cameras Redlamp measures from the camera bench's CC0 files, never from Adobe's data; a camera it lacks gets its maker's value, and a calibration from a target takes its place. Held out, every maker's photos open within a tenth of a stop of their JPEGs in the median, where Redlamp's default ran up to 0.6 stops darker (CAM-29).
  • Tested on Sony ARW, Canon CR3, Nikon NEF, Fujifilm RAF (X-Trans), Apple ProRAW DNG and Google Pixel DNG, plus JPEG, HEIC, TIFF, and PNG.
  • The demosaiced image is cached as a full mip pyramid, so interactive renders sample the right resolution for the zoom level.
  • A single fused Metal kernel applies every per-pixel adjustment. Frames are delivered as IOSurfaces, so pixels are never copied between engine and UI.
  • Latest-wins render scheduling: a burst of slider events collapses to the newest one. Stills wait in two lanes, previews (look thumbnails) ahead of exports, and yield to the canvas between tiles, so an export never holds up a frame by more than a tile; a cancelled still stops at its next tile, and exports rest between tiles when the Mac runs hot.
  • Rendering stays off the main thread while you drag a slider. Frames go straight to the canvas, which a dedicated display-link thread presents, and each view observes only the values it shows.
  • Both side panels are AppKit: the histogram, tool strip and every Develop and Masking panel on the right, and the Navigator, Folders, Base Looks, Recipes, Snapshots and History on the left, built from the same panel component. The right column's panels match their SwiftUI originals pixel for pixel, and a component harness is used to build and review them (see Component harness).
  • Temperature and tint use a proper camera white-balance model (Robertson's method with the camera's color matrix). As Shot, Auto, and the illuminant presets all work.
Develop adjustments that render11 items
  • White balance: Temp and Tint, the presets, Auto, and the eyedropper.
  • Basic: Exposure, Contrast, Highlights, Shadows, Whites, Blacks, Vibrance, and Saturation, plus the Auto button.
  • Treatment (Color or B&W) and Base Looks (Lightroom's profiles) with an Amount slider (0–200) and a browser that renders every look on the photo. There are six built-in looks (Redlamp Color, Neutral, Vivid, Landscape, Portrait and Monochrome) and 15 film-style looks built on 3D look tables: slide, chrome, negative, cinema, bleach and black and white through color filters. Four of them are measured from cameras' own renderings by the look profiler (see Recipes and looks). The Base Look menu lists these, Redlamp Reproduction and a photo's own camera look, and for a raw, the photographer's own Adobe camera profiles for its camera, read where Lightroom Classic or Camera Raw installs them or from files they choose and used on that Mac only (TON-51, TON-52); it shows a film look or an imported LUT first only while it's the photo's look (DEC-74). Every look, film stock and LUT is listed in the Base Looks panel, before Recipes in the left column, in folders (Favorites, In This Photo, the photo's camera profiles, Redlamp, Film Styles, Film Stocks, Fujifilm LUTs, Imported and Reproduction) and with its own search, which reads names, summaries, makers and kinds: hover a look to preview it, click it to apply it, and the photo's look is highlighted in its folder. Its + menu imports a LUT, chooses camera profiles or opens Fujifilm's LUT page. Right-click an imported look for Show in Finder and Move to Trash, or an installed look no recipe uses for Remove from Base Looks; a look moved to the Trash or removed is listed nowhere afterwards, and the photos that use it keep rendering with it. Right-click a built-in folder (Adobe Raw, Camera Matching, Creative, Redlamp, Film Styles, Film Stocks, Firmware Model or Reproduction) to hide it from the panel, its search and ⌘K, as in Hide “Film Stocks”; the panel header's right-click menu shows it again (UX-55). Wherever a look is chosen, a film stock brings its own grain, halation and bloom, and B&W for a monochrome stock, and leaves every other setting as it was; a look that isn't a film stock, chosen in place of one, takes the film's grain, halation and bloom away, and a colour look chosen in place of a monochrome one sets Color (UX-54).
  • Tone Curve: a parametric curve with split points, and a point curve with presets, for all three channels together or for red, green and blue on their own.
  • Color Mixer: HSL (Hue, Saturation, Luminance, and All) and a per-color mode, working in OKLCh.
  • Color Grading: 3-way and individual wheels, Blending, and Balance. It also tints B&W images for split-toning.
  • Effects: post-crop vignette (amount, midpoint, roundness, feather, and Highlights to keep bright areas bright under a darkening vignette) and zoom-stable film grain.
  • Noise reduction (Detail panel): Luminance with Detail and Contrast, and Color with Detail and Smoothness. It is scaled to each photo's own noise: the DNG NoiseProfile tag, else its camera's calibrated profile at its ISO, else measured from the raw data when the file opens (a raw far cleaner than its camera's profile has had noise reduction in camera, so the measurement wins). Luminance keeps fine texture: wavelet shrinkage judges each detail by its neighbourhood, and at 1:1 and in exports a non-local-means pass guided by that result brings back texture where the photo repeats it. It runs as a cached stage in front of the fused kernel, so other sliders stay as fast as before, and exports render in tiles. For new edits (process version 16), values below black are kept from the raw data until after it, so the noise in the deepest shadows averages to their true level: at very high ISO they no longer lift and turn magenta (DN-12).
  • Sharpening (Detail panel): Amount, Radius, Detail and Masking, in the same cached stage after noise reduction. It is noise-aware: detail is measured on a denoised copy of the luminance and applied to the untouched image, so the photo's noise and grain pass through as they were instead of being sharpened. Detail moves from a halo-limited unsharp mask towards Richardson–Lucy deconvolution of the Radius's blur, and holds back halos on strong edges; Masking keeps flat areas untouched. It boosts luminance detail in stops, so it doesn't depend on exposure and leaves colors alone.
  • Texture and Clarity (global): gains on medium (about 2–8 px) and larger (about 8–64 px) luminance detail, taken from the image pyramid in the same cached stage, so tiles and zoom levels agree. Negative values soften. For new edits (process version 9) Clarity is edge-aware: a strong edge isn't its detail, so it puts no bright and dark bands along a skyline or around a tree. From process 11, Texture, Clarity and sharpening read one decomposition of the noise-reduced photo: Texture keeps its strength on texture but no longer outlines strong edges, adds less noise, and matches a downscaled export at every preview size, and dragging Texture, Clarity, Amount, Detail or Masking takes a fraction of a millisecond at 1:1.
  • Dehaze (global and in masks): the dark channel prior (He, Sun and Tang, 2009) with the airlight and a haze map measured when the photo opens; negative values add a veil. For new edits (process version 8) the haze map follows the photo's edges, so the sky beside a tree or a ridge has no pale glow. From process version 18, negative values add haze where the haze map finds it, toward a slightly cool veil, so the distance and bright, unsaturated areas fog over while nearby dark, saturated things keep their contrast (TON-55).
Masking (Lightroom's model)12 items
  • Each mask is a layer: its own adjustments plus a mask built from components. Components combine with Add, Subtract, and Intersect, and each can be inverted, as can the whole mask (Invert, as Lightroom's).
  • Linear and radial gradient components. Draw them on the photo. Drag the handles to move, resize, and rotate; radial gradients also have a Feather control. Pins select the other masks.
  • Brush (K): A and B brushes and Erase (hold Option), with Size, Feather, Flow, Density and Auto Mask, and pen pressure. Strokes are kept as vectors in the edit and painted on the GPU in mask space (up to 4096 px), redrawing only the stroke being painted. [ and ] or ⌘-scroll change the size, with Shift the feather; the brush's ring shows its size as it changes, also from the panel's sliders, and Space-drag moves the photo while you paint. In every tool the wheel and pinch zoom.
  • Luminance Range (⇧Q) and Color Range (⇧J): sample with the eyedropper, then shape the range with four handles (Show Luminance Map) or Refine up to five color samples. They select on the photo with its global edit, so the selection follows white balance and exposure.
  • AI masks: Subject, Background and People (each person, or parts: face skin, eyebrows, eye sclera, iris, lips, teeth, and hair from iPhone mattes), with Apple Vision's built-in models and nothing to download. Objects: hover to preview, then click, drag a box around the thing or brush over it to select it; click or brush again to add, with Option to take away (Segment Anything 2.1, an 80 MB download on first use). Depth Range: from a photo's own depth map (iPhone), or estimated by Depth Anything 3 (or V2 Small). Landscape: a picker lists the regions found (water, vegetation, mountains, architecture, natural and artificial ground, and snow), each with its share of the photo, to mask together or one each, with adaptive presets such as Brighten Snow: SAM 3, converted to Core ML (a 988 MB download, under Meta's SAM License, which comes with it; Snow's prompt, added later, is in the app with a copy of the licence, so it needs no new download); the same model adds hair on any photo, facial hair, body skin and clothes to People. Sky is Segment Anything prompted inside a classical sky estimate, combined with Depth Anything 3 (converted to Core ML, a 336 MB download); the first time Sky is chosen without them, Redlamp offers both (416 MB together), and without them Sky is the classical estimate alone, which misses sky that objects cut off from the top of the frame; then every edge pixel is solved at full size against the sky's own colour, so twigs, leaf gaps and wires keep their own coverage. Subject, Background, People and Objects edges are solved per pixel too (closed-form matting), which brings back stray hairs and beard curls (see the bake-off); with ViTMatte downloaded (Settings › Models, 111 MB), Subject, Background and People also gain the stray strands it finds beyond them.
  • AI masks are computed from the photo without its edit and kept as bitmaps in the edit, so they never move when you edit and render the same everywhere. Update AI Masks recomputes them with today's models, pasted settings recompute them for the new photo, Refine Edges solves their edges again from the photo, as masks of their kind are made now (bringing back strands an older mask missed), the Refine Edge Brush solves an edge again, hair by hair, wherever you paint over it (kept with the mask, so Update AI Masks applies it again), and Feather and Edge soften an AI mask's edge or move it out or in. From process version 13, coarse AI masks (iPhone mattes, face parts) are refined again at the size the photo is drawn at, so they stay sharp at full size. From process version 14, a Sky mask's edit reaches only the sky's share of each pixel along its edge, so twigs and leaves keep their own colour and brightness when the sky is darkened or warmed, and Feather and Edge shape an AI mask's body while keeping its stray hairs.
  • Mask presets: Blue Sky, Brighten Subject, Darken Background, Smooth Skin, Even Skin Tone, Whiten Teeth, Pop Eyes, Brighten Snow and Enhance Vegetation compute their masks for each photo, on one photo or every selected photo at once; save your own from any mask.
  • Beyond Lightroom: a mask's Detail keeps only its textured (or only its flat) areas, and any mask can be reused as a component of another (Existing Mask in Add, Subtract and Intersect).
  • Local adjustments: Temp, Tint, Exposure, Contrast, Highlights, Shadows, Whites, Blacks, Texture, Clarity, Dehaze, Hue, Saturation, Sharpness, Noise, a Color swatch that tints what the mask covers, and Curves (RGB, red, green and blue), plus the mask's Amount (0–200%). Effects, as in Lightroom's Effect menu, set a mask's sliders and Curves in one choice: Dodge, Burn, Warm, Cool, Add Detail, Reduce Haze, Smooth Skin, Whiten Teeth and Pop Eyes, with values of Redlamp's own, and your own saved from any mask.
  • Mask management: one picker for every mask, also behind a mask's Add, Subtract and Intersect, which asks for a model's download in place. The list shows a thumbnail of each mask's coverage, and the photo shows the overlay while the pointer is over a mask, a component or a mask's pin. Each mask and each component has a menu (show and hide, rename, duplicate, "duplicate and invert", invert, reset, delete), masks and components drag to reorder, and Option-click on an eye shows one mask alone. People opens a picker of who is in the photo, as crops to tick, with the parts to mask, and a mask for each person if you like. A mask overlay (O) in Lightroom's modes (Color Overlay, on B&W, Image on Black or White, B&W, Image on B&W), colors and opacity.
  • Fast by design: gradients and ranges are evaluated per pixel inside the same fused GPU kernel, and brush and AI masks are read from GPU textures. Up to 16 masks cost well under a millisecond extra at Fit.
  • Models on demand: Settings › Models lists the downloadable models with their size, and removes them. Every model runs on the Mac; photos are never uploaded. Each shows its licence, which comes with the download. Models still under licence review are offered only when you turn on evaluation models.
Focus stacking (a separate Stack workspace)6 items
  • Stacks are found for you: runs of frames with the same camera settings a moment apart, whose sharp region moves from frame to frame, get a "Focus stack detected: N frames" banner with Merge, and the filmstrip slides up for a few seconds to show it. Bursts, time-lapses and pans aren't offered. Photo › Merge to Focus Stack… and Edit Focus Stack…, also in the command palette, open the Stack workspace from the menus.
  • The result develops like a raw. Frames are stacked as demosaiced camera RGB before any edit, so every Develop slider, white balance included, works on it. The stack is a small .redlampstack document beside the frames; the merged pixels are cached and rebuilt when needed.
  • Alignment follows focus breathing, rotation and shift, brightness is matched frame to frame, and a depth map records which frame is sharpest where.
  • Auto, Smooth and Detail: Auto takes tone and color from the depth map and fine detail from the sharpest frames near it; Smooth blends between frames for clean surfaces; Detail keeps the sharpest detail from anywhere, for hair and bristles.
  • The Stack workspace: leave frames out, switch methods (each merge is cached), view the depth map, and retouch by painting the frame under the cursor, a chosen frame or another method's result over the merge.
  • One frame is in memory at a time, and redlamp stack does the same from the command line.
Workspace23 items
  • A Lightroom-style layout. On the left: Navigator, Folders, Base Looks, Recipes, Snapshots, and History, as collapsible panels like the Develop panels. In the center: the photo, with the filmstrip below. The filmstrip slides in when the pointer reaches the bottom of the window and away once it leaves; pinned, with the pin at the right end of its line of text, or with Hide Automatically turned off (View › Filmstrip, the filmstrip's own right-click menu, or Settings › Appearance), it stays up, and the photo is fitted above it. F6 hides it altogether. On the right: histogram, tool strip, and the Develop panels in Lightroom's order, each a card whose header shows a grey Edited chip while the panel has edits, with how many kinds of setting it has changed, as Copy Settings lists them ("Edited · 2"); hovering it lists them.
  • Folders, as in Lightroom Classic: add folders with +, ⌘O or by dropping them on the window, and they're remembered (by bookmark, so a folder that's renamed or moved is followed). Each shows as a tree with the number of photos in every folder; click one to show it and everything beneath it in the filmstrip, its number counting its subfolders' photos too, as in Lightroom Classic, or turn off Show Photos in Subfolders (View menu or the folder's context menu) to see only its own photos. Nothing on disk is moved or changed. The filmstrip follows the disk by itself: photos copied in, deleted, renamed or rewritten appear, leave or update in place, a photo still being copied waits until it's complete, and the selection moves to the next photo when its own is deleted. A folder on a disk that isn't connected is dimmed with a question mark, Locate… points it at where it went, and it comes back when the disk does. Each folder reopens on the photo you last had in it.
  • Built to stay fast with any number of photos: a folder lists without reading a single sidecar (badges follow from light reads, visible photos first); thumbnails decode in parallel on every core at the cell's size, from the smallest preview the raw file embeds that's big enough (found by LibRaw; 3 to 11 times faster than ImageIO's full-size one for Sony, Canon and Nikon files), are kept within a 128 MB budget in memory and cached on disk in one file per folder (at most 1 GB), and are warmed in the background while you're not waiting; the filmstrip is AppKit with reused cells, so 50,000 photos cost what a screenful does. Focus stacks are looked for one folder at a time in the background, and remembered. See Measured performance and the design.
  • Sliders: click to jump, drag to adjust, Shift-drag for fine control, double-click to reset, and click the value to type one in or drag it to scrub (Shift for fine control). Option-dragging a tone slider shows clipping, as in Lightroom. The Color Grading wheels' hue, saturation and luminance, the tone curve's splits and its selected point's Input and Output, Base Look Amount, and in the Masks panel the overlay's Opacity, the Refine Edge brush's Size and the four stops of a luminance or depth range have values too.
  • Panels: double-click a panel or group title to reset it, and Option-click a header for Solo Mode. The left column's panels collapse the same way when you click their headers, and Option-click shows only one.
  • Panel switches, as in Lightroom: the eye at the right of every Develop panel's header but Basic's turns the panel's settings off and on, each a step in History. A panel that's off keeps its settings, dimmed, and does nothing to the photo, so Detail off is no sharpening and no noise reduction, and Lens Corrections off leaves out the lens correction the file carries. Changing one of its settings, or resetting it, turns it back on. The switches are saved with the edit and travel with the panel's settings when they're copied, pasted or synced.
  • Histogram: clipping indicators, and you can drag across it to adjust Blacks, Shadows, Exposure, Highlights, or Whites. While the pointer is over the photo, the line under it shows the R, G and B percentages there, or its L*a*b* values (relative to D50) with Show L*a*b* Values in the histogram's right-click menu, the View menu or ⌘K, read from the render without the overlays.
  • Recipes (Lightroom's presets), after Base Looks in the left column: 77 bundled recipes in ten folders, 39 of them in eight groups, including camera-style ones built from Fujifilm-style recipe cards, 20 in Mood and 18 in Borders (see Borders). Hover to preview, click to apply, then adjust the recipe's Amount (0–200) at the top of the panel, drawn as the Develop panels' sliders are; a recipe's right-click menu has Apply Base Look Only, which previews its look alone while highlighted. Your own and installed recipes also have Show in Finder, which selects the recipe's file, and Move to Trash in place of Delete Recipe: every version of the recipe goes to the Trash, where it can be recovered, and photos edited with it keep their settings. A bundled folder hides from its right-click menu, as in Hide “Night”, and the panel header's right-click menu shows it again; Favorites, My Recipes, your own lists and Installed can't be hidden. A recipe that sets a Base Look still sets it, as a Lightroom preset that includes a profile does, and shows it on its row (the look's icon, such as a film's, or the Base Looks symbol) and names it in its tooltip. You can search recipes (Lightroom's words work; looks are searched in Base Looks), mark favorites, save the current edit as a recipe with a settings checklist (⇧⌘N), and import or export .redrecipe files. .cube, .3dl and HaldCLUT files import into Base Looks, from its + menu or dropped on either panel (LUTs made for camera log footage too, with their input space chosen on import, there and in the Recipe Lab). Lightroom develop presets (.xmp) import too, one, several or a folder at a time, by the menu or by dropping them on the panel, with a report of what came across exactly, approximately or not at all (what maps). Snapshots are also available.
  • History with full undo and redo. Each step shows an icon for what it did, and the value before and after ("Exposure 0.00 → +0.50"). Every time you open a photo a new session starts. The earlier sessions are kept with the photo (the last 20) and listed under the current one, and choosing one of their steps brings that edit back as a new step.
  • Camera-recipe controls in the Effects panel: Dynamic Range, Color Chrome, Chrome FX Blue, and red and blue white-balance shift.
  • Viewing: Fit, Fill, 1:1, and 2:1 zoom, click to zoom, pan, pinch, and a clipping overlay. Zooming out goes past Fit to a quarter of it, to see the photo as from a distance or on a small screen; the wheel and a pinch hold at Fit for a few steps first, so it's easy to stop there. Sensor clipping (⌥J) marks the photosites the camera clipped, in the colour of each clipped channel (black where all three did), whatever the edit has done since; the colour-assessment view (⇧L) puts the photo on middle grey inside a white frame (ISO 12646). Before/After (\) in three layouts, full frame, side by side and a diagonal split, cycled with Y and ⇧Y; the original is rendered once and cached, so edits don't re-render it.
  • Themes: Neutral greys by default, so nothing tints your judgment of color, plus a Redlamp theme and 20 dark and light families with a tint control, from the toolbar's Theme button or Settings (⌘,), which also has an About tab. The command palette follows the app's theme or takes one of its own.
  • Lightroom Classic's keyboard shortcuts: 186 actions on 135 key bindings, from one registry that also drives the menus and an in-app ⌘/ reference (see Keyboard shortcuts). Settings › Shortcuts puts any action on the key you choose, with keymaps for people coming from Photo Mechanic and Bridge.
  • Command palette (⌘K): every action, with its shortcut shown beside it, every Develop slider, and pickers for white balance, treatment, Base Looks, recipes, Before / After, snapshots and history, all from the keyboard. ↵ on a slider shrinks the palette to a slider bar over the photo: ← → step it (⇧ ×10, ⌥ finer), ↑ ↓ move to the next slider, and you can type a value or x+0.3. A run of presses is one history step. Typing a name and a value, such as exposure 0.7 or temp 5600k, sets it straight from the search. Moving through a picker previews each choice on the photo; Esc goes back one level. A hint bar always shows the keys that work right now, and each opening shows a tip. ⌘F opens it for sliders only, searching by name or the words people use (Lightroom's older names too).
  • Sliders by hand: ⌘-scroll over any slider adjusts it (Shift coarse, Option fine), and value fields accept arithmetic such as x+10.
  • Culling while you develop: star ratings, pick/reject flags and color labels, shown on the filmstrip. There's also an Info overlay (I), Lights Out (L), full-screen preview (F), and Paste from Previous (⌥⌘V and the Previous button).
  • Copy, paste and sync settings, as Lightroom does: Copy Settings… (⇧⌘C) opens a checklist of every setting and mask, remembered for next time; Paste (⇧⌘V) applies what was ticked, and recomputes the pasted AI masks for the photo. ⌘- and ⇧-click select several photos in the filmstrip: Sync… (⇧⌘S) and Paste reach all of them in the background, with Undo, and Auto Sync (⌥⇧⌘A) repeats every change. 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 same Copy, Paste and Sync items.
  • Non-destructive edits, saved automatically to a sidecar file next to each photo (IMG_1234.ARW.redlamp).
  • Export dialog (⇧⌘E): JPEG, HEIC, AVIF and JPEG XL (lossy, with quality and an optional file size limit) or PNG, TIFF and JPEG XL (lossless, with TIFF compression), 8, 10 or 16 bits, sRGB or Display P3. Resize by long edge, short edge, width and height, megapixels or percentage, keep all metadata, all but the location, or none (the first two also embed the edit recipe in the file's XMP, format), and choose the folder and file name. Built-in and saved presets, and Export with Previous (⌥⇧⌘E) repeats the last export without the dialog.
  • Report a Bug or Send Feedback (the toolbar's Feedback button, the Help menu or the command palette, and Report… beside an error): files a GitHub issue for you, with no GitHub account needed, under an area picked from a list that mirrors the app (such as Masking › Objects), suggested from what you were doing. The report carries what you did in the last minutes, the open photo's camera and edit, and the Mac's details, and you see all of it before it's sent (what it contains). Help › Your Reports lists what you've sent, with each issue's state and replies.
  • Test Your Camera (Help menu or the command palette): the camera bench checks how your camera's raw files decode and compares Redlamp's rendering of each with the JPEG the camera saved inside it, on your Mac. It groups photos by camera and raw mode, picks a few of each, shows them side by side and asks one question, then sends only the measurements, which you see first, to add to the cameras page (how it works). redlamp camera-bench runs the same checks from the command line.
  • What's New: after an update, the release's highlights open once, in the welcome window's look: the logo rises, the highlights are listed, and each has a page with a screenshot and a button that opens it, such as Test Your Camera…. Help › What's New in Redlamp shows the recent ones again. They come from redlamp.app, so they can be written after a release ships; when they can't be had, nothing opens and the next launch tries again.
  • A headless redlamp command-line tool for rendering and export. Exports smaller than the photo are developed at full resolution and downscaled last, so sharpening, noise reduction and texture look the same at every size.
Library (Lightroom Classic's model)18 items
  • Library and Develop in one window: G, E, C and N show the grid, the loupe, Compare and Survey, D opens Develop (R, Q and ⇧W open it on Crop, Healing and Masking), ⌥⌘1 and ⌥⌘2 switch between the two and ⌥⌘↑ returns to the one before, as do the toolbar's picker, the View menu and ⌘K. The selection, source, filter, sort and filmstrip carry across, and one Undo covers both: ⌘Z takes back the newest change made in either.
  • An index built for a million photos: every photo under the folders you add is indexed on your Mac, one read per file, and kept current as the disks change; its thumbnails and previews are kept, so slow, network and disconnected drives can still be browsed, and the whole index can be rebuilt from the photos and their sidecars. Edits and metadata stay beside each photo, or in Redlamp on this Mac for folders it can't write to, moved between the two with Move Edits and Metadata… in a folder's menu. At a million photos a search's first page and count take about 2 ms, and a relaunch is searchable within half a second (measurements).
  • Grid and loupe: thumbnails from 80 to 400 points (= and -, or the slider) in three cell styles (J), selected by click, ⌘-click, ⇧-click or a rubber band; Return, Space or a double-click opens the loupe, where Z switches between Fit and 1:1. Each source keeps its own size, style, place and selection. Thumbnails and previews show your edit: the embedded preview at once, then Redlamp's render of the edit, made ahead in the background and made again when the edit changes.
  • Compare and Survey: Compare (C) sets the active photo beside the next, ← and → changing the candidate, ↑ making it the select and ↓ swapping the two, with zoom and pan synced until a lock unlinks them; Survey (N) lays out the selection as large as it fits, and a photo leaves it by its ×. Held arrow keys move through the grid, the loupe and Develop without a blank frame, the next photos read ahead in the direction of travel.
  • Judging tools in the loupe and Compare, since a raw's embedded preview hides what the sensor clipped: sensor clipping (⌥J), a raw histogram of what each channel clipped, focus peaking, the AF point where the camera records one (Canon, Nikon Z, Sony, Fujifilm, Panasonic and iPhone files), and a loupe that magnifies the photo under the pointer.
  • Culling whole selections: ratings, flags, colour labels (purple too), custom labels named and coloured as you like (Custom Labels…) and marks (B, which adds to the target collection instead when one is set, as Lightroom Classic's Quick Collection works) reach every selected photo at once, by key, by clicking a cell's stars, flag or label, or from the menus and ⌘K, with Undo and Redo, and Auto Advance (on in the loupe, off in the grid).
  • Moments, stacks and soft frames: Group By moment (from pauses in shooting, made tighter or looser), day, folder, camera, lens or orientation, each group with its count and picks, opened and closed, ⌥← and ⌥→ between groups, and Only Moments without a Pick. Raw and JPEG pairs and bursts are stacked for you and focus stacks suggested; stacks are also made by hand (⌘G), opened and closed (S), split and reordered, the order kept in each photo's sidecar. The filter bar proposes the sharpest frame of each burst or moment at the camera's focus point, never applied to a frame you've decided; its threshold is still to be tuned on real shoots.
  • Search and the filter bar: a search field above the grid takes the query's terms as tokens, completed as you type from keywords, cameras, lenses, folders, labels and collections, with Search All Photographs beside it; \ opens the Attribute row (flags, stars, labels, edited, raw, JPEG or HEIC, originals and versions, missing and offline) and up to eight Metadata columns with counts, each narrowing the next, and ⌘L turns filters off and on. Seven sorts, saved filters, a filter kept with each source, and one query language for the filter bar, smart collections, ⌘K and redlamp library. Text is found whatever its accents, so sao finds São Paulo, and a search that finds nothing names the term in its way, with a button that takes it out, or a name a typo away ("Did you mean Lisbon?"). ⌘K finds the library's folders, collections, keywords, cameras, lenses, places and photos by name.
  • Keywords: the Keywording and Keyword List panels on the selection, with completion, counts, keyword sets on ⌥1 to ⌥9, the Keyword Painter (⌥⌘K) and keywords dragged onto photos; synonyms, export flags, merges in one step, and Lightroom Classic's keyword file both ways (Import Keywords… and Export Keywords…). Each photo's keywords are kept in its sidecar by their full path.
  • Metadata: the Metadata panel sets title, caption, creator, copyright and location on many photos at once, with presets that replace, append or prefix, code replacements and Edit Capture Time… with the camera's time zone, each with Undo and carried into exports. Other apps' ratings, labels, keywords and captions are read from their XMP and IPTC, and their later changes merged in; standard .xmp sidecars are written beside photos only once Write .xmp sidecars for other apps is on in Settings › Library, as Lightroom's Automatically write changes into XMP does, and originals are never changed.
  • Collections and smart collections, in the left panel with All Photographs, Previous Import, Marked and Rejected: collections and sets (⌘N), photos dragged onto them, a target collection, and smart collections from a rule editor that is the query's text. Each photo's collections are saved in its sidecar, so moving photos never breaks them.
  • Versions, as Lightroom Classic's virtual copies: each version of a photo (Create Version, ⌘', in Develop or a filmstrip photo's menu) is a photo of its own in the library, with its own rating, flag, label, keywords and collections, shown beside its photo in an open stack, found by the filter bar's Originals and Versions, and compared, synced and exported as itself.
  • Files on disk: Rename Photos… (F2) with naming templates, Lightroom Classic's nine among the presets, and a live preview of every new name; Move to Folder…, Copy to Folder…, photos dragged onto a folder (⌥ to copy) and new folders, each with Undo and Stop partway, a raw's JPEG, sidecar and other apps' .xmp going with it. Move to Trash (⌫ or ⌘⌫) moves the selection to the Trash with Undo, and Recently Trashed puts photos back after Undo is gone.
  • Library Health: exact duplicates (confirmed by a full hash), damaged and misnamed files, and a rule for raw and JPEG pairs, each listed only while it has findings and moved to the Trash only from a list you confirm, with Undo and Keep Anyway; a photo whose file went missing is found again with Locate… or removed from the library.
  • Import from cards and cameras (Import Photos…, ⇧⌘I, or by itself when a card is inserted, which Settings › Import can turn off): a card's photos browsed and culled from their previews before anything is copied, those already imported left out, folder and name templates, metadata presets, a backup copy, and every copy read back and matched by size and SHA-256 before the card is said to be safe to erase.
  • Coming from Lightroom Classic (Import from Lightroom Classic…): a catalog is read without ever being written, for its folders, ratings, picks, labels, keywords, titles, captions, collections and the smart collections whose rules map, with each photo's develop settings and snapshots converted once and its virtual copies brought as versions, a report before anything is written and Undo Import, in a window that shows each stage with its rate and time left. Masks, spots, Upright, panel switches, turns made in Lightroom and the tone of its 2003 and 2010 process versions aren't brought across yet.
  • Albums from Apple Photos (Add Albums from Apple Photos…): Keep in Photos, the default, copies nothing. The albums appear in an Apple Photos section beside Folders, shown from Photos' own thumbnails and previews, a photo's original downloaded from iCloud only when you view it at full size, edit it or export it (into a cache of 20 GB to start with), Photos' changes followed and its favourites read as picks; Copy to Folder… copies photos kept in Photos into a folder of your own, with their Redlamp edits, metadata and history. Copy into a Folder copies the albums as an import instead, each album a collection, and offers the new photos those albums gain. Redlamp only reads your Photos library; Known limitations says what it can't bring across.
  • redlamp library on the command line indexes, searches and counts a library, renames, moves, copies and trashes its photos, finds stacks and duplicates, checks its health and reads a Lightroom Classic catalog, in text or JSON.

Film simulations

Eleven film stocks, simulated from their datasheets.

Most film presets are tuned by eye. Redlamp's are physical simulations, built from each manufacturer's own characteristic curves, spectral sensitivities and dye spectra, with the film's grain, halation and bloom.
  1. 1Each colour becomes a spectrum.
  2. 2The film's three layers record it through their own sensitivities.
  3. 3Characteristic curves turn exposure into dye, with interlayer effects and colour masking.
  4. 4A negative is printed or scanned the way a lab would; a slide is lit on a light box.
  5. 5The result is seen through the colour-matching functions of human vision.
The Film Looks window: the open photo in every film, with Portra 400 applied
Window ▸ Film Looks shows the open photo in every film. Hover to preview; click to apply with its grain, halation and bloom.

Colour negative, ISO 400

Colour negative, ISO 100

Colour negative, ISO 200

Colour negative, ISO 400

Tungsten colour negative, ISO 800

Cinema negative on print film, ISO 500

Slide film, ISO 100

Slide film, ISO 50

Black and white negative, ISO 400

Black and white negative, ISO 400

Black and white print

How faithful are they?

  • The colour comes from the datasheets: each stock's own curves, sensitivities and dyes, keeping their published order of contrast and grain.
  • A lab's scan or print timing shapes the rest. The Frontier-like and Noritsu-like scanner profiles are characterised from how labs describe them, not measured.
  • Some data is borrowed or uncertain: Portra, Ektar, Gold and Superia borrow Vision3's dye curves, and the 2383 sensitivity curve is the least certain trace.
  • Grain doesn't yet vary with density, and is sized in pixels rather than relative to the frame.
Every film look on the same photo, with the original first
Every look on one photo, the original first.

Kodak, Portra, Ektar, Gold, Vision3, Tri-X, Fujifilm, Superia, Provia, Velvia, Ilford, HP5, Multigrade and CineStill are trademarks of their owners. Redlamp isn't affiliated with them: its looks are built from the published technical data.

Roadmap

Mac first, then iPad and iPhone from the same engine.

Phases 1 to 4 build a high-quality editor and engine on macOS; iPad and iPhone follow in Phase 5. This roadmap is read from the README and the project's tracker every time the site is built, and each phase links to its work on GitHub.
  • done
  • in progress
  • not started

Phase 0

Foundations

largely done
  • Performance lab: a CI runner on Apple Silicon with regression gates that block merges (iPhone and iPad tiers come with Phase 5)
  • mise and Tuist workspace, module graph with enforced boundaries, and an engine purity gate
  • LibRaw vendored as a pinned, static XCFramework (macOS, iOS, and Simulator; arm64 only)
  • Engine API contract, headless CLI, and a unit and engine smoke-test suite
Show 6 more
  • Lightroom feature inventory
  • GitHub Actions CI: purity gate, SwiftFormat lint, build, and tests, with cached LibRaw and fixtures
  • A benchmark harness and a recorded performance history, drawn at redlamp.app/performance
  • An end-to-end regression suite that works the app through every feature by its keys, menus, clicks and drags, checks for crashes, hangs and slowdowns, and gates every release
  • Golden-image color regression tests (ΔE2000) for camera files, and a golden render for every bundled recipe version
  • Written clean-room policy and a license-audit gate in CI

Phase 1

First light

done
  • RAW pipeline core, fused develop kernel, cached pyramid, and latest-wins rendering
  • Develop workspace on macOS, Basic panel, histogram, before/after, sidecars, undo, and export
  • Layer and mask engine, with linear and radial gradient masks, local adjustments, and the Masking panel
  • Sandboxed XPC decode helper
Show 2 more
  • Render scheduler with priority lanes, tile cancellation, and thermal awareness
  • Coordinated sidecar I/O for iCloud Drive

Phase 2

Develop parity

in progress
  • Your own Adobe camera profiles in the Base Look menu: each camera's Adobe Standard and Camera Matching profiles, and Adobe Color and Adobe's other looks with their Amount, where Lightroom Classic or Camera Raw installs them or from files you choose, used on your Mac only; where a profile isn't on the Mac, Redlamp's look of the same name stands in
  • Best-in-class classical noise reduction on raw data, profiled per camera and ISO, with the mosaic cleaned before demosaicing and deep shadows kept true
  • Slider-feel calibration against Lightroom: response curves fitted against Lightroom's renders
  • Mask edges that hold up: a mask's edit applied to the sky's or the subject's own colour along its edge, so darkening a sky leaves no light rim along twigs and hair, and sky, subject and people edges refined per pixel, with the stray strands ViTMatte finds, that hold up in haze, backlight and flyaway hair
Show 45 more
  • Texture, Clarity and Dehaze, globally and inside masks, and Moiré and Defringe inside masks
  • Copy Settings with Lightroom's checklist, Sync and Auto Sync across a filmstrip selection
  • Detail panel: noise reduction scaled to each photo's measured noise, and noise-aware sharpening, with Lightroom's controls
  • Menon Bayer demosaic with a dual pass for flat noisy areas, hot-pixel repair and highlight reconstruction that keeps a clipped sky's colour
  • Recipes: one format for presets, profiles and LUTs, Base Look tables, camera recipe cards, .cube, .3dl and HaldCLUT import (with LUTs for S-Log3, LogC3, V-Log and Apple Log footage), 39 bundled recipes, and the Recipe Lab
  • Before/After layouts, themes and a Settings window
  • Export dialog: JPEG, HEIC, AVIF, PNG and TIFF, a file size limit, 8, 10 or 16 bits, sRGB or Display P3, resizing, metadata, presets and Export with Previous, developed at full resolution and downscaled last
  • Command palette (⌘K): every action, Develop slider and picker from the keyboard, and a slider bar that adjusts by key
  • Folders, as in Lightroom Classic: remembered folders as a tree with counts, and a filmstrip that follows the disk and stays fast with any number of photos
  • Versions of a photo, as Lightroom's virtual copies, kept in its one sidecar
  • Edge-aware Highlights and Shadows, and edge-refined Dehaze
  • Red, green and blue curves in the Tone Curve, as Lightroom's point curve has
  • Film effects for recipes: halation (the red glow around bright lights), bloom and diffusion, film grain that varies with density and scales with output size, and light leaks, dust and scratches, and frames, with Mood recipes built on them
  • Film simulations: 36 looks from 30 stocks, built physically from the manufacturers' datasheets, including pushed, overexposed, bleach-bypass and cross-processed variants, with a Film Looks window and each film's icon in the Base Looks panel
  • DNG camera profiles: dual-illuminant colour, the embedded HueSatMap, and the profile's own look offered as a Base Look
  • Calibration panel: Shadows Tint and the red, green and blue primaries' Hue and Saturation, and the Process version, which moves an edit to a newer rendering only when you ask
  • Remove Chromatic Aberration, from the lens profile or measured from the photo's own edges, and Lightroom's Defringe (Purple and Green Amount and Hue)
  • Lens corrections the raw file carries (DNG opcodes, Sony's and Fujifilm's), and manual Distortion and Vignetting, in the same geometry map
  • Adobe LCP lens profiles you put in Redlamp's Lens Profiles folder, named in the Lens Corrections panel
  • Lens profiles as Lightroom uses them: those Lightroom Classic and Camera Raw install, read where they are, profiles made on another body whose sensor covers the photo's, and Lightroom's Setup, Make, Model and Profile menus to choose one by hand
  • Crop and straighten (aspect presets and lock, composition overlays, Angle and the Straighten tool, Constrain to Image), rotate and flip, and the manual Transform sliders, all one geometry map that masks follow
  • Crop: custom aspect ratios kept in the Aspect menu, a button that swaps portrait and landscape, and turning the photo by dragging outside the crop
  • Upright: Auto, Level, Vertical and Full from the photo's own straight edges, found by Redlamp's line detector, and Guided from drawn guides. A correction is applied only when the edges agree on it, so a landscape or a still life is levelled at most, and Auto leaves strong perspective partly in place
  • Brush, color range, and luminance range masks, and Vision AI masks (subject, sky, background, people)
  • Lightroom XMP preset import, setting by setting, with a report of what came across
  • Better X-Trans demosaicing (Markesteijn)
  • Camera bench: test your own camera's raws against the camera's own JPEG on your Mac, and send only the measurements, which build the evidence on the cameras page
  • Nikon's High Efficiency NEFs and newer bodies such as the Sony A7 V, through Redlamp's own fork of LibRaw
  • ICC input profiles
  • Point Color, globally and inside masks, with Capture One's uniformity for evening out skin tones
  • Lens corrections from the lensfun database (waits on counsel)
  • Photos library integration and a Photos editing extension
  • Tools that behave like Lightroom's: zoom and pan in every tool, and every brush sized from the keyboard and pointer with its size shown as it changes
  • The filmstrip hidden automatically or kept up, from its pin or a setting, with the photo fitted above it
  • The filmstrip: a scroll bar, thumbnails you can resize, Home and End for the first and last photo, and its line of text made optional
  • Looks in one place: each film stock listed once, with its film's icon, and a short Base Look menu
  • A Base Looks panel before Recipes: every look, film stock and LUT in one searchable panel, Recipes as presets, and your own recipes and imported looks shown in Finder or moved to the Trash, with built-in folders hidden
  • The pixel under the pointer under the histogram: its RGB percentages or L*a*b* values
  • Panel on/off switches, as Lightroom's, and a value on every control that has one, to type (with arithmetic) or scrub
  • Sensor clipping, which marks the photosites the camera clipped, and a colour-assessment view
  • A welcome at first launch, What's New after each update, and Report a Bug or Send Feedback from the app with no GitHub account needed, with crash and hang reports offered on the next launch
  • Masks: reorder masks and components, every overlay mode and its opacity
  • Masks: a Color swatch
  • Masks: local Whites and Blacks as true end points
  • Masks: Detail, which keeps only a mask's textured or flat areas, and any mask reused inside another

Phase 3

Pro masking, healing, AI denoise, focus stacking, and looks

in progress
  • Focus stacking: lens corrections before alignment, halo handling, vendors' focus-bracketing tags, and baking a stack to DNG
  • The remaining film simulations (Eterna, Classic Negative, Nostalgic Negative, Pro Neg, Acros, Reala Ace), which need more photos with the camera's JPEG beside the raw; until then, Fujifilm's own published LUTs for ten simulations, which you download from Fujifilm, import in one step and fill the film slots that recipe cards use; and, as an experiment you turn on in Settings, a model of the camera's own processing for twenty simulations, with their Highlight and Shadow Tone, Color and D-Range settings
  • Reproduction work: a scene-referred rendering with no tone curve or look, exposure tied to each camera's metering with readouts in stops, readout points pinned on the photo, and Adobe RGB, ProPhoto and eciRGB v2 export
  • Looks measured from other apps' filters at scale: look references made on the iPhone with Redlamp Bench, fitted into ranked candidate looks in the Recipe Lab
Show 23 more
  • SAM-class object and face-part masks, depth range, mask refinement, mask presets, and recomputing AI masks for pasted settings
  • Updating AI masks across a selection of photos
  • Heal and Clone, as spots and brushed strokes, each finding its own source
  • Content-aware Remove, and removing people, objects and things named in words with a click, taking their cast shadows and reflections with them
  • Removing an object picked by rectangle or brush, not only with a click
  • Remove Dust and Visualize Spots, for one photo or across a shoot
  • Focus stacking: stacks found in the filmstrip, alignment through focus breathing, depth-map fusion (Auto, Smooth and Detail), a retouch brush, and results that develop like a raw
  • redlamp-profiler: look matching by black-box measurement against cameras' own JPEGs; four measured film looks ship
  • Generative fill on the device, for areas too large for content-aware Remove
  • Landscape and body-part masks on a model trained on data we have rights to
  • AI mask edges solved per pixel, coarse masks refined at full resolution, with Feather and Edge sliders
  • Objects selected by rectangle or brush
  • Curves inside masks
  • Snow and adaptive Landscape presets
  • The Masks panel redesigned: one picker for every mask, its actions on screen, masks that preview themselves, Invert for a whole mask, one mask shown alone, People and Landscape pickers, and presets on every selected photo
  • Effects for a mask's adjustments, as Lightroom's Effect menu has: Dodge, Burn, Smooth Skin, Whiten Teeth and others, and your own saved from a mask
  • AI Denoise: an on-device model working on raw data, matching or beating the best commercial denoisers, with a fast 1:1 preview and non-destructive results
  • Manufacturer lens corrections embedded in Panasonic and OM System raw files: their distortion, from process 16
  • Chromatic aberration and vignetting from the corrections Panasonic and OM System raw files carry, and Fujifilm's 1.25× crop modes
  • Borders around the photo: plain borders and gallery mats shaped for Instagram, Stories and paper, film and instant frames, a Borders folder in Recipes apart from the moods, and borders left out or added at export
  • Analogue film stocks: film and digital shot side by side with charts, scanned and fitted by the profiler, with halation, bloom and grain per stock
  • The agent recipe studio at scale: many more recipes developed from briefs, once the critics agree with human picks (about 200 pairwise verdicts)
  • Each raw opens about as bright as its camera's own JPEG, from a table of 576 cameras Redlamp measures, never from Adobe's data

Phase 4

1.0

in progress
  • Edits made in Lightroom: each photo's develop settings, from its XMP sidecar or a Lightroom Classic catalog, converted once with a report of what came across, photos edited in Lightroom's first versions included, and a catalog's virtual copies as versions
  • A library for a million photos: an index on your Mac of every photo under your folders, kept current as the disks change, with thumbnails and previews that let you browse slow, network and disconnected drives; edits and metadata stay beside each photo, or in Redlamp on this Mac for folders it can't write to, moved between the two from a folder's menu, and several Macs can share the same folders
  • Library and Develop in one window: switch with a key or a click, with your selection, source and filmstrip carried across, and a second window for another screen
  • Search and filters: results as you type, one query language for the filter bar, the command palette, smart collections and redlamp library, counts for every filter, traits such as long exposures, panoramas, and wide-open, telephoto and ultra-wide shots, and an empty search that names the filter in its way or a name a typo away
Show 19 more
  • Grid and culling: a grid and loupe that held arrow keys fly through, photos grouped into moments, days, cameras or lenses, Compare and Survey, sensor clipping, a raw histogram and focus peaking while culling, thumbnails that show your edits, and ratings, flags, colour labels and marks on whole selections, with Undo, by key, by mouse or from the command palette
  • Soft frames in bursts: the sharpest frame of each burst at the camera's focus point, proposed for you to accept
  • Keywords, metadata and collections: a keyword list with sets and a painter, IPTC fields, metadata presets and corrected capture times, and collections and smart collections, with a target collection and a rule editor, in the left panel beside All Photographs, Previous Import, Marked and Rejected, saved with each photo and carried into exports; other apps' XMP read, and written when you turn it on in Settings › Library, as Lightroom's Automatically write changes into XMP does
  • Files on disk: naming templates, batch rename, moving and copying files and new folders with Undo and Stop partway, removing photos to the Trash from their menu or the Delete key, importing from cards with a backup copy, stacks, and Library Health: exact duplicates, damaged and misnamed files, and a rule for raw and JPEG pairs, moved to the Trash only from a list you confirm, and photos whose files went missing, found again or removed
  • Coming from Lightroom: a Lightroom Classic catalog's ratings, keywords and collections, in a window that shows its progress, and other apps' libraries
  • Coming from Apple Photos: the albums you choose copied into your folders with their favourites, dates and original names, and their ratings, captions and keywords on macOS 27, each album a collection and a photo edited in Photos stacked with its edited version; new photos in those albums offered as they arrive, or imported on their own
  • Apple Photos without copying: your albums in the library beside your folders, left in Photos, with originals stored in iCloud downloaded when you view, edit or export them
  • Library research, and a design measured against a stress harness of up to two million photos on simulated spinning and network disks, with budgets that fail on regressions
  • The app in the App Sandbox, which the Mac App Store requires, so that it reaches only the files you give it
  • Accessibility, usability testing, and the Mac App Store release
  • HDR and EDR editing and export
  • Batch export
  • JPEG XL export, lossy or lossless
  • The edit embedded in exported files
  • AI-assisted focus stacking: learned fusion and halo suppression, occlusion and motion handling, and good stacks from fewer or handheld frames
  • AI Super Resolution (2x and 4x) that stays faithful and doesn't invent detail
  • Working on your photos away from home over your own private network, such as Tailscale, with the photos left on a drive at home: a study first
  • Your own keyboard shortcuts: any action on the key you choose, with keymaps for people coming from Lightroom Classic, Photo Mechanic and Bridge
  • Versions in the library: each version of a photo shown, rated, labelled and collected as a photo of its own, on the same file, as Lightroom Classic's virtual copies are

Phase 5

iPad and iPhone

  • The iPhone design, decided before it's built: a study of how photographers edit on a phone, and concepts tried in the harness on the Mac and on the iPhone
  • iPad and iPhone shells on the same engine (compact layout, touch, Apple Pencil), with in-process decoding
  • Coordinated sidecar I/O through Files, and edits moving between devices
  • Tiled rendering for large exports within iPhone and iPad memory
Show 2 more
  • On-device timing of the AI models on iPhone and iPad, and performance-lab tiers for both
  • App Store releases for iPad and iPhone

Unscheduled

Later

  • CloudKit sync with lightweight proxy RAW files
  • Panorama and HDR merge
  • The library's AI and map: AI-assisted culling, similar photos, suggested keywords and text search, natural-language search, people, a map, and sensor dust followed from shoot to shoot
  • Tethered shooting: capture sessions with settings for the next captures and a hot folder for any camera, then camera control and Live View for Canon, Nikon, Sony and Fujifilm, wireless, and focus brackets straight into a stack (research)
Show 3 more
  • Importing your own .dcp camera profiles (deferred in October 2026)
  • More AI features, subject to the research below: lens blur, distraction removal, and personalized auto settings
  • Cloud processing for work too heavy for the Mac, generative fill first and then masking and denoise: through a provider you bring your own key for, a third-party provider, or a ComfyUI server (study, paused)

Redlamp and Lightroom, feature by feature

See how each feature compares
Done
114
In progress
22
Planned
29
Later
13
Undecided
10
Out of scope
6

Read at commit 31dac0b.

Introducing Redlamp

Watch on YouTube

AI disclosure

Redlamp is built with AI agents.

Agents in Cursor, an AI code editor, write Redlamp's code, tests and documentation, with models from several providers. Nearly every commit in its history is co-authored by Cursor's agent. Pedro, who started the project, directs the work. This is how it's divided and checked.

What the agents do

They write the code, from the image pipeline to the interface, and the tests that check it. They also write the README, the research notes and this website. Some work runs in waves: several agents at once, each in its own copy of the repository and its own part of the code, with an orchestrating agent merging their work.

What Pedro does

He sets Redlamp's vision and direction, its design and its standards, makes the high-level architecture decisions and drives the research. Work is planned in the project's tracker, where new items wait until he accepts them and each decision is recorded with its reasons. He tries changes in the app, on his own photos, and reviews some of them; the tests check the rest.

How changes are checked

Agents run the tests as they work: each package's own, decode tests on CC0 samples from real cameras, and renders compared with recorded references, under Metal's validation layer. A change to how photos render goes into a new process version, as in Lightroom, so existing edits keep their look. CI builds and tests every push to main.

The rules agents follow

AGENTS.md and the project's Cursor rules set out how to build and test, which files each agent may change, and which decisions are Pedro's. Agents follow the clean-room policy every contributor does: algorithms come from published papers and specifications, no GPL or LGPL code or data is used, and Adobe's files are never shipped or converted.

The agent recipe studio

In the agent recipe studio, curator, colourist and critic agents develop looks to briefs drawn from public-domain references. People approve each brief and choose what ships, and the critics are relied on only after they agree with people's picks on pairs they haven't seen.

AI in the app

Separately, some features use AI models, and they run on your Mac: the Subject, Sky, Background, People, Objects, Depth Range and Landscape masks use Apple Vision's built-in models, Segment Anything and Depth Anything, and the Remove tool, in progress, finds things by name with OWLv2. Photos are never uploaded. Settings › Models lists the models that need a download, with their size and licence.

Screenshots on this site are captured from the app. The films, the app icon and the logo were made with agents too, in code: the films are animated with Remotion, the score for Introducing Redlamp is synthesised by a script, and the icon and logo are vector drawings.

The Redlamp app icon: a glowing ruby safelight lens in a steel bezel

Open source

Free, open and yours to build on.

Redlamp is licensed under the Mozilla Public License 2.0, which is compatible with the App Store. Algorithms are implemented clean-room from papers and specifications, and contributions are welcome.
licenseMPL-2.0statusalphacostfree forevercloudnone required

Build from source

An Apple Silicon Mac with macOS 26, Xcode 26 and mise.

$ git clone https://github.com/pdcgomes/redlamp.git && cd redlamp
$ mise install
$ mise run generate
$ mise run run

Homebrew

$ brew tap pdcgomes/redlamp https://github.com/pdcgomes/redlamp
$ brew install --cask pdcgomes/redlamp/redlamp

Product Hunt

The Redlamp app icon: a glowing ruby safelight lens in a steel bezel

Redlamp

Native, open-source RAW Lightroom alternative editor for Mac

View on Product Hunt