How to Color Proof Your 3D Prints (Using This Super-Secret Stratasys Website)
If a customer has ever come to you and said, "I need the color of this 3D print to match this RGB or Pantone EXACTLY!" and you've wondered how to do that – this is the tutorial for you! We'll talk about soft proofing (how to make sure your printer can even print a given color) and hard proofing (matching what you see on screen with a physical result) using Photoshop and the most advanced color printer on the market, a Stratasys J750! (You can find a video version of this tutorial here: https://youtu.be/XsollrDbUVc)
Step 1: What is a COLOR?
First we have to define what we mean by color.
Digital users talk about color in RGB, which is a 0 to 255 scale of how much power your Red, Green and Blue LEDs will get for each pixel of your computer screen.
Commercial paper printers talk about color in CMYK, which is a 0 to 100 scale of how much Cyan, Magenta, Yellow and Black ink they will use for each dot of your image printed on white paper.
And Consumer Goods manufacturers talk about color in Pantone, which is a totally made up system invented by a private company from New Jersey, with numberings like "Pantone 18-3838." Pantones are also used for distinctions that aren't a straight mix of colors, like fluorescent orange vs orange, or metallic gray vs gray. Physical books of Pantone swatches are often the gold standard when matching color in the real world, and many well-known brands have their logo colors defined as Pantones.
Here's a chart to help keep them straight:
(You can also see under the Pantone swatch, a Hex Code for that color (#5F4B8B) which is yet another way to define color, with '5F' telling us the amount of red, '4B' telling us the amount of green, and '8B' telling us the amount of blue in that Pantone swatch.)
And just like when translating between Russian and French, translating between these different color languages isn't always straightforward and sometimes leads to errors. To understand why, we have to talk about gamuts.
Step 2: What is a GAMUT?
A color 'gamut' means the entire range of colors a language or technology can address.
Since we define colors as specific wavelengths of light, you'd think the gamut for every type of color (RGB, CMYK, Pantone) would be the same, but can light-absorbing color inks on white paper always match light-emitting diodes shining out from a computer screen? Turns out the answer is no. In fact, most gamuts don't even address all the colors possible in the real world. Here's why:
Imagine you had a mathematical definition of every color it's possible for the human eye to see. Now stop imagining- because scientists back in 1931 already did that! It's called the CIE LAB gamut and it sort of looks like this:
As RGB displays for TV and computers started becoming a thing, electronics makers defined their own gamut for all the colors an RGB device could possibly display, which was a subset of the LAB gamut:
So everything inside the thick black polygon on the right is what an RGB monitor can display. Remember, to get the MOST red possible, RGB can only go (255,0,0). There is no 256. So many colors in the real world fall outside the RGB gamut, like a lot of greens, some deep reds and some blue/purples, as you can see above.
If you define a color outside of the RGB gamut and then try to display that on a computer screen, the screen is going to have to make some compromises, and that's where some of the Russian-to-French translation error comes in.
(Forget the fact that you're looking at both these gamuts through an RGB device right now, the pictures are more a representation of what's going on than the actual mathematics of the gamuts. If I wanted to be 100% accurate, I might represent the RGB gamut like this:
But that's less fun and more work, so I'm not going to do it for every gamut.)
To see where we start running into problems, let's compare RGB (how most CAD programs define colors on a screen) to CMYK (how most 2D printers define colors on paper):
And putting them on top of each other:
It's the areas where they don't overlap that causes problems: your printed part doesn't look like what it does on screen, or vice versa. It's like having a word in Russian that doesn't exist in French. This has been a problem in 2D paper printing for decades, so it's no surprise we have to deal with it in 3D printing as well.
And while we're always inventing new inks and the J750 is the most capable color printer on the market with over 500,000 possible colors, there are areas where the J750 gamut doesn't line up with Pantone, RGB, or CMYK either. Let's look at all the gamuts together:
So you can see there are a wide range of colors that the human eye can see which aren't defined by a Pantone. And there are a range of Pantones it's not possible to even display on a computer screen. And finally, there are a range of colors you CAN display on a computer screen which can't be printed on a J750.
So our job for this tutorial is to start off with a very well-known brand color defined by a Pantone or hex code, then see how we might match it across many gamuts until we get to a final 3D printed part.
And since I've consumed about 1 or 2 of their products every single day since I was 14:
Step 3: First, Soft-Proofing
First we have to define what "Pepsi blue" is.
This website tells me that the blue used in the Pepsi logo is hex code #1B52A2:
So, can a J750 print the color #1B52A2? To find out, we have to do a step 2D paper printers use all the time, called Soft Proofing.
To start, open up your Photoshop, make a big 'ole rectangle and set the color of that rectangle to our target color of #1B52A2 (I used my Foreground Color Picker below):
Make a copy of that document, open both, and tile your Windows so you can see both squares side by side:
Now things get tricky. If you look at the very top of each window, you should see a little (RGB) in the window name, telling us that each window is displayed in the RGB gamut:
What we want is to have one window showing the RGB gamut (our colors on screen) and another window showing the J750 gamut (our colors as printed). To do this, we'll need an .icc file that contains our J750 gamut:
The .icc file format is defined by the International Color Consortium, and are used to share pre-defined gamuts across many different display devices. For example, if you have the ICC file for a J750 color gamut, you can double click on it to install it to your Windows system, and then any program which has options for color gamuts can access it.
(If you don't yet have an .icc file for your J750, contact your local reseller or download it from GrabCAD Community here. Email me at firstname.lastname@example.org if that link doesn't work for you!)
(Edit 1/18/19: I just learned that all the .icc profiles needed for J750 soft-proofing are found ON YOUR COMPUTER, if you have GrabCAD Print installed. Search for ".icc" on your computer and you should find many at the location: C:\Users\Shuvom\AppData\Local\Stratasys\PolyJet Service\Profiling. Just replace "Shuvom" with your log-in name in that path.
At that path, you should see a bunch of .icc profiles, including our new Vivid 1.1:
That Vivid 1.1 includes our new Vivid Cyan material, which definitely would have helped when I was trying to color match this Pepsi can! So you don't need to contact me to get these .icc profiles- you have everything you need already! End of 1/18/19 Edit.)
After getting that .icc file and double clicking on it, you can check to see if it's installed by going to your Windows button, then "Color Management" and looking under "All Profiles":
But, assuming you DO have the J750 .icc file handy and installed, in Photoshop we can tell one of our windows to use that gamut instead of RGB. This is done in the "View... Proof Setup..." window:
And now one of your windows should be tuned to RGB and one tuned to the J750:
And it might be hard to tell on your screen, but on my screen, now our two colors of Pepsi blue are slightly different! Using that .icc profile, the definition of "How will this color display on this device" has made the J750 result just a little lighter. Here they are side by side without the big red boxes over them:
So if I was going to match Pepsi blue on my J750, I'd want to adjust the square on right until it looked more like the square on the left. (This is like using a native French speaker to help calibrate the meaning of your translation until it matches the original Russian.)
After fiddling around in Photoshop for a while, I think I got the squares to match up pretty well:
And if you want to see them side by side again:
That looks a lot better than before.
So while Pepsi blue may be officially defined as #1B52A2, I'd have to enter #174A94 in GrabCAD Print to get my J750 to print something similar in real life, allowing for the differences between gamuts.
And finally, let's do the last step in soft-proofing: Can this color actually PRINT on a J750? Is it really inside my gamut?
For something like the blue squares it seems pretty obvious, but what if you had an image with ALL sorts of colors in it, like this one:
To figure this out, we'll look at that image in Photoshop using our ICC profile as before, but also turn on a little command called "Gamut Warning," found in our View menu:
So here's how that looks, side by side:
This is where we REALLY see the problem when gamuts don't overlap. Those gray areas WON'T actually print gray in my final 3D model, but the gamut warning is just telling you that the printer will have to approximate them the best it can, using the closest color to the original the J750 has.
That's translation error.
There are different materials we could use (Vero vs. Vivid) or different J750 software profiles we could use (Relative vs. Absolute) but those are past the scope of this first tutorial. The point is, soft proofing is a step that should be done far before any 3D prints are made, so you can tell where the printer can even natively print the color you want or not.
But after that comes an even more important step: hard-proofing.
Step 4: The Secret Link of the Day
Let's just jump into it.
So by now we know: 1) The hex code of our original desired color, 2) The hex code of what we need to use in the J750 gamut to get close to that, and 3) That our final colors are actually in J750 gamut.
So we should just kick off our massively complex 15-hour print without any further checks, right?
No. Of course not.
That would be silly.
Now we need to put our money where our mouth is, by printing a sample of our desired color and seeing how the REAL WORLD matches our computer screen, in a process called hard-proofing.
But just printing one little sample of the ONE hex code we're interested in is a waste. If it's slightly off coming out of the printer, we'd have to choose another hex code, design ANOTHER sample and print it AGAIN, then AGAIN and AGAIN, getting incrementally closer to the real color we want.
It's more efficient to print a RANGE of colors around our desired target and see how much we're off (think of it like a calibration square). Designing a flat, fast 3D printed part containing a grid range of colors around our target used to be pretty tedious, but some engineers at Stratasys have made it simple.
At this secret link, we've created a website where people can automatically generate a VRML swatch from their RGB, Hex or CMYK, choose a bunch of sliders to get colors in a range around your target, and automatically generate a VRML which prints in less than 30 minutes on a J750 and can be used to calibrate your hard proof.
If you click on that secret link you get an interface that looks like this:
At the top left I can enter whatever RGB, CMYK, LAB or Hex code pertains to my official color, and in this case it's #174A94. Then I hit 'Create' and viola:
What the website is doing is changing your target color by whatever Saturation, Brightness, Hue and Transparency range you choose with the sliders, and then making a simple-to-print swatch with that range of colors!
For my actual Pepsi sample, I think I only printed out a few variations on Saturation and Hue (to keep it simple) before hitting 'Download 3D Swatch' to get my VRML:
You can put the downloaded VRML on your GrabCAD Print tray, and in less than 30 minutes, you're comparing the colors to your real world part:
Now that's real color matching.
For really picky customers, what we like to do is take a few of those swatches to their location with their original (non 3D-printed) part, and do the old optometrist test:
This lets the customer see, with their own eyes, in their own lighting conditions, against their own part, what color they want. It's important because color matching is very subjective, varies between sun and fluorescent lights, even varies by geometry and nearby colors!
Once the customer has picked a color from your swatch, you can feel more confident in printing the real, full scale part.
Step 5: Recap
We've covered a lot today, but if you ever need to match a customer's requested color with something you're 3D printing, follow this flowchart:
That's the basics. As you can guess the magic is in the iterations, of knowing how to slightly change the colors in Photoshop to match across gamuts and how to eyeball physical swatches versus actual parts.
But that flowchart, and the ICC profiles and secret links in this tutorial should be enough for anyone to match a real world color to a 3D printed part!
And if you wanted a simple swatch to carry around in your pocket to match colors on the fly, slap the below image onto a thin J750 rectangle for a pretty good start – it's got RGB values already in every square!
If you need more information about how to get a J750 or what it can do, click here and happy color matching!