Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                
              
            
!

CSS

              
                
              
            
!

JS

              
                const width = 500;
const height = 500;
const canvas = document.createElement('canvas');
canvas.style.border = '1px solid #f0f0f0'
document.body.appendChild(canvas)

canvas.width = width * 2;
canvas.height = height * 2;
canvas.style.maxWidth = `min(${width}px, 100%)`;

const ctx = canvas.getContext("2d", { colorSpace: "display-p3" });
ctx.scale(window.devicePixelRatio, window.devicePixelRatio);

function scope(x) {
  return Math.max(Math.min(x, Math.PI), 0);
}

function sRGB_gamma(r, g, b) {
    r = r > 0.0031308
		? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)
		: r * 12.92;

	g = g > 0.0031308
		? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)
		: g * 12.92;

	b = b > 0.0031308
		? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)
		: b * 12.92;
  
  return [r, g, b];
}



function run(xyzData, rgbData) {
  function render(fixedWidth, fixedOffset, w, offset) {
    const data = Array.from(new Array(780 - 380), (_, idx) => {
      const x = idx;
      const total = 780 - 380;

      const sin1 = Math.sin(scope((idx - offset) / total * Math.PI * (total / w))) * .2;
      const sin2 = Math.sin(scope((idx - fixedOffset) / total * Math.PI * (total / fixedWidth))) * .1;

      return {
        wavelength: idx + 380,
        y: Math.max(sin1, sin2)
      }
    })

    let X = 0;
    let Y = 0;
    let Z = 0;
    
    let R = 0;
    let G = 0;
    let B = 0;

    for(let i=380; i<780; i++) {
      const xyz = xyzData.find(d => d.wavelength === i);
      const spectral = data[i - 380];
      X += xyz.x * spectral.y;
      Y += xyz.y * spectral.y;
      Z += xyz.z * spectral.y;

      const rgb = rgbData.find(d => d.wavelength === (i - i % 5));
      R += rgb.r * spectral.y;
      G += rgb.g * spectral.y;
      B += rgb.b * spectral.y;
    }

    const x = X / (X + Y + Z);
    const y = Y / (X + Y + Z);
    const z = Z / (X + Y + Z);
 
    // If you want to use the XYZ->RGB conversion, use this
    // const [r, g, b] = XYZ_to_sRGB(X, Y, Z);
    
    // If you want to use the rgb table, use the below instead of `XYZ_to_sRGB`
    let [r, g,  b] = window.sRGB_gamma(
      R / (R + G + B),
      G / (R + G + B),
      B / (R + G + B)
    );
    r *= 255;
    g *= 255;
    b *= 255;
 
    const x_ = x * width;
    const y_ = (1 - y) * height;
    
    // If you want clipping, uncomment this and wrap the code below with it
    // if(r>=0 && g>=0 && b>=0 && r<=255 && g<=255 && b<=255) {}
    
    ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;
    ctx.fillRect(x_ - 1, y_ - 1, 3, 3)
  }
  
  function raf(func) {
    requestAnimationFrame(func);
  }

  function renderNextStep(fixedOffset, fixedWidth, offset) {
    render(fixedWidth, fixedOffset, 47, offset)

    if(offset < 400 - 30) {
      raf(() => renderNextStep(fixedOffset, fixedWidth, offset + 5));
    }
    else {
      raf(() => renderNextFixed(fixedOffset + 5, fixedWidth));
    }
  }
  
  function renderNextFixed(fixedOffset, fixedWidth) {
    if(fixedOffset < 400 - 30) {
      raf(() => renderNextStep(fixedOffset, fixedWidth, 0))
    }
    else if(fixedWidth < 200) {
      const newWidth = fixedWidth + 5;
      raf(() => renderNextFixed(newWidth / 2 | 0, newWidth))
    }
  }

  renderNextFixed(10, 50)
}

// Data tables --------------------------------

