| Programming explorations. The only work worthy of glancing at would be FracHat and the matlab explorations, as they done during/after a remarkable programming co-op. The evolution of the programmer might be seen here. Though everything did always made pretty pictures. |
Gtk Mandelbrot fractal explorer FracHat
|
Co-developed with Hatem Hassanein. Gtk+ 2.0, Gdk, Gdk-pixbuf. This is the first project after Lexmark experience. Boy, does it show? Should be on SF.net sometime soon (as of 2005-01-07), as it is under quite a bit of development. We (Hatem and I) hoped to make this both an experiment in Gtk and hypermodularity, as well as a pedagogical tool for those wishing to dabble in mad C and Gtk & friends. Started 2004-11-23, ongoing. Files:
Some examination of chaotic population systems
|
I explore some aspects of a very interesting and very famous nonlinear growth model, which uses a logistic difference equation. The goal was as interesting as the journey: I used octave (a Matlab-clone) to simplify the programmable aspects of the subject and focus exclusively on the remarkable results. A half-day's work is logged at my wiki.
Having nothing whatsoever to do with programming, these images were generated using 3dsmax (back when I used windows) and come from a common Christmas decorations trick. The nonlinearities of four-ball reflections.
Quaternion generator
Hand-coded raytracer to generate Julia quaternions. Prototyped in Python in a day, ported to C in another day.
Obviously, you can put in different values for c and re-compile and re-run. (Sorry.) However, the raytracer currently can not rotate the views.
A glance will indicate it was done before the Lexmark co-op. It can be made a lot more efficient and clean and extensible.
A 5600x4400 image render ran on the ECE cluster for approximately eight days spewing out the original PGM. (PGM is a very simplistic image format. Anything should be able to read and convert it to something nice like png.) Inspiration came circa summer 2002, from Paul Bourke. Circa August 2004.
Files:
- Python prototype. Obvious speed issues. Usage: python quat.py > image_.pgm
- The C source. (Originally I couldn't get it to print out the PGM width/heights correctly and I used a dirty bash script to print the correct ones; this should be fixed now. If the output PGM isn't correct, check the widths and heights as listed on the first line of the file.) Usage: gcc -o quat_clean quat_clean.c -lm && ./quat_clean > check.pgm
- 2800x2800 render (3.5Mb)
- 5600x4400 render (13Mb)
- Wallpaper (420Kb)
Lisp Raytracer
Quite a simple raytracer for planes and spheres written in common lisp. Decently optimized. This ungainly bombast is as of now my greatest ode to celebrate my love for lisp. Inspired by Paul Graham's ANSI Common Lisp. Circa May 2004. Files:
OpenGL Lorenz strange attractor explorer
In OpenGL and Glut for UI, this is quite a remarkable little app that lets you tweak all the Lorenz constants and change the view using openGL's excellent 3d mechanisms. Again we see that hand-coding advanced features might feel good, but just takes a lot of time when you could be letting something else handle it, allowing you to focus on the fun things at hand. Circa July 2003!
Files:
- OpenGL C source, compile with: gcc -O 06-lorenz.c -o 06-lorenz -lglut -lGL -lGLU -L/usr/X11R6/lib -lXi -lXm -ltiff (needs all the GL libraries as well as libtiff to compile). Key usage: "qweasdujikol" and Esc; right-click menu.
- Pretty picture
Misc II
I really should redo that Traveling Salesman Problem via genetic algorithms in lisp. Other projects of note displayed here for homely nostalgia: (these were made when I was extremely young)