Jim's Projects

 
This is a list of non-work-related projects I've been working on. If you're interested in any of these projects, feel free to drop me a line. If nothing else, I'd like to chat about this stuff.

Many of my projects take the form of original software. Be sure to peruse the collection of free software I've posted nearby.
 
OpenGL and other Graphics Programming

Fall-Winter 2001-2002. Having explored 3D programming in DirectX8, I am now exploring OpenGL, which has a cleaner interface, and runs on multiple platforms. Unfortunately, some of my graphics cards aren't optimized for OpenGL as well as DirectX (a good example of Microsoft's clout stifling a superior, but underfunded technology).

I'm doing most of my modeling in "Rhinoceros" which is a nice Nurbs-based modeller (and not too expensive on the faculty discount). I convert these models to .3DS files and render them in OpenGL. I'm also doing some nicer non-real-time rendering in BMRT (a renderman-like system).

Current and upcoming programming projects: I've ported my Kaleidoscope screensaver, "Trinkets," to OpenGL, and begun work on a recreation of a classic 19th century parlor kaleidoscope which contains liquid-filled glass ampules. "SpaceRangers" is a screensaver in the style of a Black and White 50's B Movie, with cigar-shaped rockets and so on. "TreeGrower" (a literal translation of my last name) is a program for modeling trees and rendering them in real time. I'm working on some more surreal screensavers. "Yggdrasil" depicts a mystical wind-blown tree next to a rippling pond. "Paradise Lost" and "Heart of Darkness" are two others with more abstract and personal imagery. Finally, I'm making a small collection of screensavers for flat-screen monitors, including an aquarium which contains only Flounder and other creatures lacking in depth.

Check out my software page if you'd like to try a screensaver.


 
Kaleidoscopes and Stained Glass

Spring-Summer 2001. I recently lectured on "Random Numbers and Computer Art" at UCSD. For the lecture, I programmed a Kaleidoscope simulation to illustrate a metaphor about the relationship of disorder and order in computer art. In the process I became fascinated with Kaleidoscopes, and the recent resurgence in Kaleidoscope artistry.

I read a few books on the subject, and learned about the Brewster Society.

I visited an amazing collection of scopes in Fullerton at the Eileen Kremen Gallery, purchased a few, and began learning a little bit about stained glass, so I could construct my own scopes. I'll be taking a class in stained glass over the summer.

I also programmed a Kaleidoscope Screen Saver for Windows, which you can download. I began working on an accelerated 3D version of it, using DirectX-8. Email me if you're interested in beta testing it.
 
Procedural Textures and Compositing

Winter 2000-2001. I've been working on a new program called "QTS" (QuickTime Synthesizer) which uses an XML-like syntax to create procedural textures and animations. It's basically a more powerful version of "Pixel Magic".

You can view some sample movies here.
 
Classic Cryptography

Summer 2000. Having recently read David Kahn's "The Codebreakers", I've been studying cryptography as the hobby du jour. I've developed an interest in the Voynich Manuscript, a medieval manuscript which is written in code and is still undeciphered. I have also joined the American Cryptogram Association, a motley group of amateur cryptanalysts.
 
Lego Robotics

I acquired a Lego Mindstorms kit in late 1999 and have been having a blast building and programming robots. You can find out more about Lego robotics at LUGNET, the lego user's group.

I've taught Lego Robotics to grad students at Art Center in Pasadena, and will be teaching a Kids class in the Fall of 2001.
 
Lexicons / WordOx

During 1999, I played quite a bit of WordOx, an online scrabble-like game, eventually becoming reasonably good at it. My interest in the game piqued a more general interest in Lexicons - collections of words, and wordplay. I published the results of some of my experiments in the third issue of The Tiny Lobster. My WordOx handle is "Tiny Lobster", by the way.
 
Windows and Unix

Technical acquaintances from before 1998 will be shocked to learn that, while I haven't totally "gone to the dark side", I did indeed spend much of 1998 programming in the Windows Environment. I ported some of my Macintosh shareware programs (Pixel Magic, Syd and Orville) to Windows, as a way to teach myself the Windows platform. I currently have a Unix Box, a Windows Box and a Macintosh on my desk, and, in a futile attempt to be completely "non-sectarian", I try to use each box 33.3% of the time. Unfortunately, that Windows box turns out to get far more use because my old Mac is getting pretty long in the tooth, so I use the (faster) Windows machine for Web browsing and e-mail. The Mac is used for photoshopping, and the Unix box for website maintainence. I program in various languages on all three platforms.
 
