The newest version of Netlogo includes and much asked for (at least by me) feature: transparency! It applies to turtles (and it also applies to links and pens) and only for 2D models, but it's a great addition to the program. That said, there are some eccentricities in how one must use Netlogo's transparency features and I've worked out some these so you don't have to. What follows is some procedures you can include in your code to use transparency in the way that you should be able to use transparency...just like another turtle variable such as size or color. In addition to the examples and explanations below you can download my personal transparency code example and use that to freely steal my code for your own use.

The first thing to note is that you have to get a 4.1 or later version of Netlogo...you can't use these methods in previous versions. The transparency feature as it is implemented is actually an opacity feature in the sense that it takes a value from 0 to 255 and 0 means clear and 255 means solid. In the code I provide I've switched this (i.e. "255 transparency") so that what I call transparency is a measure of transparency as one would expect it. Also, it's a integer value from 0 to 255 instead of a percentage as one might expect it. This is a byproduct of it being implemented as the alpha channel of an RGB color specification that's technical gobbly gook that you don't have to worry about. The point is that it's easy enough to convert a percentage into the 0-255 range (and that is demoed in the code), but just don't forget to round the result so that it's a (positive) integer.

The following code works as a "getter" a function to retrieve and return the transparency of a specified agent. The value returned is the opacity value from the Netlogo specification, so its 0-255 where 255 means no transparency. Unless the transparency value has been previously specified the color will not be a list, or will be a list of 3 digits (i.e. the RGB color). In those cases the transparency is just 255 because it's totally opaque by default. If it has been specified it will appear as the fourth item of the RGBA color list (list index 3). Since the agent whose transparency you want to get is specified when calling this procedure (i.e. "get-transparency turtle 0"), it should work if called by anybody.

to-report get-transparency [agent]
  let the-transparency 255
  let the-color [color] of agent
  if is-list? the-color
    [ if length the-color = 4
      [ set the-transparency item 3 the-color]
    ]
  report 255 - the-transparency
end

If you'd like to change the color of an agent with transparency then you have to do something special given the way transparency is currently implemented in Netlogo. Because it is a value in an RGB color-list rather than a separate variable, if you just change the color using "set color green" then you'll get the fully opaque green. Instead, call the following turtle-only procedure to change the agent color while keeping the same transparency level.

to change-color [new-color]
   let my-transparency 255
   if is-list? color
        [ if length color = 4
            [ set my-transparency item 3 color]
        ]
   set color new-color
   set-transparency my-transparency
end

On the other hand, you may want to change transparency while keeping the same color. This can be done using the code provided in the transparency code example...made slightly more accessible through the procedure below. A turtle can call this procedure with a transparency value between 0 and 255 and it becomes that level of transparent. Note the inversion of the transparency value so that the larger the number the MORE transparent (can remove or adjust that as you please).

to set-transparency [new-transparency]
  ifelse is-list? color
     [ set color lput (255 - new-transparency) sublist color 0 3 ]
     [ set color lput (255 - new-transparency) extract-rgb color ]
end

And finally, you might want to change both at the same time. You could do one after then other, and that's all this procedure does, but it's practical to have a single method that does the thing you want if you're going to do it often. A turtle can change its color and transparency using any sort of color specification (e.g. "green" or "134") and a transparency value between 0 and 255 where the bigger the number the more transparent.

to change-color-and-transparency [new-color new-transparency]
  set color new-color
  set-transparency new-transparency
end

This isn't supposed to model anything; it just looks pretty and demonstrates the transparency code and effect. However, this would be a great starting point for a self-organizing color-blindness test, though I'm not sure there is any value in that besides for the art section of the model library. Note that the color and transparency values are copied independently so there are two dimensions to the agents' type. The pure imitation mechanism used only has one equilibrium, but it would take a LONG TIME to get there. There are lots of interesting segregation effects in the interim and it's rather pleasant to look at.

One thing you can do to see the practical usefulness of transparency is to run this model with 3000 agents with 0 transparency and 0 variance and then run it again with 40% transparency. The difference is that you can much more clearly see the behavior (and shape and size and color) of more agents in the same space thanks to transparency. A much greater benefit will soon be revealed with models of multi-level emergence. And even GREATER benefits will be realizable when they extend this capability to 3D models.