Source: https://guthlabs.ai/docs/instruments/blackbody-color-temperature-rgb-approximation/

instrument / verified-clean

# Blackbody Color Temperature → RGB Approximation

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/blackbody-color-temperature-rgb-approximation/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/blackbody-color-temperature-rgb-approximation/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/blackbody-color-temperature-rgb-approximation/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/blackbody-color-temperature-rgb-approximation/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Audio, Music, Photography & Color

**Tranche**: tranche-5

**Evidence ID**: t5-034

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The honest-label statement is appropriate, but the exact published algorithm and citation are missing. Select and document one coefficient set, RGB color-space assumption, clamping rule, and rounding rule before implementation or claiming PASS.

### Formula and scope findings

- The specification names Tanner Helland / Mitchell Charity approximations but does not provide one exact formula, coefficient set, source citation, branch conditions, or output policy; these are not uniquely interchangeable algorithms.

- RGB rounding policy is unspecified: nearest integer, truncation, and clamping produce different swatches.

- The RGB color space, primaries, transfer function, and white-point assumptions are unspecified; the result should not be presented as colorimetrically defined RGB without those labels.

### Unit assumptions

- Input temperature is absolute temperature in kelvin (K), not degrees Celsius or mireds.

- The test calculations assume the commonly published Tanner Helland approximation with t=K/100: R=255 when t<=66, otherwise R=329.698727446*(t-60)^(-0.1332047592); G=99.4708025861*ln(t)-161.1195681661 when t<=66, otherwise G=288.1221695283*(t-60)^(-0.0755148492); B=0 when t<=19, B=138.5177312231*ln(t-10)-305.0447927307 when 19<t<66, and B=255 when t>=66.

- Expected outputs assume clamping each channel to 0..255 followed by nearest-integer rounding.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The approximation has an observable discontinuity at the t = 66 branch boundary: 6600 K produces approximately (255,255,253), while 6601 K produces approximately (255,252,255). Inputs at or below 0 K also reach ln(0) or an invalid logarithm and must be rejected.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "temperature_K": 1000
  },
  "expected_outputs": {
    "R": 255,
    "G": 68,
    "B": 0
  },
  "working": "t=1000/100=10. R=255 because t<=66. G=99.4708025861*ln(10)-161.1195681661=99.4708025861*2.302585093-161.1195681661≈229.03999-161.11957=67.92042→68. B=0 because t<=19. Result=(255,68,0)."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
