Log3G10 is RED's log format: a fixed rule mapping scene reflectance to a number in the file. Nothing below describes a particular camera body, only the rule. It ships on this site as executable code, so every figure here was computed rather than remembered.
Of the eight curves in the site's transform library, Log3G10 has the second-widest headroom above middle grey: 10.00 stops, against Blackmagic Film Gen5's 10.27. Film Gen5 is one of the two this site does not bake a conversion LUT for, so among the six it ships, Log3G10 leads.
The two numbers to carry
| 18% middle grey encodes to | 33.333% of code value |
| In 10-bit | 341 of 1023 |
| In 8-bit | 85 of 255 |
| Stops from grey to code 100% | 10.00 |
| Linear value at code 100% | 184.32, i.e. 1,024 × middle grey |
Grey lands within 0.00005 of a percentage point of exactly one third of the code range. The ceiling lands within 0.00002 stops of exactly ten. Decoding code 1.0 returns 184.3223, and 0.18 × 1024 is 184.32, so full code is 2¹⁰ times middle grey.
Where the ten stops go
Each stop above grey costs 0.224282 × log₁₀2 = 6.752% of the code range, or 69.07 codes out of 1023. Close to grey the −0.01 offset inside the curve eats into that: a stop centred on grey measures 63.2 codes, and the spacing only comes within 1% of 6.752 points from three stops over upwards.
| Stops from grey | Code value | 10-bit | After conversion to Rec.709 |
|---|---|---|---|
| −3 | 17.56% | 180 | 9.8% |
| −2 | 22.01% | 225 | 16.8% |
| −1 | 27.36% | 280 | 25.9% |
| 0 (18% grey) | 33.33% | 341 | 37.3% |
| +1 | 39.67% | 406 | 50.7% |
| +2 | 46.21% | 473 | 64.7% |
| +3 | 52.85% | 541 | 77.7% |
| +4 | 59.54% | 609 | 88.1% |
| +5 | 66.27% | 678 | 96.4% |
| +6 | 73.01% | 747 | 100% (clipped) |
| +10 | 100.00% | 1023 | 100% (clipped) |
That gives a shortcut for a waveform: stops over grey = (reading − 33.3) ÷ 6.75. Above middle grey it never errs by more than 0.12 stops, and from +2 upwards it reads 0.09 to 0.12 stops low. Below grey it falls apart — one stop under it is out by 0.12 stops, three stops under by 0.67 — so use it as a highlight tool only.
Two more anchors. 90% reflectance sits at 48.34%; zero reflectance sits at 9.155%, not at zero, because the curve carries a −0.01 offset and code 0 decodes to linear −0.01. Everything below 9.155% decodes negative, and the chain clamps it to black.
There is no toe
Of the eight curves, Log3G10 alone is written as a single expression with no branch:
encode: x => 0.224282 * log10((x + 0.01) * 155.975327 + 1)
Every other format hands over to a second segment in the shadows, between 3.68 stops under grey (Canon C-Log3) and 5.17 under (Blackmagic Film Gen5), with S-Log3 landing on exactly 4.00. Apple Log's lower segment is a square root rather than a straight line. Log3G10 has no such join: the spacing tapers smoothly instead, and it is the offset rather than a toe that does it.
| Stop | Codes that stop occupies |
|---|---|
| −1 to 0 | 61.1 |
| −2 to −1 | 54.8 |
| −3 to −2 | 45.5 |
| −4 to −3 | 34.0 |
| −5 to −4 | 22.7 |
| −6 to −5 | 13.6 |
| −7 to −6 | 7.6 |
There is no cliff to stay above, which helps when you cannot control the light. But the taper is steep: the stop from seven under to six under is worth 7.6 code values out of 1023, one eighth of the 61.1 the stop immediately below grey gets.
The display side clips 4.5 stops before the format does
The conversion this site ships is decode → gamut matrix → shoulder → Rec.709 OETF. The shoulder is extended Reinhard with W = 8.0, and shoulder(8.0) evaluates to exactly 1.0, which the OETF then maps to exactly 1.0. So linear 8.0 is display white — 5.47 stops above middle grey, at code value 69.46%.
Above that the chain clamps. Log3G10 keeps recording for another 4.53 stops, spending 312 of its 1023 code values — 30.5% of the container — on tones the default conversion renders as flat white. That is what a Rec.709 delivery is, not a fault in the conversion. Getting those tones back is an exposure move on the log signal, which enters this chain before the shoulder, not a recovery move after the transform.
A saturated stage colour fails earlier and by a different route. The matrix step can drive an output channel negative, and the chain clamps that to zero before the shoulder ever sees it. Separate failure, separate fix.
The matrix, and what a row sum of 1.0 does not mean
REDWideGamutRGB → Rec.709 in this library is:
1.4127 -0.2784 -0.1343 -0.1084 1.2837 -0.1753 -0.0198 -0.1643 1.1841
Two rows sum to exactly 1 in double precision and the third to 0.9999999999999999, one unit in the last place. Feeding the matrix a neutral [0.18, 0.18, 0.18] returns 0.18 in all three channels to within 3×10⁻¹⁷.
That property means one thing: neutral in, neutral out. Grey stays grey through the gamut step. It does not mean the matrix removes a colour cast — a cast is a departure from neutral in the input, and the matrix carries it through, re-mapped into Rec.709 primaries. White balance is a separate correction, upstream of this.
Two of the eight miss 1.0 by more than rounding noise: Apple Log's outer rows by 1×10⁻⁴, which turns a neutral 0.18 into 0.180018 red against 0.179982 blue, 0.0003 of a stop; ARRI LogC3's first row by 1×10⁻⁶.
Log3G10's matrix is the mildest of the eight. Its largest diagonal term is 1.4127, against 1.8066 for V-Log and 1.8664 for Film Gen5, and a fully saturated camera-space green drives the worst output channel to −0.278, against −0.696 for V-Log and −0.588 for Apple Log. Less gamut stretch means less negative excursion to clamp on saturated stage colour.
Eight formats, eight different grey targets
This is why a target you learned on one camera is wrong on another, and by how much.
| Format | 18% grey | Stops above grey | Codes per stop at grey |
|---|---|---|---|
| Canon C-Log3 | 33.10% | 6.50 | 82.3 |
| RED Log3G10 | 33.33% | 10.00 | 63.2 |
| Blackmagic Film Gen5 | 38.36% | 10.27 | 59.8 |
| ARRI LogC3 | 39.10% | 8.26 | 72.3 |
| DJI D-Log M | 39.88% | 7.87 | 74.4 |
| Sony S-Log3 | 41.06% | 7.74 | 74.5 |
| Panasonic V-Log | 42.33% | 8.00 | 70.9 |
| Apple Log | 48.83% | 6.06 | 82.9 |
The targets span 15.7 points of code value, from 33.10% to 48.83%. Carry the wrong one and the error is measurable:
- Meter Log3G10 to another format's target and you overexpose: 2.40 stops on Apple Log's 48.83%, the largest mismatch in the set; 1.41 on V-Log's 42.33%; 1.21 on S-Log3's 41.06%; 1.03 on D-Log M's 39.88%; 0.91 on LogC3's 39.10%; 0.80 on Film Gen5's 38.36%.
- Going the other way, a Log3G10 target of 33.33% applied to S-Log3 leaves you 1.09 stops under; applied to Apple Log, 2.02 stops under.
Of the 56 ordered pairs in the eight-format matrix, only two come in under a tenth of a stop, and they are the same pairing both ways round: Canon C-Log3 at 33.10% and Log3G10 at 33.33%, 0.03 and 0.04 stops apart. Thirty-six of the 56 cost half a stop or more, and 19 cost a full stop or more.
The two formats with the most headroom also spend the fewest codes per stop — 63.2 for Log3G10 and 59.8 for Film Gen5, against 82.9 for Apple Log. Range and precision trade against each other inside a fixed 10-bit container. The same trade shows up in lattice size: in Log3G10, a 17×17×17 LUT puts a node every 1.01 stops, a 33×33×33 one every 0.51, and a 65×65×65 — the largest this site's uploader accepts — one every 0.25.
What follows for exposure
Only what the numbers above support:
- Meter to 33.3% on a waveform reading the recorded Log3G10 signal — 18% reflectance by definition of the format.
- Read overs with (reading − 33.3) ÷ 6.75. Good to 0.12 stops above grey; do not use it below grey.
- Do not reuse a target from another format. Against six of the other seven the correction runs from 0.80 to 2.40 stops; Canon C-Log3 is the only one that carries across.
- Expect the default conversion to clip at 5.47 stops over grey, with 4.53 stops still in the recording beyond it. Those tones come back by lowering exposure ahead of the transform, not by pulling highlights after it.
- Do not expect the matrix to fix a cast. It preserves neutral and does nothing else about colour balance.
Related: the FestivalLuts Academy, and S-Log3 exposure, read off the curve.
How these numbers were produced
Every figure above came from running Node against public/js/color-transforms.js, the transform library this site ships to the browser and imports server-side. It exports as a CommonJS module:
const CT = require('./public/js/color-transforms.js');
CT.encode('RED Log3G10', 0.18); // 0.33333291 → 33.333%
CT.decode('RED Log3G10', 1.0); // 184.32235
Math.log2(CT.decode('RED Log3G10', 1.0) / 0.18); // 10.00002
CT.encode('RED Log3G10', CT.WHITE); // 0.69461 → display clip
CT.toRec709('RED Log3G10', [0.3333, 0.3333, 0.3333]); // 0.37308
Method, per figure. Grey placement: encode(camera, 0.18), ×1023 and ×255 for the code equivalents. Headroom: log2(decode(camera, 1.0) / 0.18). Codes per stop at grey: encode(0.18·√2) − encode(0.18/√2), a centred difference across one stop. Cross-format error: log2(decode(shot, encode(target, 0.18)) / 0.18). Display clip: shoulder(x) = 1 at x = WHITE = 8.0 by construction, then encode(camera, 8.0). Matrix checks: row sums, and applyMatrix(m, [0.18, 0.18, 0.18]). Branch points: each curve's cut constant, as log2(cut / 0.18). Rec.709 column: toRec709 on the neutral code triplet. Lattice spacing: 1/(size−1) of the code range, over codes per stop.
Two cross-checks that the arithmetic is sound. decode(encode(0.18)) returns to 0.18 within 1×10⁻¹⁶ for all eight formats, and all eight land 18% grey on the same Rec.709 output, 37.31% — Apple Log's red channel 0.002 of a point off, from the matrix rounding noted above. Eight curves and eight matrices converging on one display value is what catches a transcription slip.
Sources
public/js/color-transforms.js— the transform library this site ships. It holds all eight encode and decode curves, the gamut matrices, the shared extended-Reinhard shoulder with W = 8.0, the Rec.709 OETF and the negative clamp. Every computed number above comes from this file.middleware/lutfile.js— the upload validator, which sets the accepted lattice range at 8 to 65: below 8 cannot express a grade, and 65 is a standard high-resolution export from Resolve, Lattice and Photoshop.- The homepage FAQ — that the creative looks here are 17×17×17 and the technical conversions 33×33×33, and that six conversions ship (S-Log3, C-Log3, Apple Log, Log3G10, V-Log, LogC3), Film Gen5 and D-Log being held back pending a Resolve cross-check.