Curves and Gradients

Gradients and Parametric Curves in Photoshop

Davide Barranca — 

I’m not a FX kind of guy, but as a developer I’m fascinated by the astonishing complex results you can get with simple Gradients and a Parametric Curves in Photoshop. These designs can be used as building blocks for all kind of creative needs – whether bump maps, depth maps or displacement maps, abstract design, patterns, etc.

Parametric Curves

I’ve started playing with the idea of drawing mathematically defined Curves via scripting. That is, not you adding/dragging points on a Curves window; but let ExtendScript code fetch user inputted formulas and draw the Curves accordingly. Let’s say it could be a prototype test for a future Photoshop panel.

So I’ve coded a simple script and, after a good dose of trial and error, I came up with some pretty interesting shapes:

Photoshop Curves

Curves (as Adjustment Layers) I’ve drawn via scripting.

Some of them may be replicable by hand (with a good dose of patience), others can be built via scripting only. These kind of curves are normally available in , a Photoshop plugin for texture creation I’ve enthusiastically written about here – but are out of reach if you don’t own it.


The above Curves have no use on real imaging but forensic and/or scientific ones (maybe – if there’s a forensic expert out there I’m all ears! The comment section is open for you), but if you put them above a Gradient adjustment layer, the fun begins. I’ll be using 16bit files (in order to avoid posterization, some of these transformations are pretty harsh), with all of the available Gradient shapes:

Photoshop Gradients

Available gradients in Photoshop: Linear, Reflected, Radial, Diamond, Angle

Gradient + Curves

Let’s start experimenting with a mix of Curves and Gradients. Be aware that you can mix multiple Curves and Gradients, and play with Blending modes too!


Linear gradients and scripted curves


Radial gradients and scripted curves


Angle gradients and scripted curves


Reflected gradients and scripted curves


Diamond gradients and scripted curves

Combined gradients

If you start adding multiple Gradients and Curves on top of each other, you may end up with some really interesting results:

Mixed gradients and scripted curves

It gets addictive when you start must I confess…

Mixed gradients and scripted curves

What for?

I’m not the creative one, I’m just owning the hardware store providing you with the tools 🙂

That said, as the only untalented designer available on duty at the moment, I can show you just few examples to tease your creative skills. These are just building blocks, combining them the possibilities are endless.


This is a very simple one, textured and ready to be tiled.

Texture Example

A: Gradient + Curves. B: Perlin noise (Clouds) + Motion Blur. C: Perlin noise + Gaussian Noise. D: Combined result.

Displacement maps

Pretty hidden in the menu, there’s the Distort – Displace filter. It requires you to open a second image (the Displacement Map), to be used to distort the first one according to the parameters you’ve set.

Displacement example

A: Gradient + Curves. B: Texture. C: Texture displaced. D: Combined result.

3D Depth Maps and Bump Maps

Believe me, I rarely open any 3D panel in Photoshop because I’m a 2D chauvinist, so this one is really a basic example that may make the actual experts laugh, but it’s just to give you the idea of using gradient as Depth Maps.

Depth map example

From the Photoshop CS6 menu 3D – New Mesh from Layer – Depth Map to – Plane

Displacement example

Another couple of Depth Map examples

Similarly (but with a subtler effect) you can apply those gradients as actual Bump Maps in 3D materials.


All kind of weird stuff… this is just an example of what happens if you shift Gradients (on selected channels only) when one or more parametric Curves are applied. Click on the image to launch the video.

Gradient Madness

Few examples – scripting the gradient interaction would lead to even more interesting results

Parametric Curves on Exchange!

Adobe ExchangeParametric Curves is available as a free script for Photoshop CS6 (Mac/Win) through Adobe Exchange – the new in-app, app-store panel made by Adobe itself. Download and install Exchange if you don’t already have it, then browse the Free extensions and look for Parametric Curves there. After the installation, please find it in the Filter menu. More info about the panel here.
Parametric Curves Math reference

Print Friendly

13 responses to Gradients and Parametric Curves in Photoshop

  1. Build that panel We want more 🙂

  2. Awesome 😀 I like the lower like one 😀

  3. John Robinson March 8, 2013 at 1:54 PM

    When Kai’s PowerTools was new I liked experimenting, but other than playing, they are of no value to designer’s responsible to paying clients who want what they want fast and uncomplicated.

    • I’d be honored if such curves remind you Kai Krause!
      True that clients want fast uncomplicated (and cheap I’d add), debatable that they know what they want 😉 As long as play lets designers discover new tools and possibilities, I’ll be fine.

      • I agree with John; these really look like some of the things Kai’s Power Tools did, and I’ll bet that he got there the same way, by playing. I’d be interested to see a panel. I doodle in photoshop a lot and have already got some ideas looking at your examples. Fun stuff.

  4. Great Stuff

    Any chance of seeing the script?

    • Yes Trevor,
      it’ll be available on Exchange for free – at least this is my plan. Stay tuned, I’ll post it here when it’ll be ready, I’m betatesting it!

  5. In all of your example images, the thickness of the waves is inconsistent.

    You can get much more accurate results if you set the gradient “Smoothness” setting to 0%.

  6. Hi Davide
    I saw a post about a floating adjustment Panel. I can’t seem to find it in Photoshop Exchange (?)

Trackbacks and Pingbacks:

  1. Photoshop Actions and more » VC-TEL Team Blog - May 4, 2017

    […] layers, useful for generating organic patterns and textures. Read Davide Barranca’s explanation of why you might want to for full details, but in summary these are especially handy when generating displacement maps and […]