Jump to content
Sign in to follow this  
RSS Bot

ubikuberalles' Blog - Art via Programming: The Pattern Program

Recommended Posts

I'm never satisfied with anything I draw or paint by hand. I'm not a very good artist and I know it. However, whenever I make my computer create art, I am usually pleased.

 

(Sorry about the long exposition that follows. No doubt I'm rambling here. However, I feel it is important to set the background of my interest in creating art via programming).

 

The first time I made a computer created art was in the early eighties when my dad borrowed a VIC-20 from his business partner. The computer didn't have a disk drive or even a cassette recorder but that didn't stop me from having fun with the machine. The built-in BASIC was easy to learn (I already figured out Atari BASIC from a friend's machine) and I was quickly plotting objects on the screen. I don't remember much about what I did but I probably did something simple like plot an object with a random color in a random location. Simple stuff but fun to do. My dad only had the VIC-20 for a week or so, but I made good use of the time.

 

It wasn't much later when I bought my very first Atari computer. It was an Atari 400 with 16K of memory. No disk drive or cassette interface (couldn't afford it yet) and, for the first six months I owned it, I mostly played video games on it.

 

I also got a BASIC cart and the book Your Atari Computer and I took the opportunity to study Atari BASIC in greater detail and learn new graphic programming techniques. It was during that process I had my Atari create art for the first time. Again, the programs were lost to time but I did have my camera handy and I took a few pictures of the results:

 

new-scanner03.jpg

 

Squares plotted in a random location. From the looks of it I used the highest resolution graphics (Graphics eight) for the program. Here are some random lines plotted on the screen:

 

new-scanner04.jpg

 

It's all pretty fundamental stuff but I had fun programming the artwork.

 

After I got the cassette recorder I pretty much lost interest in creating computer art. That's because I was more interested in typing in programs from magazines and porting programs from the Altair (especially the Star Trek program). When I got my Astra disk drive I focused more on the games that came on disk like Jumpman and the Infocom text games. With all those distractions present, I nearly forgot about my artistic programming.

 

A couple years later those artistic urgings surfaced when I discovered a ReGIS terminal at the computer lab in the college I was attending (University of New Mexico). It took me a little while to figure out the ReGIS commands but I was able to generate the same kind of graphics I created earlier on my Atari 400 (instead of writing a program, however, I edited a text file, inserted the RegIS commands and then displayed the file on the ReGIS terminal). The ReGIS terminal had better graphics (better resolution and many more colors) but it had one big disadvantage: it was slow. That's because the computer (a pdp-11 IIRC) didn't connect to the terminal via a high speed interface like modern PCs do. The computer didn't even have a graphics card connected (it was a big mainframe server type computer and video cards were unheard of for those machines). Instead the terminal was connected via a slow 4800 baud serial line (this was the early 1980's - high speed network lines weren't readily available). As a result it took several minutes to display graphics that would only take seconds to display on my Atari (the CPU in the terminal was pretty slow too). Nevertheless, I perservered and had some fun with the graphics I created (I was feeling a little guilty too since these experiments in graphics had nothing to do with my studies - fortunately the ReGIS terminal was never in high demand).

 

Later on, when I started working for Philips Semiconductors, I discovered a VT240 terminal that had similar characteristics as the ReGIS terminal (except it was a B&W display). I quickly produced some graphics on the terminal. In fact some of my graphics files from school worked on the vt240. The graphics was a tad faster, mostly because the serial connection was 9600 baud but also because the vt240 had a faster processor.

 

It wasn't long before a color VT241 showed up and I was finally able to see my creations in color. At that point I had started writing programs that would generate the ReGIS commands for me instead of me generating the commands manually.

 

It wasn't until we installed GKS (Graphics Kernal System) on the VAX that my graphics work began to shine. I started learning GKS by just reading the manuals but I quickly decided that it would be quicker if I started writing programs using GKS (the examples in the books were either lame or non-existant). Soon I was creating programs that generated the same kind of graphics I saw on my Atari computer. Eventually I combined all those different routines into one big program that I titled Pattern. The program was written in FORTRAN and it encompasseed something like 1,800 lines of code. Work stopped on the pattern program in the late 1980's and I moved on to other projects.

 

Years later, when I got a Windows PC and Visual Basic, I remembered the old Pattern program and decided to port it over to my PC. I still had the source code for the FORTRAN program and the port to Visual Basic proceeded fairly quickly. Here's what the pattern program looks like in VB:

 

pattern01.jpg

 

It starts out pretty simple. Blank screen with a couple menu options.

 

When you select the Pattern menu item, a fairly large list appears:

 

pattern02.jpg

 

Here's the Line Box pattern which was the first pattern I programmed in FORTRAN and pretty much the first pattern I generated on that ReGIS terminal and vt240 terminals from years ago:

 

pattern03.jpg

 

After a while I got bored of static colors and I put in a "Rotate colors" feature with varying speeds (the "superfast" speed can be seizure inducing on some of the patterns).

 

pattern04.jpg

 

(That's the "pyramid" pattern, BTW).

 

I originally created the patterns with only four colors and so I later added even more colors to the program. Here's the "Line Box" pattern again but with 16 colors:

 

pattern05.jpg

 

What makes this whole "art via programming" fun is the unexpected results they create. After I created the "Line Box" pattern in FORTRAN, I wondered what would happen if I changed the value of one of the equations in the middle of the DO loops. I ended up with this:

 

pattern06.jpg

 

The "Cirle Box" pattern. I liked it and so I kept it. Serendipity is a wonderful thing when creating via programming. Another example of serendipity was whe I was working on the "Hexagon" pattern:

 

pattern07.jpg

 

However, the above is not what I got the first time I compiled and ran the code. A typo blocked out a section of the equation and I ended up with this pattern instead:

 

pattern08.jpg

 

I liked it. I labeled it "Galaxy" and copied the code over to another part of the program. I fixed the typo on the original code and was able to get the "Hexagon" pattern working.

 

There are a total of 21 patterns in my Pattern program (63 if you include the versions with the different number of colors). You've seen five of the best of them. Perhaps I'll post the rest later (about half of those I haven't shown are unremarkable and not worth posting).

 

I had thought about porting the Pattern program to Flash Actionscript but I think I am done with that program. Instead I'll create brand new patterns in Flash. Working on Visual Basic was fun and informative but Flash has a lot more power graphic-wise and I think I can do some really cool stuff with it. Fractal patterns would be cool but I need to do some reading up on the subject first.

 

 

http://www.atariage.com/forums/index.php?a...;showentry=2779

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...