Web App for generating 1D and 3D Lookup Tables (LUTs) for video cameras that shoot log gammas, principally the Sony CineAlta line.
LUTCalc generates 1D and 3D .cube format LUTs suitable for use in DaVinci Resolve, Adobe Speedgrade and as user 3D LUTs in Sony's log-recording video cameras. These include the PMW-F5, PMW-F55 and PXW-FS7.
If using Internet Explorer it should be a recent version (10+).
Firefox, Chrome and recent IE should all work fine.
Gamma / Gamut Information
The sources of information used are white papers and standards documents, analysis and comparison of test images and LUT calculations using known reference LUTs.
Sony S-Gamut3 / S-Gamut3.cine - Sony Excel spreadsheet of various gamut matrices
Sony Look Profile LUTs - Sony Community Website
Arri LogC / Wide Gamut - ALEXA Log C Curve - Usage in VFX
Canon C-Log - Canon-Log Cine Optoelectronic Transfer Function
Canon LUTs and Gamut Information - Canon C500 Support Site
Canon C300 Input Device Transform (IDT) - Canon C300 Support Site - under 'Software'. You have to specify 'Mountain Lion' on a Mac or 'Windows XP' on a PC for it to be displayed. C500 and C100 have the same IDTs for CP Lock, though the C500 also offers 'Cinema Gamut' (see above link).
Panasonic Varicam V-Log and V-Gamut - V-Log/V-Gamut Reference Manual
Cineon - Understanding Cineon
Rec709 - ITU BT.709-5
sRGB - Wikipedia entry
LUTCalc File List
- index.html - HTML5 base of LUTCalc. Launch to start.
- lutcamerabox.js - builds the UI object where camera and ISO are chosen.
- lutgammabox.js - builds the UI object for transfer curve (gamma) and colour space (gamut) selection.
- luttweaksbox.js - builds the UI object for customising the transfer (gamma) curves and colour spaces / gamuts.
- lutlutbox.js - builds the UI object containing options concerning the LUT format.
- lutgeneratebox.js - builds the 'Generate' button that triggers the LUT generation, plus the generation logic itself.
- lutinfobox.js - builds the UI object which shows instructions, the changelog, plots of the input and output gammas against stop and IRE and data values for correct exposure with the chosen output gamma.
- lutgamma.js - contains all the data and equations for calculating the transfer curves, plus input and output functions to various ranges / scales.
- lutgamut.js - contains the data for matrix-based colour spaces, plus the calculations for those, LUT-based spaces and compound combinations of the two.
- lutgamut.lc709.js - a pure colour space transform LUT from S-Gamut3.cine to the LC709 look profile colour. Effectively a LUT of a LUT.
- lutgamut.lc709a.js - a pure colour space transform LUT from S-Gamut3.cine to the LC709a look profile colour. Effectively a LUT of a LUT.
- lutgamut.cine709.js - a pure colour space transform LUT from S-Gamut3.cine to the Cine+709 look profile colour. Effectively a LUT of a LUT.
- lutgamut.cpoutdaylight.js - pure colour space transform LUTs from S-Gamut3.cine to the colour space of CP Lock on a daylight or mixed lighting balance. Derived from 3D Newton-Raphson on Canon's published daylight IDT matrices.
- lutgamut.cpouttungsten.js - pure colour space transform LUTs from S-Gamut3.cine to the colour space of CP Lock on a tungsten or warmer balance. Derived from 3D Newton-Raphson on Canon's published tungsten IDT matrices.
- luts.js - LUT handling object. Will calculate interpolated values from LUTs using cubic and tricubic interpolation. Also includes code for breaking a 3D LUT into gamma and gamut component LUTs and changing the input gamma / gamut (as used by the LUTAnalyst tool).
- lutfile.js - file handling object.
- lutinputs.js - simple object into which the other objects can place their form input objects, to allow interaction without globals.
- style.css - stylesheet controlling the look of the app. All dimensions (greater than 1 pixel) are em values.
- LUTCalc.icns - icon file containing a logo in a format suitable for Mac OSX Apps in XCode.
- README.md - this file.
- LICENSE - GPL2 License document.
External Code Used
- The function 'createRadioElement' is used to dynamically create radio buttons. This came from a tip by Prestaul on stackoverflow
All other code is by me, Ben Turley.