Computer Music

During the late summer and autumn of 1997, I've been reading about and making computer-generated sounds. The result of this work is Syd, a graphical instrument editor and software synthesizer for the Macintosh. I'm also working on a couple ideas for compositions, but mostly on improving the software.
 
Birds

During the summer of 1997, I got very interested in birds, and began keeping a life-list of species sited. Over a period of about 2 months I spotted a little over one hundred species, including a Costa's Hummingbird which has been staying in my yard.
 
Needlepoint

During the spring of 1997, as a result of my research into textiles, I got interested in computer-aided cross-stitching or needlepoint. I wrote a program to generate needlepoint patterns from PICT files, and began a working on a colorful spiral pattern derived from a computer-generated image, which was made using my Pixel Magic program. The old ladies at the needlepoint store were very helpful with my oddball questions, and provided me with some swatches to photograph digitally, so I could determine the RGB values of the colors. The work is almost complete now, although completing the background color is very boring and progress has slowed in recent months. If you're looking for a relaxation exersise to put you into a zen-like trance, needlepoint is a good candidate.
 
These next few topics are obsessions from the first few months of 1997. They are all loosely inter-related.

Weaving

I'm interested in creating textiles with fractal patterns, but have found computer controlled weaving looms to be prohibitively expensive. Probably the most prominent company which sells computer-controlled dobby looms and software is AVL. The designer Jhane Barnes was making fractal fabrics for a while - and is certainly one of the best proponents of computer-assisted textile design, but appears to have stopped selling fabrics with explicit fractal patterns.

I've embarked on a related project to create an emulator of a historical Jacquard Loom. The Jacquard Loom was introduced in 1801 and was in widespread use by 1840. It was one of the first mass produced machines which used punch cards, and an important influence on Charles Babbage in his design of the Analytical Engine. The Punch Cards used in Jacquard Looms can be considered the first "digital graphics file format".

I have been searching for an intact set of historical Jacquard punch cards, so that I can scan them into the computer and create an emulator of a 19th century loom (note that modern day jacquard looms exist in quantity, and computer-controlled weaving is a basic element of the textile industry). Thus far I have found no 19th century Jacquard cards in existence, although there are certainly numerous antique textiles which were produced from these cards.

I have constructed a basic drawdown program in preparation for this project, which is similar to the shareware drawdown programs available at the AVL website, but has better graphics. If you're interested, drop me a note.

Some of the more interesting Jacquard patterns can be seen in the shawls at the Paisley Museum in Scotland. Weavers in Paisley used Jacquard looms extensively in the mid-19th century to weave elaborate shawls in imitation of more expensive hand-woven shawls from Kashmir. The characteristic patterns in these shawls are now known as "paisleys".

Unfortunately, most of the expertise in this area is not available on the net....

Mathematics

I'm currently interested in Number Theory and Combinatorics. I've been learning enough combinatorics to answer such questions as "How many different patterns can be produced from a weaving loom with 32 warp threads, 32 weft threads 3 Colors of Yarn and 4 Harnesses and 4 Treadles?"

Much of the experiments I do in math end up being visualized in the Pixel Magic program.

History and Archaeology

I recently created a parody website called The Institute for Druidic Technology which required some research in Archaelogy and Prehistoric Britain.

The inspiration for this project was a photograph of the Desborough Mirror, a Celtic bronze mirror which contains a design which is highly reminiscent of a fractal. I thought, "wouldn't it be interesting if the design actually WAS a fractal - and what would the implications be?" The implications, as followed up on the website, would be that the Druids had access to advanced computing technology, stone laptop computers, screen savers, video games... It's all rather silly.

