Return to the home page for Patrick Kellogg
Projects
Click on a project below to go to that section of the web page
Current projects:
"Medieval Apprentice" PROLOG text adventure
"AmbiNet" neural network classifier
"MATMOOG" analog synthesizer
Monte Carlo "War" Simulation
Neural Network Model of Efferent Neural Signals
Axon Neural Network Synthesizer
Music and Sound:
Independent Component Analysis (ICA)
Wavelet Analysis of Music
Physical Constraints on Wavelets
Sound Objects
Letter-Spirit Feature Recognition of Sounds
Fractal Compression of Sound
Computer Theory:
Ping-Pong Model of Computation
"Machina X" board/ computer game
New Programming Language
New Operating System
Distributed Windows 98
Automatic Geometrical Theorem Prover
Pseudo-Science as a Belief Network
Automatic Code Generation
Monte Carlo "Solitaire" Simulation
Neural Networks:
Free-memory Neural Network Model
Neural Network Classifier for Sunspot Activity
Rotoscope Football Demo
Games:
Time-slip Space Shooter
SpaceFrog
SimHouse
Ultimate Platform Scroller
"Gods" City-building Game
Prophecy Trail
Pennsic
Court Intrigue
Miscellaneous:
A Skeptic's Guide to Electromagnetic Waves
Pat's Puzzle Page
Consulting Article
Boulder Computer Game Developer's Asscociation
3D Cinematography
-
"Medieval Apprentice" PROLOG Text Adventure
I was doing a joint project for my Artificial Intelligence and
Computer Theory classes. It was videogame using Perl and Prolog together. I decided
on using SWI-Prolog, and I started working on the axiom base. However, I
never did the
user interface except as screen snapshots.
-
"AmbiNet" Neural Network Classifier
I am still trying to build an "ambient sound neural net classifier"
for a San Francisco Bay-area artist named
Bill Fontana. I finished the main theoretical basis for the project last
year, and I have produced a paper of my
results. Please contact me for a copy.
However, I have been bogged down for the last year trying to get an
implementation working in Microsoft Visual C++. I currently have a demo running,
and I'm hoping to fix all the bugs by the end of this semester. Bill would like
to use the program in a "sound sculpture" he is working on.
-
"MATMOOG" analog synthesizer
I have started to build an analog sound synthesizer in
MATLAB. This is an easy project, but I only get to work on it in my spare
time. However, it's been a lot of fun to work on, and it's given my a lot of
insight into the "psychoacoustic" nature of analog synthesis.
-
Axon Neural Network Synthesizer
Another project: using a neural network to gradually learn
the important features of a sound in real-time. I will post *.WAV files if I
get this working. This was my original idea for the AXON neural net
synthesizer. To do this, I'm working on a neural net implementation as well
as trying to learn Independent Component Analysis (ICA) and wavelet
decomposition.
-
Independent Component Analysis (ICA)
I've always liked the idea of ICA. I think maybe the ability to discover
features or parameters automatically from music could lead to a new form of
music synthesizer.
-
Wavelet Analysis of Music
I'm a little tired of Fast Fourier Analysis (FFT) on discrete digitized sounds.
Though the FFT gives a lot of information, it's impossible to modify the
FFT and turn it back into the original signal (due to the windowing). I'm hoping
wavelets would be a good solution. I've bought a few books, but haven't read them yet.
Put this on the long list of things I'd like to learn.
I *think* it's similar to doing a Maximum Likelihood of various transformed "mother
wavelets". See the next item for my idea of a project
for next semester's "Natural Language Processing" course.
-
Physical Constraints on Wavelets
The human voice can only hit a certain frequency range (and some frequencies
are more prevalent/ probable than others), and the medium of air also limits the
frequencies that can be transmitted. Plus, the ear has another limited range, with
different sensitivity of different ranges. Anyway, this limits the possible wavelet
transformations that can be done. All sound is a linear combination of sine waves,
so maybe all this prior information will help me do wavelet decomposition with
physical limitation in mind. Or something like that.
-
"Machina X" Board/ Computer Game
I've got a demo for this one, and maybe Rod Derrick's family and friends
will let me test out this one. I played it for my History of Computing
class, but most of the students were underwhelmed. The biggest problem right
now is that players want to take forever to figure out the actions of
playing certain cards. Also, finding the right mix of cards (and figuring
out if the game should be played "statically" or
"dynamically") is being a problem. I'll probably finish this up in
Access and distribute the game for free over the web
-
New Programming Language
The joke goes like this: a professor asks a grad student to create a database
to store all the student's grades. A month later, the professor checks in on the
grad student, expecting the work to be done. The student replies, "I've written
the operating system and designed the programming language... all I've got to do
is write a compiler and I'll be done!"
I'm not that bad, but I *did* think up a clever twist on programming languages
while I was taking a Java class. Then, I quickly forgot my ideas. But they are
written down somewhere, they really are. Another language was designed to
easily morph programs into other programs for use in genetic algorithms. Of
course, in C++, morphing "for (int i; i<10; i++)" into "fom
(int i...)" will break the code. How to let small changes have small
differences but still let the program run?
-
New Operating System
Again, I can't remember what I was going to do, but I had a bunch of ideas at
one point. I think it was a form of "meta-Windows" that ran the operating system
in emulation and reality at the same time, and compared the output. Ideally, it
couldn't crash (grin).
-
Distributed Windows 98
This one fascinates my, but I'm just learning about Windows programming. It
would be fun to have windows all over the place on different computers, and
I could send messages back and forth. The output would all appear on one
computer, although bits of Windows would be everywhere.
-
Geometrical Theorem Prover
I love two-dimensional compass-and-ruler geometry. The search space is HUGE,
but it would be cool to automatically find some new constructions. For
example, I've forgotten how to make a perfect pentagon using only a compass
and an unmarked ruler. Does anybody remember?
Scratch pad:
A game that modifies its instructions in real-time (like Cosmic Encounter)
A computer that modifies its instructions in real-time
Computer-brain-surgery robot arm (i.e. it solders itself)
Explore Non-Von-Neumann architectures
Study parallel processing algorithms
A Java Turing Machine simulation on the web
CU Prisoner's Dilemma Competition