OSX native app. Sandbox friendly Objective-C wrapper for the LUTCalc Javascript web app.
Clone or download
Ben Turley Ben Turley
Ben Turley and Ben Turley Bugfix
Latest commit 2e11e70 Sep 21, 2017
Permalink
Failed to load latest commit information.
LUTCalc Preview bugfix to v3.1.1. Jun 17, 2017
web Bugfix Sep 21, 2017
.gitignore .gitignore Apr 7, 2015
.gitmodules Remove submodule. Mar 2, 2015
LICENSE Initial commit Nov 4, 2014
README.md Update README.md Dec 6, 2014

README.md

LUTCalc-For-Mac

Sandbox friendly Objective-C wrapper for the LUTCalc Javascript web app.

LUTCalc

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.

For Mac OSX users, the sister LUTCalc For Mac project provides a native app version using a sandbox-friendly Objective-C Webkit wrapper around the LUTCalc Javascript.

Instructions are included, just open 'index.html' in a web browser with Javascript enabled.

Supported Browsers

Safari may cause difficulties in automatically saving LUTs - it does not support file saving via Javascript. LUTs should open up in a new tab where they can be saved with 'Save As'.

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-Log3 - Technical Summary for S-Gamut3.Cine/S-Log3 and S-Gamut3/S-Log3

Sony S-Gamut3 / S-Gamut3.cine - Sony Excel spreadsheet of various gamut matrices

Sony S-Log - S-Log: A new LUT for digital production mastering and interchange applications

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

Main Files

  • index.html - HTML5 base of LUTCalc. Launch to start.
  • lutcalc.js - main Javascript file. Initialises all the UI and calculation objects and sets up the event handlers.

UI Files

  • 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.

Calculation Files

  • 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.

Helper Javascript

  • 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.

Other Files

  • 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

  • FileSaver.js - Cross-browser Javascript file saving.
  • Blob.js - Cross-browser Javascript Blob implementation.
  • 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.