Your files stay on your Mac.
Hasselblad's 3FR is a capture file, not a delivery file: Phocus opens it and almost nothing else does. Convertessa decodes each one on your Mac and writes a standard JPG that Mail, Slack, a client's browser and Finder previews all handle without complaint. You set the quality for the run, drop an entire card into one queue, and the original 3FR files are left untouched.
A .3fr is what a Hasselblad writes to the card and nothing more — H-system bodies, the X1D and X2D, and the CFV backs all produce one. Phocus, Hasselblad's own software, converts that file into an .fff the moment you import it, which tells you how the format is meant to be treated: as a negative, not as a photograph.
Convertessa is not Phocus, and that is the single most useful thing to understand here. libvips does the image work, and the demosaic behind it comes from the open-source raw decoder lineage rather than from Hasselblad's own rendering pipeline. What you get is a neutral read of the sensor data: the white balance the camera recorded, a standard colour matrix, sRGB out. What you do not get is Hasselblad Natural Colour Solution, the default Phocus tone curve, or any adjustment you made inside Phocus.
One practical detail worth knowing: libvips writes JPG without chroma subsampling at quality 90 and above, and with 4:2:0 subsampling below it. On a Hasselblad file that shows up first in fine red detail and along skin edges, so if the output is going anywhere near a layout, stay at 90 or higher. For a contact sheet, 80 is fine and the file is a third of the size.
Drag the DCIM folder off the Hasselblad card straight onto Convertessa. Every .3fr inside joins a single queue, and the image engine is installed on first run once you approve it.
Choose JPG as the target, then set the quality. Around 90 keeps the fine texture a client review needs; nearer 80 makes a 100-megapixel frame small enough to email without thinking about it.
Run the queue. Each 3FR is demosaiced and encoded on your Mac, output lands beside the source or in the folder you name, and the .3fr files themselves are never rewritten.
Images, audio, video, documents, archives, eBooks and fonts — all converted natively, right on your Mac.
Pick a format you have — see everything Convertessa can turn it into.
Convert hundreds of files at once with per-type group defaults and individual overrides.
First-class support for HEIC, AVIF and WebP — encode and decode, both ways. Read JPEG XL and a dozen more modern formats too.
Drop files anywhere on the window. Native, instant, and exactly what you’d expect on a Mac.
Dial in compression, resolution and bitrate. Keep originals pristine or shrink for sharing.
Never overwrite a file by accident. Convertessa appends safe suffixes automatically.
Every job is logged locally. Re-run a previous conversion or revisit recent outputs in a click.
Bundle your converted files straight into a single ZIP, TAR or 7z — packaged and ready to share the moment a job finishes.
Right-click any file in Finder and choose Convert. A Quick Action handles it on the spot — no need to open the app first.
Shrink Convertessa to a tidy mini window that tucks into a corner — just a drop zone and a format picker for quick, one-off conversions.
No cloud. No account. No upload. Every conversion happens entirely on-device, using the power already in your Mac. What you convert is nobody’s business but yours.
Script conversions, wire them into your build, or batch a folder from the terminal. The same engine, no GUI required.
Read the full CLI documentation →Shrink Convertessa down to a small, focused window — drop, convert, done, with your recent conversions one click away.
macOS 14+ · Apple Silicon & Intel
New formats, new features, and fixes — every release, on the record.
Because Phocus is applying Hasselblad's own colour rendering and default tone curve, and Convertessa is not. The decode here is deliberately neutral: as-shot white balance, a standard colour matrix, sRGB output, no curve on top. Nothing is broken — you are looking at the sensor data rather than at Hasselblad's interpretation of it. If the Phocus look is the point, export a TIFF or JPG from Phocus and convert that file instead.
It depends which one carries your work. The .3fr is the untouched card file; the .fff is what Phocus writes on import, and it can carry the adjustments you made there. Convert the FFF when you want your edit reflected, the 3FR when you want the original capture. Convertessa reads both, and in either case the source file is only ever read.
No. JPG stores 8 bits per channel — 256 levels — where the 3FR holds 16. For viewing, sending and printing an already-finished frame that is plenty. It stops being plenty the moment you want to lift exposure or pull back a highlight, because those moves need tonal headroom that only exists in the raw file. Convert for delivery; archive the 3FR for editing.
Roughly a tenth to a twentieth of the size. A 100-megapixel X2D capture of around 150 MB typically lands between 8 and 25 MB as a JPG, depending on the quality you pick and how much fine detail the frame holds. For a lightweight review set:
convertessa ./*.3fr --to jpg -o ~/Review --quality 80
No. Distortion, vignetting and chromatic aberration profiles for HC, HCD, XCD and V-system optics are recorded in the file's maker-note block and applied by Phocus at render time. A general-purpose raw decoder has no access to that pipeline, so the JPG shows what the sensor recorded through the lens, uncorrected. On most XCD glass the difference is slight; at the wide end it shows in the corners.
Because demosaicing 100 million photosites is real arithmetic, and the file is 150 MB before the work starts. libvips is multithreaded and the queue keeps every core busy, so throughput across a batch is much better than the per-file time suggests — a full card is a coffee break, not an afternoon. Nothing is waiting on a network, because nothing is going over one.
Yes — the CLI runs the same engine. One file:
convertessa input.3fr --to jpg --quality 92
A whole card into its own folder:
convertessa ./*.3fr --to jpg -o ~/Exports --quality 92
Names carry over with the extension swapped, so B0001234.3FR becomes B0001234.jpg and your sequence stays readable.