User Tools


This is an old revision of the document!


Color

Shapes can exhibit different colors. And just like the other transformations, adding color to a shape produces a new shape, one with color.

NOTE: 2D shapes cannot exhibit colors today. This is a known issue.

color([1,0.5,0.3],sphere())
color([1,0.5,0.3],sphere(10),cube(20))
color("Red",sphere(),cube().translate([2,0,0]))

See the Extended Color Keywords for all available colors.

Color names are case-insensitive, e.g. 'RED' is the same as 'red'.

The CSG library functions can also be used. NOTE: Deprecated in the V2 API

sphere().setColor(1,0.5,0.3)
sphere().setColor([1,0.5,0.3,0.7])
object.setColor(css2rgb('dodgerblue'));

The CSG library functions use RGB values between 0 and 1, not 0 and 255.

Note: There are some Transparency_Sorting|OpenGL Transparency Limitations, e.g. and depending on the order of colors, you might not see through otherwise partially transparent objects.

Color Space Conversion

Following functions to convert between color spaces.

var hsl = rgb2hsl(r,g,b); // or rgb2hsl([r,g,b]);
var rgb = hsl2rgb(h,s,l); // or hsl2rgb([h,s,l]);
var hsv = rgb2hsv(r,g,b); // or rgb2hsv([r,g,b]);
var rgb = hsv2rgb(h,s,v); // or hsv2rgb([h,s,v]);

whereas

  • r,g,b (red, green, blue)
  • h,s,l (hue, saturation, lightness)
  • h,s,v (hue, saturation, value)

E.g. to create a rainbow, t = 0..1 and .setColor(hsl2rgb(t,1,0.5))

See the http://openjscad.org/#examples/slices/tor.jscad Tor (multi-color) for an example.