Tom Stoppard's play "Arcadia" has some similar themes. In this play a precocious 19th century girl named Thomasina is suspected of having stumbled upon fractals. Lord Byron figures prominently in this play, and no doubt Ada Byron is an inspiration for the character of Thomasina. It is Ada Byron who said of Babbage's Analytical Engine "the Analytical Engine weaves algebraic patterns, just as the Jacquard-loom weaves flowers and leaves."


 
The following sections are some of my longer-term obsessions - some of which I've been fiddling around with since the mid-80s...

MIDI to Graphics

A couple years ago I wrote a program, which creates real-time computer animation in response to a live MIDI data stream. In other words, when I play the piano, cool stuff happens on the computer screen that matches exactly what I'm playing.

This program works by extracting various quantifiable musical elements from the MIDI data, such as note loudness, duration, pitch, rhythm, choice of chord, harmonic changes, etc and uses these numbers to control various graphical elements of the animation, such as number of objects, size, color, speed, direction of motion, etc.

The result is a hypnotic display that matches the music perfectly - I believe it is especially suitable for music which has a high degree of precision and clarity, such as classical and baroque music. But it is also fun for Rock and Blues.

I've also made modifications to the program so that some elements of the animation can be choreographed by inserting triggers in a prerecorded MIDI data stream, and I've also added support for using it as a mechanism for creating real time Karaoke graphics that can match the chosen tempo of the performer.

This technology is perhaps most suitable for live performance, however, and would be a great addition to an effects laden stage show.

I've made the program, Hypnoticon, available from this website. It requires a color Macintosh with Apple's MIDI Manager. The documentation is scanty, as I've had very little time to work on it as of late.

Other Music Projects

I'm still composing music and writing songs, albeit at a glacial rate. I've had an interest in computer-aided music composition since my days at Cal-Arts when I wrote a program that generates contrapuntal compositions (Palestrina). I would like to combine my MIDI to Graphics program with a real time music generator to create a self-contained sound and light show.

More recently, I've also written a program, "Syd" which does software synthesis, and can produce some interesting sounds.

Visions of Mars

In 1994 I produced a CD-ROM called "Visions of Mars". This was a co-production of The Planetary Society and Time Warner Interactive. Two of these discs are slated to be sent to the Red Planet aboard two Russian Spacecraft in November, 1996.

The disc is a kind of time-capsule. It contains a library of classic science fiction stories about Mars, by the likes of Arthur C. Clarke, Isaac Asimov, Ray Bradbury, H. G. Wells and numerous others, as well as a collection of great science fiction art and audio clips.

Hopefully, one of these discs will be found, and treasured, by Martian colonists at some time in our future. I hope they're still running Windows!


 
Computer Chess Programming

I've written a computer-chess program for the Mac and at times have been quite immersed in following computer chess activity. I was probably the only "groupie" (e.g. non participant) who attended the ACM computer chess championship in Cape May New Jersey in 1994.

Contrary to popular opinion at The Palace, I am not a very good chess player. One of the main things hindering me from improving the play of my chess program is that it easily beats me and I am at a loss to figure out why, since my chess is so poor.

More recently, alas, my subscription to the "International Computer Chess Association Journal" has lapsed.

In the Winter of 2000-2001, I taught a Chess Club for the students at Foundations Community School in Van Nuys, CA.

Computer-aided Mentalism

One of my favorite projects is using computers to perform effective magic. I've found the type of magic called "Mentalism" to be particularly appropriate for the use of a computer.

At the turn of the century and later, a type of act in which the magician worked with a "medium" (typically his wife) was very popular. The magician would walk around the audience holding up various objects supplied by audience members, and the "medium", sitting on stage, blind folded, would precisely name and describe the objects to exacting detail.

I've written a Macintosh program, Orville, in which the computer plays the part of the medium. It uses the same time-honored methods for achieving the effect. When presented as an experiment in "Artificial Intelligence", the program has fooled some fairly astute, technically savvy friends of mine.

Image Synthesis

Pixel Magic is an art program for the mathematically literate. It creates images by computing the results of mathematical expressions (thus the name) which you supply.

Photoshop Expression is a Photoshop Filter that performs the same functions.

These programs can be used to create some extremely interesting and beautiful special effects such as Fractal Zooms, animated clouds and many others. I use it mostly to create animated textures for 3D modeling but it has a number of other uses. If you're scared of a little math and/or don't know what Photoshop is, I'd suggest leaving it alone.