Free Tool
EXR Viewer
Open multilayer OpenEXR files in your browser. Cryptomatte click-to-pin, AOV inspection, all major compressions including DWAA/DWAB. No upload, no install.
What it does
Multilayer + multipart EXR
Open EXRs from Blender, Houdini, Nuke, Maya, Arnold, V-Ray, RenderMan. All major compressions: NO, RLE, ZIPS, ZIP, PIZ, PXR24, DWAA, DWAB. Multipart files with per-part channel groups.
Cryptomatte click-to-pin
Click an object to pin its matte. Preview coverage live. Export the matte as a PGM you can drop straight into Nuke or After Effects without re-rendering.
AOVs and pixel inspection
Channel browser with semantic grouping. Per-pixel readouts in both scene-linear and display-referred values. Source-interpretation override when the header lies about color space.
How to open an EXR file (including multilayer EXRs)
Launch the viewer app, then drop the .exr file into the browser window. No upload, no install, no account needed. The viewer reads the OpenEXR header, surfaces every layer and part as a dropdown, and renders the actual data instead of a flattened JPEG preview.
For desktop workflows, Blender's compositor opens EXRs natively, and DJV or OpenRV handle sequence playback. The browser viewer here is built for the one-off inspection case: multilayer Cycles dumps, multipart Houdini renders, anything compressed with DWAA or DWAB that most online viewers choke on.
Learn the format
Not sure what is inside the EXR?
Start with the format primer if you are choosing between EXR and PNG, then use the multilayer guide if you need render passes, Cryptomatte, depth, normals, or AOVs to survive the save.
100% local
Files never leave the browser. Decode runs on your machine via a Web Worker; pixels render on your GPU. Open the viewer, drop an EXR, and nothing crosses the wire. No upload, no telemetry, no server in the loop. Works offline once the page is cached as a PWA.
Coverage
What the viewer is trusted to do, what's still in progress, and what it deliberately won't try.
File structure
| Feature | Status | Notes |
|---|---|---|
| Single-part EXR | ✅ Works | Standard scanline layout |
| Multilayer EXR | ✅ Works | Multiple layers in one part (Cycles AOV default) |
| Multipart EXR | ✅ Works | Separate parts (stereo, named groups) |
| AOV groups | ✅ Works | Beauty + diffuse + specular + depth + custom |
| Deep EXRs | ❌ Refused | Refused with warning; use DJV or OpenRV |
Compression
| Feature | Status | Notes |
|---|---|---|
| NO | ✅ Works | Uncompressed |
| RLE | ✅ Works | Run-length encoding |
| ZIPS | ✅ Works | ZIP, per-scanline |
| ZIP | ✅ Works | ZIP, 16-scanline blocks |
| PIZ | ✅ Works | Wavelet, lossless |
| PXR24 | ✅ Works | 24-bit float quantization |
| DWAA | ✅ Works | DCT, lossy, small blocks |
| DWAB | ✅ Works | DCT, lossy, larger blocks |
| B44 | ⏳ Planned | Detected, decode in progress |
| B44A | ⏳ Planned | Detected, decode in progress |
View transform
| Feature | Status | Notes |
|---|---|---|
| ACES-like | ✅ Works | GPU approximation, baked |
| Reinhard | ✅ Works | Tone curve, GPU |
| Linear clamp | ✅ Works | No tone map, clipped at 1.0 |
| Filmic | ⏳ Planned | Blender Cycles default; planned via OCIO |
| AgX | ⏳ Planned | Blender 4.x default; planned via OCIO |
| Real ACES via OCIO | ⏳ Planned | Studio OCIO config loading |
Viewer features
| Feature | Status | Notes |
|---|---|---|
| Cryptomatte click-to-pin | ✅ Works | Manifest parsing, isolate in viewport, PGM export |
| Pixel Inspector | ✅ Works | Scene-linear, luma, display value, path, source channels |
| Color Trust panel | ✅ Works | Pass / needs-attention on source / view / tone map |
| Exposure / Gamma | ✅ Works | GPU-side display adjustment |
| Source override | ✅ Works | Override the color-space header when it lies |
| Sequence playback | ⏳ Planned | Still-frame inspection only for now |
Privacy & delivery
| Feature | Status | Notes |
|---|---|---|
| Browser-side decode | ✅ Works | Web Worker, local |
| GPU rendering | ✅ Works | Local |
| No upload | ✅ Works | Files never leave your machine |
| No account | ✅ Works | No login required |
| Offline-capable | ✅ Works | PWA, works without network after first load |
Verify the build
Open Diagnostics inside the viewer to run the official OpenEXR fixtures against this exact build, in your browser. You're seeing codec and file-shape health right now, not a static promise.
Open the viewer →FAQ
Common questions
What is an EXR file?
An EXR (OpenEXR) is the standard high-dynamic-range image format for film and VFX. Unlike a JPEG or PNG, it holds 16/32-bit float pixels, multiple layers (beauty, depth, normals, AOVs), multiple parts (stereo, multi-view), and metadata. Renderers like Cycles, Arnold, V-Ray, and RenderMan output OpenEXR by default for anything that needs precision past 8-bit per channel.
How do I open an EXR file?
Launch the viewer app, then drop the .exr file into the browser window. No upload, no install, no account. The viewer reads the OpenEXR header, exposes layers and parts as dropdowns, and renders the actual data, not a flattened JPEG preview. Multilayer, multipart, and most compressions (NO, RLE, ZIPS, ZIP, PIZ, PXR24, DWAA, DWAB) work out of the box.
How do I view a multilayer EXR?
Same viewer. Multilayer is the default case. Open the file, then use the Group dropdown to switch between layers (beauty, diffuse, specular, depth, custom AOVs). For multipart files, a Part dropdown also appears. See the Coverage matrix above for which file shapes are tested. Multilayer EXRs from Cycles, Houdini, Maya, Nuke, V-Ray, Arnold, and RenderMan have all been verified.
How do I convert EXR to PNG or JPEG?
This viewer is for inspection, not conversion. Open the EXR here first to verify the layer and view transform. Most online converters render the wrong layer on multilayer EXRs without telling you, so you end up with a depth pass instead of beauty. Use a desktop tool like Blender's compositor, DJV, or OpenRV for the actual conversion.
Does my file upload anywhere?
No. Decode runs locally in a Web Worker. Rendering runs locally on your GPU. The file never crosses the network. Same is true for Cryptomatte manifests, channel data, and metadata. No telemetry tied to your files. No server-side processing. No account. Files stay in your browser.