NetLogo for Generative Art

While languages like Processing are probably a more conventional choice, I’ve used NetLogo several times to teach a course on Generative/Algorithmic Art without any computer programming prerequisite coursework.

I taught it over 3.5 weeks, 3 hours per day every weekday, during an immersive January term.

We start the course by creating simple 2-D art using basic LOGO commands (draw a house? a star? a multi-colored spiral?), move into more advanced use of color (including transparency) and controlled randomness to create interesting visual patterns, discuss how animations/movies can be made up of individual frames, push onward into NetLogo 3D for more advanced artwork.

We use the raytracing extension (which can be, I admit, a bit rough around the edges) to create higher-quality renderings, including some nifty high-resolution movies with reflections and shadows (but rendering scenes with large numbers of agents takes a long time!)

We’ve also used the x3d extension to export basic NetLogo 3D scenes to a format that can be printed on a 3-D printer for creating generative sculptures.

Some side topics also include auto-stereograms (simple ones can be accomplished in NetLogo 2-D using repeating STAMP patterns with different stride lengths) and generative music (e.g. see the Sound Machines sample model), and even simple randomized poetry (although it’s usually easier to switch to Python for any fancy text processing.)

Here’s a sample portfolio project from a student the last time I taught the course:

Anyway, the course was a lot of fun, and very successful, with students learning about how sophisticated art can emerge from simple rules/interactions, and learn about procedural and agent-based programming along the way.

1 Like

This all sounds really cool!

I found the RayTracing Extension, but I couldn’t find the x3d extension. Could you link to that?

Sounds really cool! Reminds me of many student projects in Turtle Universe, too. Many of those are computational artworks, and one student in my co-design workshop created interactive art with AR. You can basically walk around the room and see how the visual patterns change!

Oops, sorry about that! It’s actually the VRML Extension (which also exports to the slightly newer, but not any better supported, “X3D” format)

However, it would honestly be nice to have a better 3D export extension that goes directly to a more widely used 3D-printable format, and that handles some of the geometry better when there are lots of intersecting 3D shapes.

Still, with some workarounds, it gets the job done!

1 Like

Hi Forrest,
This work is very beautiful and inspiring, especially the example you provided. Some fractal and ABM models can capture me for long times, just looking at them. It also seems that some artists appreciate the aesthetic of generating beautiful dynamically evolving shapes as you can also see in youtube if you type in “fractal”. Did you find that students were willing to invest effort into learning new netlogo functionalities when they felt it would make their work more beautiful? In the sense, that their art was driving their learning of netlogo?
Very nice work.
Sharona

Well, student motivations differ, but I certainly think many students were interested in learning new NetLogo features so that they could accomplish their artistic goals.

That’s the nice thing about Constructionism… building something is motivating, whether that’s a piece of art, a game, or a scientific simulation. Now, one of the interesting aspects of doing art is that it is often more flexible about “correctness”. If some code doesn’t turn out the way you expect/want, it might create a different piece of “surprise” art, and you can change your direction. It’s much less rigid than other applications of computer programming, which I think makes it a “lower threshold” way to get started, if you’ve never coded before. That said, most students tended to create their own goals, and then worked to pursue them, rather than merely taking a choatic tour through “generative art” lane. It’s also true that if you write completely random code, it doesn’t tend to produce art that is all that beautiful/interesting.