gallery

programming | gimp

unfortunately, my painting and drawing efforts have ceased after high school.
but then again, nothing can beat the elegance and beauty of c++, right?

most of my projects had (and still have) to suffer from my well-known
inability to finish anything once it's beyond the fascinating
i-really-want-to-get-this-to-work-thing. on the other hand,
that might be the sign of an everchanging mind and genius,
don't you think? i'll never lose hope.

mandeljulia

c++, win32
2003
win32 executable
vc++ source code
i wrote this mandelbrot/julia explorer for a class at university, and i think it's a fun toy to play with. the mandelbrot and julia sets are fractals based on the feedback function x = x² + c. the mandelbrot set is a map of all julia sets. by dragging the mouse over the mandelbrot image, one can examine the corresponding julia set that is rendered in realtime. it's a win32 application written in visual c++ 6, using an optimized 3dnow version that renders two pixels at once (only available on amd athlon).

ray

c++, linux
2002
during a graphics class at university i re-discovered my love for raytracing, and now i should have the mathematical and theoretical background to make it work. as of today, it only renders reflective, colored spheres, but i'm looking forward to adding plane and polygon support as well as textures soon. [update: well, all good things take some time.] the pic on the right is showing some csg, shadows, and minor reflections - it took about four seconds to render on my athlon 600 (640x400x32).

conactivity

c++, linux
2001
though university had somewhat weakened my self-educating spirit, this project i did together with three other guys (doron, stefan, daniel) for a class at university put me "on spot" again. it's based on the popular board game activity (nobody's sued us yet), but can (only) be played on the network with audio and video broadcast. it was a big project that got pretty mature in the end, though the gfx are a bit on the simple side. its infrastructure is rather complex, with a multithreaded gameserver and an audio/video mcu (multipoint control unit) being connected to several qt-based clients. the game server was based on the excellent ace toolkit (adaptive communication environment), all audio and video stuff was done with hacked programs based on openh323 (openmcu, openphone). for compiling you need: luck, ace, openh323, qt2, and luck again. don't forget to buy coffee because ace and openh323 alone take at least 1.5 hours to compile.

fba

pascal, win32
1997-98
source:
main, assembler,
complete (zipped),
binary (zipped)
for my final exams in 1998 i wrote this image manipulation program (no pun intended, gimp!) in turbo pascal for windows. for the 32-bit-parts i had to use turbo assembler because tpw is, well, 16 bit only. it offered input and output filters for bitmap, targa and zsoft pcx, each of them causing severe headache when being transformed into a uniform internal representation. it also allowed the user to scale, sharpen and soften the image. probably still my most polished program (because i had to) at about 4000 lines of code. before executing it you probably need the borland windows custom controls, contact me if you don't have them and really want to see this thingie in action. or you take a look at this screenshot (don't mind the german text).

3d

c++, dos (djgpp)
1997
source:
main, vector, rasterizer,
complete (zipped)
still during high school, i wrote this mini-3d-engine to learn more about c++ and graphics programming. it's object oriented and offers wireframe, flat and gouraud shading models. once again, the crucial parts are done in assembler, though the djgpp compiler (aka gcc) did a much better job at optimizing than borland's pascal compiler collection. everything is done in integers using a fixed point notation. i actually wrote some comments (no idea how this could happen). once again no binary, it probably wouldn't work on today's operating systems either (32-bit dos protected mode, vesa 2.0 linear framebuffer).

modplay

pascal, dos
1995
source
during high school, i wrote a player for amiga mods (multitracked sound format based on samples) using borland turbo pascal 6.0. it's about 2000 lines of code and uses lots of assembler (hey, it came close to 22 khz on a 386sx20). looking at this code today i must confess it isn't written in a particularly clever way, but it works. because i did some direct soundblaster and dma programming chances are that it won't work on your pc, let alone compile on anything else than tp6 or bp7. that's pretty sad because it worked and had a nice real-time oscilloscope. of course no special effects were implemented (echo, flanger, ...), since i was perfectly happy that this thing was running anyway.