Infrared sensing — no human analog

What does a pit viper see?

Biological mid-IR bolometry — Planck's law plus a 0.003 °C threshold. Pure math, modeled in EML, mathematically verified.

What does a pit viper see?

human view (dark room) · pit viper view (37 °C mouse, IR-decoded)

Human — dark room
visible-light photons reaching retina:
0
body at 37.0°C radiates IR, not visible light
Pit viper — thermal map
20°C — same as room0.003 °C threshold42°C — fevered prey

See yourself in the viper’s view (front camera).

Phones don’t have IR sensors. We detect skin-tone pixels and render them as thermal blobs — close enough to feel the gap. Wave your hand slowly; the trail is the “0.003 °C resolution” in your hand.

tap below to enable the camera

The math behind it

Each function carries a @verify contract that compiles to a Lean theorem about its bounds. The same source compiles to C, Verilog, HLSL, and 28 more targets. View the experiment on GitHub →

planck_radiation.emlchain 1
module planck_radiation;

const PLANCK_H_J_S:    Real = 6.626e-34
const SPEED_C_M_S:     Real = 2.998e8
const BOLTZMANN_K_J_K: Real = 1.381e-23

@verify(lean, theorem = "planck_radiance_nonneg")
fn planck_radiance(wavelength_m: Real, temperature_k: Real) -> Real
    requires (wavelength_m > 0.0)
    requires (temperature_k > 0.0)
    ensures  (result >= 0.0)
{
    max(0.0,
        (2.0 * PLANCK_H_J_S * SPEED_C_M_S * SPEED_C_M_S
            / pow(wavelength_m, 5.0))
        / (exp((PLANCK_H_J_S * SPEED_C_M_S)
                / (wavelength_m * BOLTZMANN_K_J_K * temperature_k)) - 1.0)
    )
}
pit_organ.emlchain 0
module pit_organ;

const THRESHOLD_C:   Real = 0.003
const SENSITIVITY_C: Real = 1.0

@verify(lean, theorem = "pit_organ_response_nonneg")
fn pit_organ_response(delta_t_c: Real) -> Real
    ensures (result >= 0.0)
{
    max(0.0, (delta_t_c - THRESHOLD_C) / SENSITIVITY_C)
}
spatial_resolution.emlchain 1
module spatial_resolution;

const PI: Real = 3.14159265358979

@verify(lean, theorem = "spatial_resolution_in_range")
fn spatial_resolution(aperture_m: Real, depth_m: Real) -> Real
    requires (aperture_m >= 0.0)
    requires (depth_m > 0.0)
    ensures  (result >= 0.0)
    ensures  (result <= PI)
{
    clamp(2.0 * atan(aperture_m / (2.0 * depth_m)), 0.0, PI)
}

Same EML pipeline. Different sense.

Eight more cross-species sensor models live alongside this one — bat sonar, owl 3D hearing, pit-viper infrared, dog olfaction, pigeon magnetoreception, shark electric sense, mantis shrimp 16-channel hyperspectral, spider web vibration.

See all nine senses →