The Secret Gradient Interpolation Method
First article in the Photoshop Algorithms Arcana series. Photoshop 2026 ships with an undocumented gradient interpolation method called Smooth — let's see how it differs from Perceptual, Classic, and Linear.
Full article excerpt tap to expand
Introduction. The Secret Gradient Interpolation Method Essay photoshopreverse-engineeringgradients Also available in Russian Series: Photoshop Algorithms Arcana Part 1 of 2 Introduction. The Secret Gradient Interpolation Method Color Math: Inside Photoshop Gradients Next → Introduction This article opens the series “Photoshop Algorithms Arcana”, aimed at uncovering the algorithms Photoshop uses to render gradients, effects, adjustment layers, and more. Why? I’m building a tool that can render individual PSD/PSB layers and groups — with all effects intact — without requiring Photoshop. It turns out that information about Photoshop’s proprietary algorithms is incredibly scarce, and most existing approximations produce results that differ dramatically from what Photoshop actually renders. I also hope that my findings will help improve open-source tools like Krita, GIMP, Photopea, and others, giving them a fresh perspective on the effects pipeline and enabling better support for Photoshop’s rendering behavior, especially when it comes to effects and gradients. Disclaimer All algorithms presented in this article are the result of black-box reverse engineering. This means every algorithm was reconstructed by attempting to reproduce images identical to those produced by Photoshop. I did not decompile Photoshop or any other tool — all I had were finished images that I rendered in Photoshop and then tried to replicate independently. The algorithms described here may differ from what Adobe actually uses. They represent the closest approximation I could achieve — close enough that an average person would struggle to tell which result came from Photoshop and which from my algorithms. With that out of the way, let’s move on to what started this investigation. The Secret Interpolation Method While working on parsing Photoshop’s format and algorithms, I stumbled upon something surprising — in the 2026 version, the default interpolation method is no longer Perceptual (which held that role since version 2022), but a certain Smooth. Why “a certain”? Because it is described nowhere: not in the official documentation (which only mentions Perceptual, Classic, and Linear), not on forums, not in tutorials. The only way to learn about its existence is through a dropdown menu item. Yet it differs significantly from all other interpolation algorithms, though it’s closest to Perceptual. Smooth lacks the Smoothness parameter, so one might assume it’s simply a special case of Perceptual with Smoothness set to 100%, 75%, or 50%. But it turns out — no, it’s a distinct interpolation type. If you compare two gradients with identical color stops, one using Perceptual and the other using Smooth, no Smoothness value reproduces the Smooth result. All Compare Diff Smooth Perceptual Classic Linear Smooth Perceptual Classic Linear vs Smooth Perceptual Classic Linear Smooth Perceptual Difference between Smooth and Perceptual function m(){document.querySelectorAll("[data-img-compare]").forEach(a=>{const d=a.querySelector("[data-compare-clip]"),s=a.querySelector("[data-compare-slider]"),t=a.querySelector(".img-compare__wrapper"),c=a.querySelector("[data-compare-labels]"),l=a.querySelectorAll("[data-compare-mode]");if(!d||!s||!t)return;let o=!1,n;function p(e){const i=t.getBoundingClientRect(),r=Math.max(0,Math.min(1,(e-i.left)/i.width));d.style.width=`${r*100}%`,s.style.insetInlineStart=`${r*100}%`;const…
This excerpt is published under fair use for community discussion. Read the full article at Ilia Malanin.