I really want to graph in ColorThink (LAB 3D mode) the visible range of colors of the standard eye.

Any idea how to do this? I don't care whether it's a graph of a bunch of randomly generated values making a bunch of dots, or an actual ICC profile.

I found CIERGB.icc on my system. Can't find much information on it. Perhaps it's an ICC profile for the CIE RGB triangular area defined in 1920. Graphed on the most commonly shown x-y slice of XYZ, that leaves out a lot of the extremely saturated visible colors between green and blue. (No idea what it does on the other parts of the z axis.)

Found a D50_XYZ.icc from color.org, but it's too large. Like ProPhotoRGB large.

If needed, I'm happy to generate a bunch of random numbers representing colors... If there's a way to test a particular defined color as to whether it's visible or not. Figure there has to be some math that defines what colors are valid (visible) in the XYZ space, or something transformable into it.

Scroll down and you will see colored squares in L*a*b* 2D form, marked whether they are in gamut or not, for the popular color spaces. There are many pages devoted to different values of L*. Most pages show the human vision gamut in the background, 2D though.

You won't really be able to graph this in CIELAB. It kind of gets the ox in front of the cart to talk about it this way. The eye is sensitive to a range of wavelengths of light—you will perceive colors anytime the light is in that range. Colorimetry tells you how you can match that perception with a set of three values. A better way to talk about this is to ask what range of numeric values corresponds to physical colors under a specific set of conditions. This is pretty easy to graph in xyY space because chromaticity is separated and projected onto the xy plane. LAB is different, though. To convert XYZ into LAB you need to do it relative to an illuminant. It would be possible to show a boundary for a particular illuminant, but that wouldn't really be the gamut of a human eye. It would just separate the imaginary artifacts of the system from the physically realizable colors under a particular white point and show the outline of the greatest chroma at a particular lightness. I think this is what Bruce Lindbloom is doing here: http://www.brucelindbloom.com/index.html?LabGamutDisplayHelp.html

If you want to find some of the literature about this, Google: Optimal Object Color Stimulus. Not sure any of it will help you with the specifics of making a graphic though. I have no idea how you would do this in ColorThink, but then I'm not that familiar with ColorThink. Maybe you could create a set of LAB values corresponding to optimal-object colors and load them in? This might give you a rough idea of where the boundary is.

Generating points on the surface of the optimal color solid isn't too difficult. Schrödinger, or all people, suggested how to do it back in the 20s. The basic idea is that all the points will have a spectral power distribution of a specific kind: The individual wavelengths will either be full power or zero and they will be bunched together so you either have all full power with a block of zeroes in the spectrum or all zeros with a block of full power wavelengths. The pure spectral colors will be of the later variety with the block as narrow as you care to calculate. Kind of hard to explain, but the SPD graph looks basically like a single square wave on an oscilloscope. You can generate these spectral power distributions, multiply by your illuminate and by the color-matching functions and sum the results. This will give you XYZ values on the surface of the solid. From there you can translate into LAB or xyY. etc.

If you have a copy of Wyszecki/Stiles laying around, there are tables in the back that tell where the transition wavelengths and chromaticity coordinates are for specific lightness. That will give you all the information you need to make this: http://en.wikipedia.org/wiki/File:Optimal-color-solid,FL4,XYZ.gif I can't find it online, and it would be a lot of typing long decimal numbers to recreate. But it's there if you want it.

Here's a color list in XYZ that you should be able to load into ColorThink.

It's important to understand what this isn't—it's not a gamut of the human eye.

Instead, it's the colors on the surface of an optimal-object color stimulus solid under D65 light. There's a few ways to explain it, but it's traditional to talk about a perfectly diffuse reflecting surface:Imagine all the possible ways this perfect reflector can reflect the D65 light. If it reflects it all, you get white and if it absorbs it all you get black. All the other colors that you get from different combinations of wavelengths reflecting and absorbing will fill out a solid space. The surface of the space are the brightest colors of a given chromaticity possible under this particular illuminant. It makes the most sense to view it in xyY, because separating the chromaticity and lightness makes the idea clear, but it should graph fine in LAB too.

One interesting thing that I've never noticed before: if you plot this against a working space like Adobe 98 RGB, you'll see that the area around RGB primaries fall outside the surface. This suggests that the primaries can't be reproduced with light from its own white point. It's a little counterintuitive, but implies that, while you can reproduce the chromaticity of each primary, even under ideal circumstances you can't match the primaries' luminance in print. (It's also possible, since these points come from an off-the-cuff Python script that I've made a mistake, but I'm pretty sure it's right — it cross checks against the values in Wyszecki.)