var xyzTable = [
  {
    "wavelength": 360,
    "x": 0.0001299,
    "y": 0.000003917,
    "z": 0.0006061
  },
  {
    "wavelength": 361,
    "x": 0.000145847,
    "y": 0.000004393581,
    "z": 0.0006808792
  },
  {
    "wavelength": 362,
    "x": 0.0001638021,
    "y": 0.000004929604,
    "z": 0.0007651456
  },
  {
    "wavelength": 363,
    "x": 0.0001840037,
    "y": 0.000005532136,
    "z": 0.0008600124
  },
  {
    "wavelength": 364,
    "x": 0.0002066902,
    "y": 0.000006208245,
    "z": 0.0009665928
  },
  {
    "wavelength": 365,
    "x": 0.0002321,
    "y": 0.000006965,
    "z": 0.001086
  },
  {
    "wavelength": 366,
    "x": 0.000260728,
    "y": 0.000007813219,
    "z": 0.001220586
  },
  {
    "wavelength": 367,
    "x": 0.000293075,
    "y": 0.000008767336,
    "z": 0.001372729
  },
  {
    "wavelength": 368,
    "x": 0.000329388,
    "y": 0.000009839844,
    "z": 0.001543579
  },
  {
    "wavelength": 369,
    "x": 0.000369914,
    "y": 0.00001104323,
    "z": 0.001734286
  },
  {
    "wavelength": 370,
    "x": 0.0004149,
    "y": 0.00001239,
    "z": 0.001946
  },
  {
    "wavelength": 371,
    "x": 0.0004641587,
    "y": 0.00001388641,
    "z": 0.002177777
  },
  {
    "wavelength": 372,
    "x": 0.000518986,
    "y": 0.00001555728,
    "z": 0.002435809
  },
  {
    "wavelength": 373,
    "x": 0.000581854,
    "y": 0.00001744296,
    "z": 0.002731953
  },
  {
    "wavelength": 374,
    "x": 0.0006552347,
    "y": 0.00001958375,
    "z": 0.003078064
  },
  {
    "wavelength": 375,
    "x": 0.0007416,
    "y": 0.00002202,
    "z": 0.003486
  },
  {
    "wavelength": 376,
    "x": 0.0008450296,
    "y": 0.00002483965,
    "z": 0.003975227
  },
  {
    "wavelength": 377,
    "x": 0.0009645268,
    "y": 0.00002804126,
    "z": 0.00454088
  },
  {
    "wavelength": 378,
    "x": 0.001094949,
    "y": 0.00003153104,
    "z": 0.00515832
  },
  {
    "wavelength": 379,
    "x": 0.001231154,
    "y": 0.00003521521,
    "z": 0.005802907
  },
  {
    "wavelength": 380,
    "x": 0.001368,
    "y": 0.000039,
    "z": 0.006450001
  },
  {
    "wavelength": 381,
    "x": 0.00150205,
    "y": 0.0000428264,
    "z": 0.007083216
  },
  {
    "wavelength": 382,
    "x": 0.001642328,
    "y": 0.0000469146,
    "z": 0.007745488
  },
  {
    "wavelength": 383,
    "x": 0.001802382,
    "y": 0.0000515896,
    "z": 0.008501152
  },
  {
    "wavelength": 384,
    "x": 0.001995757,
    "y": 0.0000571764,
    "z": 0.009414544
  },
  {
    "wavelength": 385,
    "x": 0.002236,
    "y": 0.000064,
    "z": 0.01054999
  },
  {
    "wavelength": 386,
    "x": 0.002535385,
    "y": 0.00007234421,
    "z": 0.0119658
  },
  {
    "wavelength": 387,
    "x": 0.002892603,
    "y": 0.00008221224,
    "z": 0.01365587
  },
  {
    "wavelength": 388,
    "x": 0.003300829,
    "y": 0.00009350816,
    "z": 0.01558805
  },
  {
    "wavelength": 389,
    "x": 0.003753236,
    "y": 0.0001061361,
    "z": 0.01773015
  },
  {
    "wavelength": 390,
    "x": 0.004243,
    "y": 0.00012,
    "z": 0.02005001
  },
  {
    "wavelength": 391,
    "x": 0.004762389,
    "y": 0.000134984,
    "z": 0.02251136
  },
  {
    "wavelength": 392,
    "x": 0.005330048,
    "y": 0.000151492,
    "z": 0.02520288
  },
  {
    "wavelength": 393,
    "x": 0.005978712,
    "y": 0.000170208,
    "z": 0.02827972
  },
  {
    "wavelength": 394,
    "x": 0.006741117,
    "y": 0.000191816,
    "z": 0.03189704
  },
  {
    "wavelength": 395,
    "x": 0.00765,
    "y": 0.000217,
    "z": 0.03621
  },
  {
    "wavelength": 396,
    "x": 0.008751373,
    "y": 0.0002469067,
    "z": 0.04143771
  },
  {
    "wavelength": 397,
    "x": 0.01002888,
    "y": 0.00028124,
    "z": 0.04750372
  },
  {
    "wavelength": 398,
    "x": 0.0114217,
    "y": 0.00031852,
    "z": 0.05411988
  },
  {
    "wavelength": 399,
    "x": 0.01286901,
    "y": 0.0003572667,
    "z": 0.06099803
  },
  {
    "wavelength": 400,
    "x": 0.01431,
    "y": 0.000396,
    "z": 0.06785001
  },
  {
    "wavelength": 401,
    "x": 0.01570443,
    "y": 0.0004337147,
    "z": 0.07448632
  },
  {
    "wavelength": 402,
    "x": 0.01714744,
    "y": 0.000473024,
    "z": 0.08136156
  },
  {
    "wavelength": 403,
    "x": 0.01878122,
    "y": 0.000517876,
    "z": 0.08915364
  },
  {
    "wavelength": 404,
    "x": 0.02074801,
    "y": 0.0005722187,
    "z": 0.09854048
  },
  {
    "wavelength": 405,
    "x": 0.02319,
    "y": 0.00064,
    "z": 0.1102
  },
  {
    "wavelength": 406,
    "x": 0.02620736,
    "y": 0.00072456,
    "z": 0.1246133
  },
  {
    "wavelength": 407,
    "x": 0.02978248,
    "y": 0.0008255,
    "z": 0.1417017
  },
  {
    "wavelength": 408,
    "x": 0.03388092,
    "y": 0.00094116,
    "z": 0.1613035
  },
  {
    "wavelength": 409,
    "x": 0.03846824,
    "y": 0.00106988,
    "z": 0.1832568
  },
  {
    "wavelength": 410,
    "x": 0.04351,
    "y": 0.00121,
    "z": 0.2074
  },
  {
    "wavelength": 411,
    "x": 0.0489956,
    "y": 0.001362091,
    "z": 0.2336921
  },
  {
    "wavelength": 412,
    "x": 0.0550226,
    "y": 0.001530752,
    "z": 0.2626114
  },
  {
    "wavelength": 413,
    "x": 0.0617188,
    "y": 0.001720368,
    "z": 0.2947746
  },
  {
    "wavelength": 414,
    "x": 0.069212,
    "y": 0.001935323,
    "z": 0.3307985
  },
  {
    "wavelength": 415,
    "x": 0.07763,
    "y": 0.00218,
    "z": 0.3713
  },
  {
    "wavelength": 416,
    "x": 0.08695811,
    "y": 0.0024548,
    "z": 0.4162091
  },
  {
    "wavelength": 417,
    "x": 0.09717672,
    "y": 0.002764,
    "z": 0.4654642
  },
  {
    "wavelength": 418,
    "x": 0.1084063,
    "y": 0.0031178,
    "z": 0.5196948
  },
  {
    "wavelength": 419,
    "x": 0.1207672,
    "y": 0.0035264,
    "z": 0.5795303
  },
  {
    "wavelength": 420,
    "x": 0.13438,
    "y": 0.004,
    "z": 0.6456
  },
  {
    "wavelength": 421,
    "x": 0.1493582,
    "y": 0.00454624,
    "z": 0.7184838
  },
  {
    "wavelength": 422,
    "x": 0.1653957,
    "y": 0.00515932,
    "z": 0.7967133
  },
  {
    "wavelength": 423,
    "x": 0.1819831,
    "y": 0.00582928,
    "z": 0.8778459
  },
  {
    "wavelength": 424,
    "x": 0.198611,
    "y": 0.00654616,
    "z": 0.959439
  },
  {
    "wavelength": 425,
    "x": 0.21477,
    "y": 0.0073,
    "z": 1.0390501
  },
  {
    "wavelength": 426,
    "x": 0.2301868,
    "y": 0.008086507,
    "z": 1.1153673
  },
  {
    "wavelength": 427,
    "x": 0.2448797,
    "y": 0.00890872,
    "z": 1.1884971
  },
  {
    "wavelength": 428,
    "x": 0.2587773,
    "y": 0.00976768,
    "z": 1.2581233
  },
  {
    "wavelength": 429,
    "x": 0.2718079,
    "y": 0.01066443,
    "z": 1.3239296
  },
  {
    "wavelength": 430,
    "x": 0.2839,
    "y": 0.0116,
    "z": 1.3856
  },
  {
    "wavelength": 431,
    "x": 0.2949438,
    "y": 0.01257317,
    "z": 1.4426352
  },
  {
    "wavelength": 432,
    "x": 0.3048965,
    "y": 0.01358272,
    "z": 1.4948035
  },
  {
    "wavelength": 433,
    "x": 0.3137873,
    "y": 0.01462968,
    "z": 1.5421903
  },
  {
    "wavelength": 434,
    "x": 0.3216454,
    "y": 0.01571509,
    "z": 1.5848807
  },
  {
    "wavelength": 435,
    "x": 0.3285,
    "y": 0.01684,
    "z": 1.62296
  },
  {
    "wavelength": 436,
    "x": 0.3343513,
    "y": 0.01800736,
    "z": 1.6564048
  },
  {
    "wavelength": 437,
    "x": 0.3392101,
    "y": 0.01921448,
    "z": 1.6852959
  },
  {
    "wavelength": 438,
    "x": 0.3431213,
    "y": 0.02045392,
    "z": 1.7098745
  },
  {
    "wavelength": 439,
    "x": 0.3461296,
    "y": 0.02171824,
    "z": 1.7303821
  },
  {
    "wavelength": 440,
    "x": 0.34828,
    "y": 0.023,
    "z": 1.74706
  },
  {
    "wavelength": 441,
    "x": 0.3495999,
    "y": 0.02429461,
    "z": 1.7600446
  },
  {
    "wavelength": 442,
    "x": 0.3501474,
    "y": 0.02561024,
    "z": 1.7696233
  },
  {
    "wavelength": 443,
    "x": 0.350013,
    "y": 0.02695857,
    "z": 1.7762637
  },
  {
    "wavelength": 444,
    "x": 0.349287,
    "y": 0.02835125,
    "z": 1.7804334
  },
  {
    "wavelength": 445,
    "x": 0.34806,
    "y": 0.0298,
    "z": 1.7826
  },
  {
    "wavelength": 446,
    "x": 0.3463733,
    "y": 0.03131083,
    "z": 1.7829682
  },
  {
    "wavelength": 447,
    "x": 0.3442624,
    "y": 0.03288368,
    "z": 1.7816998
  },
  {
    "wavelength": 448,
    "x": 0.3418088,
    "y": 0.03452112,
    "z": 1.7791982
  },
  {
    "wavelength": 449,
    "x": 0.3390941,
    "y": 0.03622571,
    "z": 1.7758671
  },
  {
    "wavelength": 450,
    "x": 0.3362,
    "y": 0.038,
    "z": 1.77211
  },
  {
    "wavelength": 451,
    "x": 0.3331977,
    "y": 0.03984667,
    "z": 1.7682589
  },
  {
    "wavelength": 452,
    "x": 0.3300411,
    "y": 0.041768,
    "z": 1.764039
  },
  {
    "wavelength": 453,
    "x": 0.3266357,
    "y": 0.043766,
    "z": 1.7589438
  },
  {
    "wavelength": 454,
    "x": 0.3228868,
    "y": 0.04584267,
    "z": 1.7524663
  },
  {
    "wavelength": 455,
    "x": 0.3187,
    "y": 0.048,
    "z": 1.7441
  },
  {
    "wavelength": 456,
    "x": 0.3140251,
    "y": 0.05024368,
    "z": 1.7335595
  },
  {
    "wavelength": 457,
    "x": 0.308884,
    "y": 0.05257304,
    "z": 1.7208581
  },
  {
    "wavelength": 458,
    "x": 0.3032904,
    "y": 0.05498056,
    "z": 1.7059369
  },
  {
    "wavelength": 459,
    "x": 0.2972579,
    "y": 0.05745872,
    "z": 1.6887372
  },
  {
    "wavelength": 460,
    "x": 0.2908,
    "y": 0.06,
    "z": 1.6692
  },
  {
    "wavelength": 461,
    "x": 0.2839701,
    "y": 0.06260197,
    "z": 1.6475287
  },
  {
    "wavelength": 462,
    "x": 0.2767214,
    "y": 0.06527752,
    "z": 1.6234127
  },
  {
    "wavelength": 463,
    "x": 0.2689178,
    "y": 0.06804208,
    "z": 1.5960223
  },
  {
    "wavelength": 464,
    "x": 0.2604227,
    "y": 0.07091109,
    "z": 1.564528
  },
  {
    "wavelength": 465,
    "x": 0.2511,
    "y": 0.0739,
    "z": 1.5281
  },
  {
    "wavelength": 466,
    "x": 0.2408475,
    "y": 0.077016,
    "z": 1.4861114
  },
  {
    "wavelength": 467,
    "x": 0.2298512,
    "y": 0.0802664,
    "z": 1.4395215
  },
  {
    "wavelength": 468,
    "x": 0.2184072,
    "y": 0.0836668,
    "z": 1.3898799
  },
  {
    "wavelength": 469,
    "x": 0.2068115,
    "y": 0.0872328,
    "z": 1.3387362
  },
  {
    "wavelength": 470,
    "x": 0.19536,
    "y": 0.09098,
    "z": 1.28764
  },
  {
    "wavelength": 471,
    "x": 0.1842136,
    "y": 0.09491755,
    "z": 1.2374223
  },
  {
    "wavelength": 472,
    "x": 0.1733273,
    "y": 0.09904584,
    "z": 1.1878243
  },
  {
    "wavelength": 473,
    "x": 0.1626881,
    "y": 0.1033674,
    "z": 1.1387611
  },
  {
    "wavelength": 474,
    "x": 0.1522833,
    "y": 0.1078846,
    "z": 1.090148
  },
  {
    "wavelength": 475,
    "x": 0.1421,
    "y": 0.1126,
    "z": 1.0419
  },
  {
    "wavelength": 476,
    "x": 0.1321786,
    "y": 0.117532,
    "z": 0.9941976
  },
  {
    "wavelength": 477,
    "x": 0.1225696,
    "y": 0.1226744,
    "z": 0.9473473
  },
  {
    "wavelength": 478,
    "x": 0.1132752,
    "y": 0.1279928,
    "z": 0.9014531
  },
  {
    "wavelength": 479,
    "x": 0.1042979,
    "y": 0.1334528,
    "z": 0.8566193
  },
  {
    "wavelength": 480,
    "x": 0.09564,
    "y": 0.13902,
    "z": 0.8129501
  },
  {
    "wavelength": 481,
    "x": 0.08729955,
    "y": 0.1446764,
    "z": 0.7705173
  },
  {
    "wavelength": 482,
    "x": 0.07930804,
    "y": 0.1504693,
    "z": 0.7294448
  },
  {
    "wavelength": 483,
    "x": 0.07171776,
    "y": 0.1564619,
    "z": 0.6899136
  },
  {
    "wavelength": 484,
    "x": 0.06458099,
    "y": 0.1627177,
    "z": 0.6521049
  },
  {
    "wavelength": 485,
    "x": 0.05795001,
    "y": 0.1693,
    "z": 0.6162
  },
  {
    "wavelength": 486,
    "x": 0.05186211,
    "y": 0.1762431,
    "z": 0.5823286
  },
  {
    "wavelength": 487,
    "x": 0.04628152,
    "y": 0.1835581,
    "z": 0.5504162
  },
  {
    "wavelength": 488,
    "x": 0.04115088,
    "y": 0.1912735,
    "z": 0.5203376
  },
  {
    "wavelength": 489,
    "x": 0.03641283,
    "y": 0.199418,
    "z": 0.4919673
  },
  {
    "wavelength": 490,
    "x": 0.03201,
    "y": 0.20802,
    "z": 0.46518
  },
  {
    "wavelength": 491,
    "x": 0.0279172,
    "y": 0.2171199,
    "z": 0.4399246
  },
  {
    "wavelength": 492,
    "x": 0.0241444,
    "y": 0.2267345,
    "z": 0.4161836
  },
  {
    "wavelength": 493,
    "x": 0.020687,
    "y": 0.2368571,
    "z": 0.3938822
  },
  {
    "wavelength": 494,
    "x": 0.0175404,
    "y": 0.2474812,
    "z": 0.3729459
  },
  {
    "wavelength": 495,
    "x": 0.0147,
    "y": 0.2586,
    "z": 0.3533
  },
  {
    "wavelength": 496,
    "x": 0.01216179,
    "y": 0.2701849,
    "z": 0.3348578
  },
  {
    "wavelength": 497,
    "x": 0.00991996,
    "y": 0.2822939,
    "z": 0.3175521
  },
  {
    "wavelength": 498,
    "x": 0.00796724,
    "y": 0.2950505,
    "z": 0.3013375
  },
  {
    "wavelength": 499,
    "x": 0.006296346,
    "y": 0.308578,
    "z": 0.2861686
  },
  {
    "wavelength": 500,
    "x": 0.0049,
    "y": 0.323,
    "z": 0.272
  },
  {
    "wavelength": 501,
    "x": 0.003777173,
    "y": 0.3384021,
    "z": 0.2588171
  },
  {
    "wavelength": 502,
    "x": 0.00294532,
    "y": 0.3546858,
    "z": 0.2464838
  },
  {
    "wavelength": 503,
    "x": 0.00242488,
    "y": 0.3716986,
    "z": 0.2347718
  },
  {
    "wavelength": 504,
    "x": 0.002236293,
    "y": 0.3892875,
    "z": 0.2234533
  },
  {
    "wavelength": 505,
    "x": 0.0024,
    "y": 0.4073,
    "z": 0.2123
  },
  {
    "wavelength": 506,
    "x": 0.00292552,
    "y": 0.4256299,
    "z": 0.2011692
  },
  {
    "wavelength": 507,
    "x": 0.00383656,
    "y": 0.4443096,
    "z": 0.1901196
  },
  {
    "wavelength": 508,
    "x": 0.00517484,
    "y": 0.4633944,
    "z": 0.1792254
  },
  {
    "wavelength": 509,
    "x": 0.00698208,
    "y": 0.4829395,
    "z": 0.1685608
  },
  {
    "wavelength": 510,
    "x": 0.0093,
    "y": 0.503,
    "z": 0.1582
  },
  {
    "wavelength": 511,
    "x": 0.01214949,
    "y": 0.5235693,
    "z": 0.1481383
  },
  {
    "wavelength": 512,
    "x": 0.01553588,
    "y": 0.544512,
    "z": 0.1383758
  },
  {
    "wavelength": 513,
    "x": 0.01947752,
    "y": 0.56569,
    "z": 0.1289942
  },
  {
    "wavelength": 514,
    "x": 0.02399277,
    "y": 0.5869653,
    "z": 0.1200751
  },
  {
    "wavelength": 515,
    "x": 0.0291,
    "y": 0.6082,
    "z": 0.1117
  },
  {
    "wavelength": 516,
    "x": 0.03481485,
    "y": 0.6293456,
    "z": 0.1039048
  },
  {
    "wavelength": 517,
    "x": 0.04112016,
    "y": 0.6503068,
    "z": 0.09666748
  },
  {
    "wavelength": 518,
    "x": 0.04798504,
    "y": 0.6708752,
    "z": 0.08998272
  },
  {
    "wavelength": 519,
    "x": 0.05537861,
    "y": 0.6908424,
    "z": 0.08384531
  },
  {
    "wavelength": 520,
    "x": 0.06327,
    "y": 0.71,
    "z": 0.07824999
  },
  {
    "wavelength": 521,
    "x": 0.07163501,
    "y": 0.7281852,
    "z": 0.07320899
  },
  {
    "wavelength": 522,
    "x": 0.08046224,
    "y": 0.7454636,
    "z": 0.06867816
  },
  {
    "wavelength": 523,
    "x": 0.08973996,
    "y": 0.7619694,
    "z": 0.06456784
  },
  {
    "wavelength": 524,
    "x": 0.09945645,
    "y": 0.7778368,
    "z": 0.06078835
  },
  {
    "wavelength": 525,
    "x": 0.1096,
    "y": 0.7932,
    "z": 0.05725001
  },
  {
    "wavelength": 526,
    "x": 0.1201674,
    "y": 0.8081104,
    "z": 0.05390435
  },
  {
    "wavelength": 527,
    "x": 0.1311145,
    "y": 0.8224962,
    "z": 0.05074664
  },
  {
    "wavelength": 528,
    "x": 0.1423679,
    "y": 0.8363068,
    "z": 0.04775276
  },
  {
    "wavelength": 529,
    "x": 0.1538542,
    "y": 0.8494916,
    "z": 0.04489859
  },
  {
    "wavelength": 530,
    "x": 0.1655,
    "y": 0.862,
    "z": 0.04216
  },
  {
    "wavelength": 531,
    "x": 0.1772571,
    "y": 0.8738108,
    "z": 0.03950728
  },
  {
    "wavelength": 532,
    "x": 0.18914,
    "y": 0.8849624,
    "z": 0.03693564
  },
  {
    "wavelength": 533,
    "x": 0.2011694,
    "y": 0.8954936,
    "z": 0.03445836
  },
  {
    "wavelength": 534,
    "x": 0.2133658,
    "y": 0.9054432,
    "z": 0.03208872
  },
  {
    "wavelength": 535,
    "x": 0.2257499,
    "y": 0.9148501,
    "z": 0.02984
  },
  {
    "wavelength": 536,
    "x": 0.2383209,
    "y": 0.9237348,
    "z": 0.02771181
  },
  {
    "wavelength": 537,
    "x": 0.2510668,
    "y": 0.9320924,
    "z": 0.02569444
  },
  {
    "wavelength": 538,
    "x": 0.2639922,
    "y": 0.9399226,
    "z": 0.02378716
  },
  {
    "wavelength": 539,
    "x": 0.2771017,
    "y": 0.9472252,
    "z": 0.02198925
  },
  {
    "wavelength": 540,
    "x": 0.2904,
    "y": 0.954,
    "z": 0.0203
  },
  {
    "wavelength": 541,
    "x": 0.3038912,
    "y": 0.9602561,
    "z": 0.01871805
  },
  {
    "wavelength": 542,
    "x": 0.3175726,
    "y": 0.9660074,
    "z": 0.01724036
  },
  {
    "wavelength": 543,
    "x": 0.3314384,
    "y": 0.9712606,
    "z": 0.01586364
  },
  {
    "wavelength": 544,
    "x": 0.3454828,
    "y": 0.9760225,
    "z": 0.01458461
  },
  {
    "wavelength": 545,
    "x": 0.3597,
    "y": 0.9803,
    "z": 0.0134
  },
  {
    "wavelength": 546,
    "x": 0.3740839,
    "y": 0.9840924,
    "z": 0.01230723
  },
  {
    "wavelength": 547,
    "x": 0.3886396,
    "y": 0.9874182,
    "z": 0.01130188
  },
  {
    "wavelength": 548,
    "x": 0.4033784,
    "y": 0.9903128,
    "z": 0.01037792
  },
  {
    "wavelength": 549,
    "x": 0.4183115,
    "y": 0.9928116,
    "z": 0.009529306
  },
  {
    "wavelength": 550,
    "x": 0.4334499,
    "y": 0.9949501,
    "z": 0.008749999
  },
  {
    "wavelength": 551,
    "x": 0.4487953,
    "y": 0.9967108,
    "z": 0.0080352
  },
  {
    "wavelength": 552,
    "x": 0.464336,
    "y": 0.9980983,
    "z": 0.0073816
  },
  {
    "wavelength": 553,
    "x": 0.480064,
    "y": 0.999112,
    "z": 0.0067854
  },
  {
    "wavelength": 554,
    "x": 0.4959713,
    "y": 0.9997482,
    "z": 0.0062428
  },
  {
    "wavelength": 555,
    "x": 0.5120501,
    "y": 1,
    "z": 0.005749999
  },
  {
    "wavelength": 556,
    "x": 0.5282959,
    "y": 0.9998567,
    "z": 0.0053036
  },
  {
    "wavelength": 557,
    "x": 0.5446916,
    "y": 0.9993046,
    "z": 0.0048998
  },
  {
    "wavelength": 558,
    "x": 0.5612094,
    "y": 0.9983255,
    "z": 0.0045342
  },
  {
    "wavelength": 559,
    "x": 0.5778215,
    "y": 0.9968987,
    "z": 0.0042024
  },
  {
    "wavelength": 560,
    "x": 0.5945,
    "y": 0.995,
    "z": 0.0039
  },
  {
    "wavelength": 561,
    "x": 0.6112209,
    "y": 0.9926005,
    "z": 0.0036232
  },
  {
    "wavelength": 562,
    "x": 0.6279758,
    "y": 0.9897426,
    "z": 0.0033706
  },
  {
    "wavelength": 563,
    "x": 0.6447602,
    "y": 0.9864444,
    "z": 0.0031414
  },
  {
    "wavelength": 564,
    "x": 0.6615697,
    "y": 0.9827241,
    "z": 0.0029348
  },
  {
    "wavelength": 565,
    "x": 0.6784,
    "y": 0.9786,
    "z": 0.002749999
  },
  {
    "wavelength": 566,
    "x": 0.6952392,
    "y": 0.9740837,
    "z": 0.0025852
  },
  {
    "wavelength": 567,
    "x": 0.7120586,
    "y": 0.9691712,
    "z": 0.0024386
  },
  {
    "wavelength": 568,
    "x": 0.7288284,
    "y": 0.9638568,
    "z": 0.0023094
  },
  {
    "wavelength": 569,
    "x": 0.7455188,
    "y": 0.9581349,
    "z": 0.0021968
  },
  {
    "wavelength": 570,
    "x": 0.7621,
    "y": 0.952,
    "z": 0.0021
  },
  {
    "wavelength": 571,
    "x": 0.7785432,
    "y": 0.9454504,
    "z": 0.002017733
  },
  {
    "wavelength": 572,
    "x": 0.7948256,
    "y": 0.9384992,
    "z": 0.0019482
  },
  {
    "wavelength": 573,
    "x": 0.8109264,
    "y": 0.9311628,
    "z": 0.0018898
  },
  {
    "wavelength": 574,
    "x": 0.8268248,
    "y": 0.9234576,
    "z": 0.001840933
  },
  {
    "wavelength": 575,
    "x": 0.8425,
    "y": 0.9154,
    "z": 0.0018
  },
  {
    "wavelength": 576,
    "x": 0.8579325,
    "y": 0.9070064,
    "z": 0.001766267
  },
  {
    "wavelength": 577,
    "x": 0.8730816,
    "y": 0.8982772,
    "z": 0.0017378
  },
  {
    "wavelength": 578,
    "x": 0.8878944,
    "y": 0.8892048,
    "z": 0.0017112
  },
  {
    "wavelength": 579,
    "x": 0.9023181,
    "y": 0.8797816,
    "z": 0.001683067
  },
  {
    "wavelength": 580,
    "x": 0.9163,
    "y": 0.87,
    "z": 0.001650001
  },
  {
    "wavelength": 581,
    "x": 0.9297995,
    "y": 0.8598613,
    "z": 0.001610133
  },
  {
    "wavelength": 582,
    "x": 0.9427984,
    "y": 0.849392,
    "z": 0.0015644
  },
  {
    "wavelength": 583,
    "x": 0.9552776,
    "y": 0.838622,
    "z": 0.0015136
  },
  {
    "wavelength": 584,
    "x": 0.9672179,
    "y": 0.8275813,
    "z": 0.001458533
  },
  {
    "wavelength": 585,
    "x": 0.9786,
    "y": 0.8163,
    "z": 0.0014
  },
  {
    "wavelength": 586,
    "x": 0.9893856,
    "y": 0.8047947,
    "z": 0.001336667
  },
  {
    "wavelength": 587,
    "x": 0.9995488,
    "y": 0.793082,
    "z": 0.00127
  },
  {
    "wavelength": 588,
    "x": 1.0090892,
    "y": 0.781192,
    "z": 0.001205
  },
  {
    "wavelength": 589,
    "x": 1.0180064,
    "y": 0.7691547,
    "z": 0.001146667
  },
  {
    "wavelength": 590,
    "x": 1.0263,
    "y": 0.757,
    "z": 0.0011
  },
  {
    "wavelength": 591,
    "x": 1.0339827,
    "y": 0.7447541,
    "z": 0.0010688
  },
  {
    "wavelength": 592,
    "x": 1.040986,
    "y": 0.7324224,
    "z": 0.0010494
  },
  {
    "wavelength": 593,
    "x": 1.047188,
    "y": 0.7200036,
    "z": 0.0010356
  },
  {
    "wavelength": 594,
    "x": 1.0524667,
    "y": 0.7074965,
    "z": 0.0010212
  },
  {
    "wavelength": 595,
    "x": 1.0567,
    "y": 0.6949,
    "z": 0.001
  },
  {
    "wavelength": 596,
    "x": 1.0597944,
    "y": 0.6822192,
    "z": 0.00096864
  },
  {
    "wavelength": 597,
    "x": 1.0617992,
    "y": 0.6694716,
    "z": 0.00092992
  },
  {
    "wavelength": 598,
    "x": 1.0628068,
    "y": 0.6566744,
    "z": 0.00088688
  },
  {
    "wavelength": 599,
    "x": 1.0629096,
    "y": 0.6438448,
    "z": 0.00084256
  },
  {
    "wavelength": 600,
    "x": 1.0622,
    "y": 0.631,
    "z": 0.0008
  },
  {
    "wavelength": 601,
    "x": 1.0607352,
    "y": 0.6181555,
    "z": 0.00076096
  },
  {
    "wavelength": 602,
    "x": 1.0584436,
    "y": 0.6053144,
    "z": 0.00072368
  },
  {
    "wavelength": 603,
    "x": 1.0552244,
    "y": 0.5924756,
    "z": 0.00068592
  },
  {
    "wavelength": 604,
    "x": 1.0509768,
    "y": 0.5796379,
    "z": 0.00064544
  },
  {
    "wavelength": 605,
    "x": 1.0456,
    "y": 0.5668,
    "z": 0.0006
  },
  {
    "wavelength": 606,
    "x": 1.0390369,
    "y": 0.5539611,
    "z": 0.0005478667
  },
  {
    "wavelength": 607,
    "x": 1.0313608,
    "y": 0.5411372,
    "z": 0.0004916
  },
  {
    "wavelength": 608,
    "x": 1.0226662,
    "y": 0.5283528,
    "z": 0.0004354
  },
  {
    "wavelength": 609,
    "x": 1.0130477,
    "y": 0.5156323,
    "z": 0.0003834667
  },
  {
    "wavelength": 610,
    "x": 1.0026,
    "y": 0.503,
    "z": 0.00034
  },
  {
    "wavelength": 611,
    "x": 0.9913675,
    "y": 0.4904688,
    "z": 0.0003072533
  },
  {
    "wavelength": 612,
    "x": 0.9793314,
    "y": 0.4780304,
    "z": 0.00028316
  },
  {
    "wavelength": 613,
    "x": 0.9664916,
    "y": 0.4656776,
    "z": 0.00026544
  },
  {
    "wavelength": 614,
    "x": 0.9528479,
    "y": 0.4534032,
    "z": 0.0002518133
  },
  {
    "wavelength": 615,
    "x": 0.9384,
    "y": 0.4412,
    "z": 0.00024
  },
  {
    "wavelength": 616,
    "x": 0.923194,
    "y": 0.42908,
    "z": 0.0002295467
  },
  {
    "wavelength": 617,
    "x": 0.907244,
    "y": 0.417036,
    "z": 0.00022064
  },
  {
    "wavelength": 618,
    "x": 0.890502,
    "y": 0.405032,
    "z": 0.00021196
  },
  {
    "wavelength": 619,
    "x": 0.87292,
    "y": 0.393032,
    "z": 0.0002021867
  },
  {
    "wavelength": 620,
    "x": 0.8544499,
    "y": 0.381,
    "z": 0.00019
  },
  {
    "wavelength": 621,
    "x": 0.835084,
    "y": 0.3689184,
    "z": 0.0001742133
  },
  {
    "wavelength": 622,
    "x": 0.814946,
    "y": 0.3568272,
    "z": 0.00015564
  },
  {
    "wavelength": 623,
    "x": 0.794186,
    "y": 0.3447768,
    "z": 0.00013596
  },
  {
    "wavelength": 624,
    "x": 0.772954,
    "y": 0.3328176,
    "z": 0.0001168533
  },
  {
    "wavelength": 625,
    "x": 0.7514,
    "y": 0.321,
    "z": 0.0001
  },
  {
    "wavelength": 626,
    "x": 0.7295836,
    "y": 0.3093381,
    "z": 0.00008613333
  },
  {
    "wavelength": 627,
    "x": 0.7075888,
    "y": 0.2978504,
    "z": 0.0000746
  },
  {
    "wavelength": 628,
    "x": 0.6856022,
    "y": 0.2865936,
    "z": 0.000065
  },
  {
    "wavelength": 629,
    "x": 0.6638104,
    "y": 0.2756245,
    "z": 0.00005693333
  },
  {
    "wavelength": 630,
    "x": 0.6424,
    "y": 0.265,
    "z": 0.00004999999
  },
  {
    "wavelength": 631,
    "x": 0.6215149,
    "y": 0.2547632,
    "z": 0.00004416
  },
  {
    "wavelength": 632,
    "x": 0.6011138,
    "y": 0.2448896,
    "z": 0.00003948
  },
  {
    "wavelength": 633,
    "x": 0.5811052,
    "y": 0.2353344,
    "z": 0.00003572
  },
  {
    "wavelength": 634,
    "x": 0.5613977,
    "y": 0.2260528,
    "z": 0.00003264
  },
  {
    "wavelength": 635,
    "x": 0.5419,
    "y": 0.217,
    "z": 0.00003
  },
  {
    "wavelength": 636,
    "x": 0.5225995,
    "y": 0.2081616,
    "z": 0.00002765333
  },
  {
    "wavelength": 637,
    "x": 0.5035464,
    "y": 0.1995488,
    "z": 0.00002556
  },
  {
    "wavelength": 638,
    "x": 0.4847436,
    "y": 0.1911552,
    "z": 0.00002364
  },
  {
    "wavelength": 639,
    "x": 0.4661939,
    "y": 0.1829744,
    "z": 0.00002181333
  },
  {
    "wavelength": 640,
    "x": 0.4479,
    "y": 0.175,
    "z": 0.00002
  },
  {
    "wavelength": 641,
    "x": 0.4298613,
    "y": 0.1672235,
    "z": 0.00001813333
  },
  {
    "wavelength": 642,
    "x": 0.412098,
    "y": 0.1596464,
    "z": 0.0000162
  },
  {
    "wavelength": 643,
    "x": 0.394644,
    "y": 0.1522776,
    "z": 0.0000142
  },
  {
    "wavelength": 644,
    "x": 0.3775333,
    "y": 0.1451259,
    "z": 0.00001213333
  },
  {
    "wavelength": 645,
    "x": 0.3608,
    "y": 0.1382,
    "z": 0.00001
  },
  {
    "wavelength": 646,
    "x": 0.3444563,
    "y": 0.1315003,
    "z": 0.000007733333
  },
  {
    "wavelength": 647,
    "x": 0.3285168,
    "y": 0.1250248,
    "z": 0.0000054
  },
  {
    "wavelength": 648,
    "x": 0.3130192,
    "y": 0.1187792,
    "z": 0.0000032
  },
  {
    "wavelength": 649,
    "x": 0.2980011,
    "y": 0.1127691,
    "z": 0.000001333333
  },
  {
    "wavelength": 650,
    "x": 0.2835,
    "y": 0.107,
    "z": 0
  },
  {
    "wavelength": 651,
    "x": 0.2695448,
    "y": 0.1014762,
    "z": 0
  },
  {
    "wavelength": 652,
    "x": 0.2561184,
    "y": 0.09618864,
    "z": 0
  },
  {
    "wavelength": 653,
    "x": 0.2431896,
    "y": 0.09112296,
    "z": 0
  },
  {
    "wavelength": 654,
    "x": 0.2307272,
    "y": 0.08626485,
    "z": 0
  },
  {
    "wavelength": 655,
    "x": 0.2187,
    "y": 0.0816,
    "z": 0
  },
  {
    "wavelength": 656,
    "x": 0.2070971,
    "y": 0.07712064,
    "z": 0
  },
  {
    "wavelength": 657,
    "x": 0.1959232,
    "y": 0.07282552,
    "z": 0
  },
  {
    "wavelength": 658,
    "x": 0.1851708,
    "y": 0.06871008,
    "z": 0
  },
  {
    "wavelength": 659,
    "x": 0.1748323,
    "y": 0.06476976,
    "z": 0
  },
  {
    "wavelength": 660,
    "x": 0.1649,
    "y": 0.061,
    "z": 0
  },
  {
    "wavelength": 661,
    "x": 0.1553667,
    "y": 0.05739621,
    "z": 0
  },
  {
    "wavelength": 662,
    "x": 0.14623,
    "y": 0.05395504,
    "z": 0
  },
  {
    "wavelength": 663,
    "x": 0.13749,
    "y": 0.05067376,
    "z": 0
  },
  {
    "wavelength": 664,
    "x": 0.1291467,
    "y": 0.04754965,
    "z": 0
  },
  {
    "wavelength": 665,
    "x": 0.1212,
    "y": 0.04458,
    "z": 0
  },
  {
    "wavelength": 666,
    "x": 0.1136397,
    "y": 0.04175872,
    "z": 0
  },
  {
    "wavelength": 667,
    "x": 0.106465,
    "y": 0.03908496,
    "z": 0
  },
  {
    "wavelength": 668,
    "x": 0.09969044,
    "y": 0.03656384,
    "z": 0
  },
  {
    "wavelength": 669,
    "x": 0.09333061,
    "y": 0.03420048,
    "z": 0
  },
  {
    "wavelength": 670,
    "x": 0.0874,
    "y": 0.032,
    "z": 0
  },
  {
    "wavelength": 671,
    "x": 0.08190096,
    "y": 0.02996261,
    "z": 0
  },
  {
    "wavelength": 672,
    "x": 0.07680428,
    "y": 0.02807664,
    "z": 0
  },
  {
    "wavelength": 673,
    "x": 0.07207712,
    "y": 0.02632936,
    "z": 0
  },
  {
    "wavelength": 674,
    "x": 0.06768664,
    "y": 0.02470805,
    "z": 0
  },
  {
    "wavelength": 675,
    "x": 0.0636,
    "y": 0.0232,
    "z": 0
  },
  {
    "wavelength": 676,
    "x": 0.05980685,
    "y": 0.02180077,
    "z": 0
  },
  {
    "wavelength": 677,
    "x": 0.05628216,
    "y": 0.02050112,
    "z": 0
  },
  {
    "wavelength": 678,
    "x": 0.05297104,
    "y": 0.01928108,
    "z": 0
  },
  {
    "wavelength": 679,
    "x": 0.04981861,
    "y": 0.01812069,
    "z": 0
  },
  {
    "wavelength": 680,
    "x": 0.04677,
    "y": 0.017,
    "z": 0
  },
  {
    "wavelength": 681,
    "x": 0.04378405,
    "y": 0.01590379,
    "z": 0
  },
  {
    "wavelength": 682,
    "x": 0.04087536,
    "y": 0.01483718,
    "z": 0
  },
  {
    "wavelength": 683,
    "x": 0.03807264,
    "y": 0.01381068,
    "z": 0
  },
  {
    "wavelength": 684,
    "x": 0.03540461,
    "y": 0.01283478,
    "z": 0
  },
  {
    "wavelength": 685,
    "x": 0.0329,
    "y": 0.01192,
    "z": 0
  },
  {
    "wavelength": 686,
    "x": 0.03056419,
    "y": 0.01106831,
    "z": 0
  },
  {
    "wavelength": 687,
    "x": 0.02838056,
    "y": 0.01027339,
    "z": 0
  },
  {
    "wavelength": 688,
    "x": 0.02634484,
    "y": 0.009533311,
    "z": 0
  },
  {
    "wavelength": 689,
    "x": 0.02445275,
    "y": 0.008846157,
    "z": 0
  },
  {
    "wavelength": 690,
    "x": 0.0227,
    "y": 0.00821,
    "z": 0
  },
  {
    "wavelength": 691,
    "x": 0.02108429,
    "y": 0.007623781,
    "z": 0
  },
  {
    "wavelength": 692,
    "x": 0.01959988,
    "y": 0.007085424,
    "z": 0
  },
  {
    "wavelength": 693,
    "x": 0.01823732,
    "y": 0.006591476,
    "z": 0
  },
  {
    "wavelength": 694,
    "x": 0.01698717,
    "y": 0.006138485,
    "z": 0
  },
  {
    "wavelength": 695,
    "x": 0.01584,
    "y": 0.005723,
    "z": 0
  },
  {
    "wavelength": 696,
    "x": 0.01479064,
    "y": 0.005343059,
    "z": 0
  },
  {
    "wavelength": 697,
    "x": 0.01383132,
    "y": 0.004995796,
    "z": 0
  },
  {
    "wavelength": 698,
    "x": 0.01294868,
    "y": 0.004676404,
    "z": 0
  },
  {
    "wavelength": 699,
    "x": 0.0121292,
    "y": 0.004380075,
    "z": 0
  },
  {
    "wavelength": 700,
    "x": 0.01135916,
    "y": 0.004102,
    "z": 0
  },
  {
    "wavelength": 701,
    "x": 0.01062935,
    "y": 0.003838453,
    "z": 0
  },
  {
    "wavelength": 702,
    "x": 0.009938846,
    "y": 0.003589099,
    "z": 0
  },
  {
    "wavelength": 703,
    "x": 0.009288422,
    "y": 0.003354219,
    "z": 0
  },
  {
    "wavelength": 704,
    "x": 0.008678854,
    "y": 0.003134093,
    "z": 0
  },
  {
    "wavelength": 705,
    "x": 0.008110916,
    "y": 0.002929,
    "z": 0
  },
  {
    "wavelength": 706,
    "x": 0.007582388,
    "y": 0.002738139,
    "z": 0
  },
  {
    "wavelength": 707,
    "x": 0.007088746,
    "y": 0.002559876,
    "z": 0
  },
  {
    "wavelength": 708,
    "x": 0.006627313,
    "y": 0.002393244,
    "z": 0
  },
  {
    "wavelength": 709,
    "x": 0.006195408,
    "y": 0.002237275,
    "z": 0
  },
  {
    "wavelength": 710,
    "x": 0.005790346,
    "y": 0.002091,
    "z": 0
  },
  {
    "wavelength": 711,
    "x": 0.005409826,
    "y": 0.001953587,
    "z": 0
  },
  {
    "wavelength": 712,
    "x": 0.005052583,
    "y": 0.00182458,
    "z": 0
  },
  {
    "wavelength": 713,
    "x": 0.004717512,
    "y": 0.00170358,
    "z": 0
  },
  {
    "wavelength": 714,
    "x": 0.004403507,
    "y": 0.001590187,
    "z": 0
  },
  {
    "wavelength": 715,
    "x": 0.004109457,
    "y": 0.001484,
    "z": 0
  },
  {
    "wavelength": 716,
    "x": 0.003833913,
    "y": 0.001384496,
    "z": 0
  },
  {
    "wavelength": 717,
    "x": 0.003575748,
    "y": 0.001291268,
    "z": 0
  },
  {
    "wavelength": 718,
    "x": 0.003334342,
    "y": 0.001204092,
    "z": 0
  },
  {
    "wavelength": 719,
    "x": 0.003109075,
    "y": 0.001122744,
    "z": 0
  },
  {
    "wavelength": 720,
    "x": 0.002899327,
    "y": 0.001047,
    "z": 0
  },
  {
    "wavelength": 721,
    "x": 0.002704348,
    "y": 0.0009765896,
    "z": 0
  },
  {
    "wavelength": 722,
    "x": 0.00252302,
    "y": 0.0009111088,
    "z": 0
  },
  {
    "wavelength": 723,
    "x": 0.002354168,
    "y": 0.0008501332,
    "z": 0
  },
  {
    "wavelength": 724,
    "x": 0.002196616,
    "y": 0.0007932384,
    "z": 0
  },
  {
    "wavelength": 725,
    "x": 0.00204919,
    "y": 0.00074,
    "z": 0
  },
  {
    "wavelength": 726,
    "x": 0.00191096,
    "y": 0.0006900827,
    "z": 0
  },
  {
    "wavelength": 727,
    "x": 0.001781438,
    "y": 0.00064331,
    "z": 0
  },
  {
    "wavelength": 728,
    "x": 0.00166011,
    "y": 0.000599496,
    "z": 0
  },
  {
    "wavelength": 729,
    "x": 0.001546459,
    "y": 0.0005584547,
    "z": 0
  },
  {
    "wavelength": 730,
    "x": 0.001439971,
    "y": 0.00052,
    "z": 0
  },
  {
    "wavelength": 731,
    "x": 0.001340042,
    "y": 0.0004839136,
    "z": 0
  },
  {
    "wavelength": 732,
    "x": 0.001246275,
    "y": 0.0004500528,
    "z": 0
  },
  {
    "wavelength": 733,
    "x": 0.001158471,
    "y": 0.0004183452,
    "z": 0
  },
  {
    "wavelength": 734,
    "x": 0.00107643,
    "y": 0.0003887184,
    "z": 0
  },
  {
    "wavelength": 735,
    "x": 0.0009999493,
    "y": 0.0003611,
    "z": 0
  },
  {
    "wavelength": 736,
    "x": 0.0009287358,
    "y": 0.0003353835,
    "z": 0
  },
  {
    "wavelength": 737,
    "x": 0.0008624332,
    "y": 0.0003114404,
    "z": 0
  },
  {
    "wavelength": 738,
    "x": 0.0008007503,
    "y": 0.0002891656,
    "z": 0
  },
  {
    "wavelength": 739,
    "x": 0.000743396,
    "y": 0.0002684539,
    "z": 0
  },
  {
    "wavelength": 740,
    "x": 0.0006900786,
    "y": 0.0002492,
    "z": 0
  },
  {
    "wavelength": 741,
    "x": 0.0006405156,
    "y": 0.0002313019,
    "z": 0
  },
  {
    "wavelength": 742,
    "x": 0.0005945021,
    "y": 0.0002146856,
    "z": 0
  },
  {
    "wavelength": 743,
    "x": 0.0005518646,
    "y": 0.0001992884,
    "z": 0
  },
  {
    "wavelength": 744,
    "x": 0.000512429,
    "y": 0.0001850475,
    "z": 0
  },
  {
    "wavelength": 745,
    "x": 0.0004760213,
    "y": 0.0001719,
    "z": 0
  },
  {
    "wavelength": 746,
    "x": 0.0004424536,
    "y": 0.0001597781,
    "z": 0
  },
  {
    "wavelength": 747,
    "x": 0.0004115117,
    "y": 0.0001486044,
    "z": 0
  },
  {
    "wavelength": 748,
    "x": 0.0003829814,
    "y": 0.0001383016,
    "z": 0
  },
  {
    "wavelength": 749,
    "x": 0.0003566491,
    "y": 0.0001287925,
    "z": 0
  },
  {
    "wavelength": 750,
    "x": 0.0003323011,
    "y": 0.00012,
    "z": 0
  },
  {
    "wavelength": 751,
    "x": 0.0003097586,
    "y": 0.0001118595,
    "z": 0
  },
  {
    "wavelength": 752,
    "x": 0.0002888871,
    "y": 0.0001043224,
    "z": 0
  },
  {
    "wavelength": 753,
    "x": 0.0002695394,
    "y": 0.0000973356,
    "z": 0
  },
  {
    "wavelength": 754,
    "x": 0.0002515682,
    "y": 0.00009084587,
    "z": 0
  },
  {
    "wavelength": 755,
    "x": 0.0002348261,
    "y": 0.0000848,
    "z": 0
  },
  {
    "wavelength": 756,
    "x": 0.000219171,
    "y": 0.00007914667,
    "z": 0
  },
  {
    "wavelength": 757,
    "x": 0.0002045258,
    "y": 0.000073858,
    "z": 0
  },
  {
    "wavelength": 758,
    "x": 0.0001908405,
    "y": 0.000068916,
    "z": 0
  },
  {
    "wavelength": 759,
    "x": 0.0001780654,
    "y": 0.00006430267,
    "z": 0
  },
  {
    "wavelength": 760,
    "x": 0.0001661505,
    "y": 0.00006,
    "z": 0
  },
  {
    "wavelength": 761,
    "x": 0.0001550236,
    "y": 0.00005598187,
    "z": 0
  },
  {
    "wavelength": 762,
    "x": 0.0001446219,
    "y": 0.0000522256,
    "z": 0
  },
  {
    "wavelength": 763,
    "x": 0.0001349098,
    "y": 0.0000487184,
    "z": 0
  },
  {
    "wavelength": 764,
    "x": 0.000125852,
    "y": 0.00004544747,
    "z": 0
  },
  {
    "wavelength": 765,
    "x": 0.000117413,
    "y": 0.0000424,
    "z": 0
  },
  {
    "wavelength": 766,
    "x": 0.0001095515,
    "y": 0.00003956104,
    "z": 0
  },
  {
    "wavelength": 767,
    "x": 0.0001022245,
    "y": 0.00003691512,
    "z": 0
  },
  {
    "wavelength": 768,
    "x": 0.00009539445,
    "y": 0.00003444868,
    "z": 0
  },
  {
    "wavelength": 769,
    "x": 0.0000890239,
    "y": 0.00003214816,
    "z": 0
  },
  {
    "wavelength": 770,
    "x": 0.00008307527,
    "y": 0.00003,
    "z": 0
  },
  {
    "wavelength": 771,
    "x": 0.00007751269,
    "y": 0.00002799125,
    "z": 0
  },
  {
    "wavelength": 772,
    "x": 0.00007231304,
    "y": 0.00002611356,
    "z": 0
  },
  {
    "wavelength": 773,
    "x": 0.00006745778,
    "y": 0.00002436024,
    "z": 0
  },
  {
    "wavelength": 774,
    "x": 0.00006292844,
    "y": 0.00002272461,
    "z": 0
  },
  {
    "wavelength": 775,
    "x": 0.00005870652,
    "y": 0.0000212,
    "z": 0
  },
  {
    "wavelength": 776,
    "x": 0.00005477028,
    "y": 0.00001977855,
    "z": 0
  },
  {
    "wavelength": 777,
    "x": 0.00005109918,
    "y": 0.00001845285,
    "z": 0
  },
  {
    "wavelength": 778,
    "x": 0.00004767654,
    "y": 0.00001721687,
    "z": 0
  },
  {
    "wavelength": 779,
    "x": 0.00004448567,
    "y": 0.00001606459,
    "z": 0
  },
  {
    "wavelength": 780,
    "x": 0.00004150994,
    "y": 0.00001499,
    "z": 0
  },
  {
    "wavelength": 781,
    "x": 0.00003873324,
    "y": 0.00001398728,
    "z": 0
  },
  {
    "wavelength": 782,
    "x": 0.00003614203,
    "y": 0.00001305155,
    "z": 0
  },
  {
    "wavelength": 783,
    "x": 0.00003372352,
    "y": 0.00001217818,
    "z": 0
  },
  {
    "wavelength": 784,
    "x": 0.00003146487,
    "y": 0.00001136254,
    "z": 0
  },
  {
    "wavelength": 785,
    "x": 0.00002935326,
    "y": 0.0000106,
    "z": 0
  },
  {
    "wavelength": 786,
    "x": 0.00002737573,
    "y": 0.000009885877,
    "z": 0
  },
  {
    "wavelength": 787,
    "x": 0.00002552433,
    "y": 0.000009217304,
    "z": 0
  },
  {
    "wavelength": 788,
    "x": 0.00002379376,
    "y": 0.000008592362,
    "z": 0
  },
  {
    "wavelength": 789,
    "x": 0.0000221787,
    "y": 0.000008009133,
    "z": 0
  },
  {
    "wavelength": 790,
    "x": 0.00002067383,
    "y": 0.0000074657,
    "z": 0
  },
  {
    "wavelength": 791,
    "x": 0.00001927226,
    "y": 0.000006959567,
    "z": 0
  },
  {
    "wavelength": 792,
    "x": 0.0000179664,
    "y": 0.000006487995,
    "z": 0
  },
  {
    "wavelength": 793,
    "x": 0.00001674991,
    "y": 0.000006048699,
    "z": 0
  },
  {
    "wavelength": 794,
    "x": 0.00001561648,
    "y": 0.000005639396,
    "z": 0
  },
  {
    "wavelength": 795,
    "x": 0.00001455977,
    "y": 0.0000052578,
    "z": 0
  },
  {
    "wavelength": 796,
    "x": 0.00001357387,
    "y": 0.000004901771,
    "z": 0
  },
  {
    "wavelength": 797,
    "x": 0.00001265436,
    "y": 0.00000456972,
    "z": 0
  },
  {
    "wavelength": 798,
    "x": 0.00001179723,
    "y": 0.000004260194,
    "z": 0
  },
  {
    "wavelength": 799,
    "x": 0.00001099844,
    "y": 0.000003971739,
    "z": 0
  },
  {
    "wavelength": 800,
    "x": 0.00001025398,
    "y": 0.0000037029,
    "z": 0
  },
  {
    "wavelength": 801,
    "x": 0.000009559646,
    "y": 0.000003452163,
    "z": 0
  },
  {
    "wavelength": 802,
    "x": 0.000008912044,
    "y": 0.000003218302,
    "z": 0
  },
  {
    "wavelength": 803,
    "x": 0.000008308358,
    "y": 0.0000030003,
    "z": 0
  },
  {
    "wavelength": 804,
    "x": 0.000007745769,
    "y": 0.000002797139,
    "z": 0
  },
  {
    "wavelength": 805,
    "x": 0.000007221456,
    "y": 0.0000026078,
    "z": 0
  },
  {
    "wavelength": 806,
    "x": 0.000006732475,
    "y": 0.00000243122,
    "z": 0
  },
  {
    "wavelength": 807,
    "x": 0.000006276423,
    "y": 0.000002266531,
    "z": 0
  },
  {
    "wavelength": 808,
    "x": 0.000005851304,
    "y": 0.000002113013,
    "z": 0
  },
  {
    "wavelength": 809,
    "x": 0.000005455118,
    "y": 0.000001969943,
    "z": 0
  },
  {
    "wavelength": 810,
    "x": 0.000005085868,
    "y": 0.0000018366,
    "z": 0
  },
  {
    "wavelength": 811,
    "x": 0.000004741466,
    "y": 0.00000171223,
    "z": 0
  },
  {
    "wavelength": 812,
    "x": 0.000004420236,
    "y": 0.000001596228,
    "z": 0
  },
  {
    "wavelength": 813,
    "x": 0.000004120783,
    "y": 0.00000148809,
    "z": 0
  },
  {
    "wavelength": 814,
    "x": 0.000003841716,
    "y": 0.000001387314,
    "z": 0
  },
  {
    "wavelength": 815,
    "x": 0.000003581652,
    "y": 0.0000012934,
    "z": 0
  },
  {
    "wavelength": 816,
    "x": 0.000003339127,
    "y": 0.00000120582,
    "z": 0
  },
  {
    "wavelength": 817,
    "x": 0.000003112949,
    "y": 0.000001124143,
    "z": 0
  },
  {
    "wavelength": 818,
    "x": 0.000002902121,
    "y": 0.000001048009,
    "z": 0
  },
  {
    "wavelength": 819,
    "x": 0.000002705645,
    "y": 9.770578e-7,
    "z": 0
  },
  {
    "wavelength": 820,
    "x": 0.000002522525,
    "y": 9.1093e-7,
    "z": 0
  },
  {
    "wavelength": 821,
    "x": 0.000002351726,
    "y": 8.492513e-7,
    "z": 0
  },
  {
    "wavelength": 822,
    "x": 0.000002192415,
    "y": 7.917212e-7,
    "z": 0
  },
  {
    "wavelength": 823,
    "x": 0.000002043902,
    "y": 7.380904e-7,
    "z": 0
  },
  {
    "wavelength": 824,
    "x": 0.000001905497,
    "y": 6.881098e-7,
    "z": 0
  },
  {
    "wavelength": 825,
    "x": 0.000001776509,
    "y": 6.4153e-7,
    "z": 0
  },
  {
    "wavelength": 826,
    "x": 0.000001656215,
    "y": 5.980895e-7,
    "z": 0
  },
  {
    "wavelength": 827,
    "x": 0.000001544022,
    "y": 5.575746e-7,
    "z": 0
  },
  {
    "wavelength": 828,
    "x": 0.00000143944,
    "y": 5.19808e-7,
    "z": 0
  },
  {
    "wavelength": 829,
    "x": 0.000001341977,
    "y": 4.846123e-7,
    "z": 0
  },
  {
    "wavelength": 830,
    "x": 0.000001251141,
    "y": 4.5181e-7,
    "z": 0
  }
];

