Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Shawn Kirst, posted on March 22, 2001

Image Description, by Shawn Kirst

Here are a few shots of a little toy I made over the weekend. It's a procedural texture generator using 2D perlin noise.

The upper left shot shows how you can set the parameters for generating the image. The upper right shot shows how you can load/save/modify color palettes to map the pixels to. The lower two shots show the most powerful feature of this little toy, the programmable 'modifiers'.

You can create 'modifiers' using a simple C-like expression syntax to modify the noise sample for every pixel in the generated image. All of the C trig functions are included, a few constants (like pi and e), random number generating functions and has the ability to do variable assigments. The parser isn't very optimized, so large expressions tend to slow down texture generation considerably (the expression is parsed for every pixel, eventually I might add some sorta byte code compiler).

I had a lot of fun writing this, and I think it can be very useful for artists and non-artists alike. I don't have a web host, so I cannot offer a download at the moment. If anyone is interested in obtaining the program + full source (Borland C++ Builder 5), just shoot me an email and I'll gladly send you a copy.

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

March 22, 2001, 11:43 AM

Looks powerful. Good work :)


March 22, 2001, 11:51 AM

Wow looks cool. Nice work !!! :)


March 22, 2001, 12:41 PM

nice work, i really like the small script language to edit patterns



March 22, 2001, 12:50 PM



March 22, 2001, 12:56 PM

Your programmable modifier, is a good idea!!

Very cool



March 22, 2001, 12:57 PM

Can we download the running App and where please



March 22, 2001, 01:12 PM

maybe you could post the code as a 'COTD' if people are really interested.

Bart Coppens

March 22, 2001, 02:14 PM

Looks very good, especially the scripting thingy.
Maybe someone alse might have a place to put the script if it isn't too big. (I have some webspace).
BTW: what's the first word of your comment by the marble modifier? I can't read it very well.


March 22, 2001, 02:17 PM

Looks nice.


March 22, 2001, 02:45 PM

Looks like '#funky marble' to me.


March 22, 2001, 04:24 PM

Nice funky marble :)

"just shoot me an email and I'll gladly send you a copy"

Well, I would love to see those modifiers in action so if you could shoot it to me that would be great... :)

(executable only is enough since I can't compile Borland specific code (ie. VCL) with VC++)


March 22, 2001, 05:52 PM

First word on the 'Edit Modifier: Marble4' Window is
"# funky marble"

it looks very nice though... well done

Steve 'Sly' Williams

March 22, 2001, 06:39 PM

If you like, I can post the project on the turbo site if you wish. turbo is a site for game development with Borland products. Email it to me at and I will put it up there for you.


March 22, 2001, 07:12 PM

well, since it appears he did give it somewhat of a scripting ability... he may have given the option to save scripts... Thus, in alot of scripting languages the # would be used as a comment(just going off what I remember of Matlab)... So, no error.... i think


March 22, 2001, 07:13 PM

no-one ever seems to read subthreads...

Doesn't it sound like it might have made sense to answer the question about what it said back where it was asked? ahhh, cunning...



March 22, 2001, 08:43 PM

Is it just me, or is that a lot of code to get done in two days? I understand the programmer here probably has healthy experience with this sort of code, but if weekends are two days where he comes from, then I'd say there was some commendable effort put in here.

On the other hand, and I do not mean any offense, a programmer isn't in the right state of mind to accurately estimate how long a project took them. :) Reused code is one big gray area.


March 22, 2001, 09:17 PM

Hi. I'm Shawn, the poster of the IOTD. Just to add a little clarity, there really isn't a whole lot of code to this program, it's actually quite simple. The expression parser/evaluater isn't totally fruits of my labour. I borrowed a lot of the code from a program I found on the 'net one day while searching for info on developing code interpreters. It's been modified quite a bit for my own use. Other than that it's just a simple GUI app and perlin noise generation routines. I got it done in 2 days because it's really only 2 days worth of work. I had nothing better to do anyways :)

Jason Perkins

March 22, 2001, 10:20 PM

As far as scripting goes, definitely check out Lua ( It's a great little language, and a piece of cake to integrate with C code (took me about 20 minutes). It's fast, small, compiles to byte code (or runs as text), and includes a complete set of math/trig routines plus loads of other stuff. I use it in darn near everything now -- in fact I just used it to write a little texture font generator (

Steve 'Sly' Williams

March 22, 2001, 11:26 PM

I am probably not alone in not liking to click a separate link to read a subthread. I would prefer subthreads displayed on the main thread page, perhaps indented under the root message.

Steve 'Sly' Williams

March 23, 2001, 01:14 AM

The zip file containing the source and executable for Shawn Kirst's Perlin noise texture generator has now been placed the turbo website. Direct link here (299KB).


March 23, 2001, 04:58 AM

Thanks for the running and source.

It is a very very very power ful application !!!



March 23, 2001, 06:15 AM

looks like shit

nah just kidding, looks cool ;)


March 23, 2001, 06:18 AM

The guy above me is gay ;)


March 23, 2001, 06:19 AM

hahaha you fucking bastard hahahaha


March 23, 2001, 06:34 AM

Very nice picture, very nice textures.
Anyway it seems to me that the use of name Perlin Noise is a bit misleading here. As i see from the script line (bottom-right window) and from all images,
the texture shapes are based on turbulence ( sin(a*turbulence()+b) ). And in fact the turbulence function can use any type of noise function. The right is that Ken Perlin was apparently the first who came up with turbulence-like function.

I recommend this wonderful book full of interesting ideas, programs and pictures:
Ebert et al., Texturing and Modeling, A Procedural Approach (Second Edition), Academic Press 1998


March 23, 2001, 07:45 AM

I am just thinking "What a nice tool to generate image maps to terrain generation".

Very Cool !!


March 23, 2001, 08:03 AM

you do know that there's an option in your preferences to flatten the threads so that all the posts are visible?

Manuel Astudillo

March 23, 2001, 08:07 AM


well, this thinggy reminds me that I have to finish Syntextic Studio.
If you havent checked it yet go to:

It is a texture generator that supports a lot of primitives, not just
perlin noises, and its based in an own scripting language.
The idea of modifiers is quite cool, but Syntextic is based in the
script itselft to generate the texture, and in next versions we will
add post processing filters, which will act as modifiers...

Just now we are working on the final version of the program, with a
lot more improved user interface and quite more features for
the generation itself. The hompage has been totally redesigned with
a lot of features too, but its not online yet.

and of course everything is free...

(please send comments and critics:


March 23, 2001, 08:16 AM

Looks REALLY cool.

Gewd work!!!

Please, post a message here as soon as you get a website where i could download it. By mail... hmm.. that isn't a good idea :)


March 23, 2001, 10:36 AM

Where are the preferences for this site? I have never seen them.

This thread contains 33 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.