var rgbTable = [
  {
    "wavelength": 380,
    "r": 0.00003,
    "g": -0.00001,
    "b": 0.00117,
    "r1": 0.0272,
    "g1": -0.0115,
    "b1": 0.9843
  },
  {
    "wavelength": 385,
    "r": 0.00005,
    "g": -0.00002,
    "b": 0.00189,
    "r1": 0.0268,
    "g1": -0.0114,
    "b1": 0.9846
  },
  {
    "wavelength": 390,
    "r": 0.0001,
    "g": -0.00004,
    "b": 0.00359,
    "r1": 0.0263,
    "g1": -0.0114,
    "b1": 0.9851
  },
  {
    "wavelength": 395,
    "r": 0.00017,
    "g": -0.00007,
    "b": 0.00647,
    "r1": 0.0256,
    "g1": -0.0113,
    "b1": 0.9857
  },
  {
    "wavelength": 400,
    "r": 0.0003,
    "g": -0.00014,
    "b": 0.01214,
    "r1": 0.0247,
    "g1": -0.0112,
    "b1": 0.9865
  },
  {
    "wavelength": 405,
    "r": 0.00047,
    "g": -0.00022,
    "b": 0.01969,
    "r1": 0.0237,
    "g1": -0.0111,
    "b1": 0.9874
  },
  {
    "wavelength": 410,
    "r": 0.00084,
    "g": -0.00041,
    "b": 0.03707,
    "r1": 0.0225,
    "g1": -0.0109,
    "b1": 0.9884
  },
  {
    "wavelength": 415,
    "r": 0.00139,
    "g": -0.0007,
    "b": 0.06637,
    "r1": 0.0207,
    "g1": -0.0104,
    "b1": 0.9897
  },
  {
    "wavelength": 420,
    "r": 0.00211,
    "g": -0.0011,
    "b": 0.11541,
    "r1": 0.0181,
    "g1": -0.0094,
    "b1": 0.9913
  },
  {
    "wavelength": 425,
    "r": 0.00266,
    "g": -0.00143,
    "b": 0.18575,
    "r1": 0.0142,
    "g1": 0.0076,
    "b1": 0.9934
  },
  {
    "wavelength": 430,
    "r": 0.00218,
    "g": -0.00119,
    "b": 0.24769,
    "r1": 0.0088,
    "g1": -0.0048,
    "b1": 0.996
  },
  {
    "wavelength": 435,
    "r": 0.00036,
    "g": -0.00021,
    "b": 0.29012,
    "r1": 0.0012,
    "g1": -0.0007,
    "b1": 0.9995
  },
  {
    "wavelength": 440,
    "r": -0.00261,
    "g": 0.00149,
    "b": 0.31228,
    "r1": -0.0084,
    "g1": 0.0048,
    "b1": "41,0036"
  },
  {
    "wavelength": 445,
    "r": -0.00673,
    "g": 0.00379,
    "b": 0.3186,
    "r1": -0.0213,
    "g1": 0.012,
    "b1": "41,0093"
  },
  {
    "wavelength": 450,
    "r": -0.01213,
    "g": 0.00678,
    "b": 0.3167,
    "r1": -0.039,
    "g1": 0.0218,
    "b1": "1,0172"
  },
  {
    "wavelength": 455,
    "r": -0.01874,
    "g": 0.01046,
    "b": 0.31166,
    "r1": -0.0618,
    "g1": 0.0345,
    "b1": "41,0273"
  },
  {
    "wavelength": 460,
    "r": -0.02608,
    "g": 0.01485,
    "b": 0.29821,
    "r1": -0.0909,
    "g1": 0.0517,
    "b1": "1,0392"
  },
  {
    "wavelength": 465,
    "r": -0.03324,
    "g": 0.01977,
    "b": 0.27295,
    "r1": -0.1281,
    "g1": 0.0762,
    "b1": "1,0519"
  },
  {
    "wavelength": 470,
    "r": -0.03933,
    "g": 0.02538,
    "b": 0.22991,
    "r1": -0.1821,
    "g1": 0.1175,
    "b1": "1,0646"
  },
  {
    "wavelength": 475,
    "r": -0.04471,
    "g": 0.03183,
    "b": 0.18592,
    "r1": -0.2584,
    "g1": 0.184,
    "b1": "1,0744"
  },
  {
    "wavelength": 480,
    "r": -0.04939,
    "g": 0.03914,
    "b": 0.14494,
    "r1": -0.3667,
    "g1": 0.2906,
    "b1": "1,0761"
  },
  {
    "wavelength": 485,
    "r": -0.05364,
    "g": 0.04713,
    "b": 0.10968,
    "r1": -0.52,
    "g1": 0.4568,
    "b1": "1 ,0632"
  },
  {
    "wavelength": 490,
    "r": -0.05814,
    "g": 0.05689,
    "b": 0.08257,
    "r1": -0.715,
    "g1": 0.6996,
    "b1": "1,0154"
  },
  {
    "wavelength": 495,
    "r": -0.06414,
    "g": 0.06948,
    "b": 0.06246,
    "r1": -0.9459,
    "g1": "1,0247",
    "b1": 0.9212
  },
  {
    "wavelength": 500,
    "r": -0.07173,
    "g": 0.08536,
    "b": 0.04776,
    "r1": "-1,1685",
    "g1": "1,3905",
    "b1": 0.778
  },
  {
    "wavelength": 505,
    "r": -0.0812,
    "g": 0.10593,
    "b": 0.03688,
    "r1": "-1,3182",
    "g1": "1,7195",
    "b1": 0.5987
  },
  {
    "wavelength": 510,
    "r": -0.08901,
    "g": 0.1286,
    "b": 0.02698,
    "r1": "-1,3371",
    "g1": "1,9318",
    "b1": 0.4053
  },
  {
    "wavelength": 515,
    "r": -0.09356,
    "g": 0.15262,
    "b": 0.01842,
    "r1": "-1,2076",
    "g1": "1,9699",
    "b1": 0.2377
  },
  {
    "wavelength": 520,
    "r": -0.09264,
    "g": 0.17468,
    "b": 0.01221,
    "r1": -0.983,
    "g1": "1,8534",
    "b1": 0.1296
  },
  {
    "wavelength": 525,
    "r": -0.08473,
    "g": 0.19113,
    "b": 0.0083,
    "r1": -0.7386,
    "g1": "1,6662",
    "b1": 0.0724
  },
  {
    "wavelength": 530,
    "r": -0.07101,
    "g": 0.20317,
    "b": 0.00549,
    "r1": -0.5159,
    "g1": "1,4761",
    "b1": 0.0398
  },
  {
    "wavelength": 535,
    "r": -0.05316,
    "g": 0.21083,
    "b": 0.0032,
    "r1": -0.3304,
    "g1": "1,3105",
    "b1": 0.0199
  },
  {
    "wavelength": 540,
    "r": -0.03152,
    "g": 0.21466,
    "b": 0.00146,
    "r1": -0.1707,
    "g1": "1,1628",
    "b1": 0.0079
  },
  {
    "wavelength": 545,
    "r": -0.00613,
    "g": 0.21487,
    "b": 0.00023,
    "r1": -0.0293,
    "g1": "1,0282",
    "b1": "0.001 1"
  },
  {
    "wavelength": 550,
    "r": 0.02279,
    "g": 0.21178,
    "b": -0.00058,
    "r1": 0.0974,
    "g1": 0.9051,
    "b1": -0.0025
  },
  {
    "wavelength": 555,
    "r": 0.05514,
    "g": 0.20588,
    "b": -0.00105,
    "r1": 0.2121,
    "g1": 0.7919,
    "b1": -0.004
  },
  {
    "wavelength": 560,
    "r": 0.0906,
    "g": 0.19702,
    "b": -0.0013,
    "r1": 0.3164,
    "g1": 0.6881,
    "b1": -0.0045
  },
  {
    "wavelength": 565,
    "r": 0.1284,
    "g": 0.18522,
    "b": -0.00138,
    "r1": 0.4112,
    "g1": 0.5932,
    "b1": -0.0044
  },
  {
    "wavelength": 570,
    "r": 0.16768,
    "g": 0.17087,
    "b": -0.00135,
    "r1": 0.4973,
    "g1": 0.5067,
    "b1": -0.004
  },
  {
    "wavelength": 575,
    "r": 0.20715,
    "g": 0.15429,
    "b": -0.00123,
    "r1": 0.5751,
    "g1": 0.4283,
    "b1": -0.0034
  },
  {
    "wavelength": 580,
    "r": 0.24526,
    "g": 0.1361,
    "b": -0.00108,
    "r1": 0.6449,
    "g1": 0.3579,
    "b1": -0.0028
  },
  {
    "wavelength": 585,
    "r": 0.27989,
    "g": 0.11686,
    "b": -0.00093,
    "r1": 0.7071,
    "g1": 0.2952,
    "b1": -0.0023
  },
  {
    "wavelength": 590,
    "r": 0.30928,
    "g": 0.09754,
    "b": -0.00079,
    "r1": 0.7617,
    "g1": 0.2402,
    "b1": -0.0019
  },
  {
    "wavelength": 595,
    "r": 0.33184,
    "g": 0.07909,
    "b": -0.00063,
    "r1": 0.8087,
    "g1": 0.1928,
    "b1": -0.0015
  },
  {
    "wavelength": 600,
    "r": 0.34429,
    "g": 0.06246,
    "b": -0.00049,
    "r1": 0.8475,
    "g1": 0.1537,
    "b1": -0.0012
  },
  {
    "wavelength": 605,
    "r": 0.34756,
    "g": 0.04776,
    "b": -0.00038,
    "r1": 0.88,
    "g1": 0.1209,
    "b1": -0.0009
  },
  {
    "wavelength": 610,
    "r": 0.33971,
    "g": 0.03557,
    "b": -0.0003,
    "r1": 0.9059,
    "g1": 0.0949,
    "b1": -0.0008
  },
  {
    "wavelength": 615,
    "r": 0.32265,
    "g": 0.02583,
    "b": -0.00022,
    "r1": 0.9265,
    "g1": 0.0741,
    "b1": -0.0006
  },
  {
    "wavelength": 620,
    "r": 0.29708,
    "g": 0.01828,
    "b": -0.00015,
    "r1": 0.9425,
    "g1": 0.058,
    "b1": -0.0005
  },
  {
    "wavelength": 625,
    "r": 0.26348,
    "g": 0.01253,
    "b": -0.00011,
    "r1": 0.955,
    "g1": 0.0454,
    "b1": -0.0004
  },
  {
    "wavelength": 630,
    "r": 0.22677,
    "g": 0.00833,
    "b": -0.00008,
    "r1": 0.9649,
    "g1": 0.0354,
    "b1": -0.0003
  },
  {
    "wavelength": 635,
    "r": 0.19233,
    "g": 0.00537,
    "b": -0.00005,
    "r1": 0.973,
    "g1": 0.0272,
    "b1": -0.0002
  },
  {
    "wavelength": 640,
    "r": 0.15968,
    "g": 0.00334,
    "b": -0.00003,
    "r1": 0.9797,
    "g1": 0.0205,
    "b1": -0.0002
  },
  {
    "wavelength": 645,
    "r": 0.12905,
    "g": 0.00199,
    "b": -0.00002,
    "r1": 0.985,
    "g1": 0.0152,
    "b1": -0.0002
  },
  {
    "wavelength": 650,
    "r": 0.10167,
    "g": 0.00116,
    "b": -0.00001,
    "r1": 0.9888,
    "g1": 0.0113,
    "b1": -0.0001
  },
  {
    "wavelength": 655,
    "r": 0.07857,
    "g": 0.00066,
    "b": -0.00001,
    "r1": 0.9918,
    "g1": 0.0083,
    "b1": -0.0001
  },
  {
    "wavelength": 660,
    "r": 0.05932,
    "g": 0.00037,
    "b": 0,
    "r1": 0.994,
    "g1": 0.0061,
    "b1": -0.0001
  },
  {
    "wavelength": 665,
    "r": 0.04366,
    "g": 0.00021,
    "b": 0,
    "r1": 0.9954,
    "g1": 0.0047,
    "b1": -0.0001
  },
  {
    "wavelength": 670,
    "r": 0.03149,
    "g": 0.00011,
    "b": 0,
    "r1": 0.9966,
    "g1": 0.0035,
    "b1": -0.0001
  },
  {
    "wavelength": 675,
    "r": 0.02294,
    "g": 0.00006,
    "b": 0,
    "r1": 0.9975,
    "g1": 0.0025,
    "b1": 0
  },
  {
    "wavelength": 680,
    "r": 0.01687,
    "g": 0.00003,
    "b": 0,
    "r1": 0.9984,
    "g1": 0.0016,
    "b1": 0
  },
  {
    "wavelength": 685,
    "r": 0.01187,
    "g": 0.00001,
    "b": 0,
    "r1": 0.9991,
    "g1": 0.0009,
    "b1": 0
  },
  {
    "wavelength": 690,
    "r": 0.00819,
    "g": 0,
    "b": 0,
    "r1": 0.9996,
    "g1": 0.0004,
    "b1": 0
  },
  {
    "wavelength": 695,
    "r": 0.00572,
    "g": 0,
    "b": 0,
    "r1": 0.9999,
    "g1": 0.0001,
    "b1": 0
  },
  {
    "wavelength": 700,
    "r": 0.0041,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 705,
    "r": 0.00291,
    "g": 0,
    "b": 0,
    "r1": "41,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 710,
    "r": 0.0021,
    "g": 0,
    "b": 0,
    "r1": "41,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 715,
    "r": 0.00148,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 720,
    "r": 0.00105,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 725,
    "r": 0.00074,
    "g": 0,
    "b": 0,
    "r1": "41,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 730,
    "r": 0.00052,
    "g": 0,
    "b": 0,
    "r1": "41,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 735,
    "r": 0.00036,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 740,
    "r": 0.00025,
    "g": 0,
    "b": 0,
    "r1": "71,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 745,
    "r": 0.00017,
    "g": 0,
    "b": 0,
    "r1": "14,0000",
    "g1": "90,0000",
    "b1": 0
  },
  {
    "wavelength": 750,
    "r": 0.00012,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 755,
    "r": 0.00008,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 760,
    "r": 0.00006,
    "g": 0,
    "b": 0,
    "r1": "41,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 765,
    "r": 0.00004,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 770,
    "r": 0.00003,
    "g": 0,
    "b": 0,
    "r1": "74,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 775,
    "r": 0.00001,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  },
  {
    "wavelength": 780,
    "r": 0,
    "g": 0,
    "b": 0,
    "r1": "1,0000",
    "g1": 0,
    "b1": 0
  }
]

run(xyzTable, rgbTable);
              
            
!
999px

Console