Řrřlog::downloads

Here are some of my productions created over the years. Most of them are works in progress. They are released under the ICS license: do whatever you want with them, but at your own risk. Executables are compressed with UPX.

Graphics

Spatial color quantization Iteratively finds a palette and dithering for a given image. Based on the article “On spatial quantization of color images”, but the visual model is much more realistic.

Procedural textures Generates procedural 3D textures (two layers of modulated Perlin noise). Code originally from POV-Ray.

Intros

Intros are programs with tiny executable size, usually displaying an interesting realtime effect. The ones here are written in assembler and use the ancient COM executable format with all of DOS’ advantages and limitations. They run in Windows XP or older — use DOSBox elsewhere. To exit an intro, hold [Esc].

Also check out Pouët.net for more realtime eye-candy.

Dírojed (Hole eater) , 32 bytes My demoscene debut: a simple cellular automaton, updating one pixel at a time. Optimized from T$’s original.

Paralaxa , 32 bytes Parallax planes creating an illusion of 3D. Also a non-escapable version with the planes warped according to a texture.

Vycházka (Jaunt) , 64 bytes Another cellular automaton; rules vary with screen position. Gets more and more distorted.

Slejvák (Downpour) , 64 bytes Rain! Randomly-placed vertical lines with heavy horizontal blur.

Čtverečky (Little squares) , 85 bytes Rotozoomed texture with feedback creates chaotic spirals. Proof that the default MCGA palette can look stylish too.

Výheň (Furnace) , 99 bytes Fire! Complex heat-propagating rules with pretty colors. Versions are named after chemicals.

Mixér , 128 bytes Radial lines with blur. The central eye slowly swallows the whole screen until only black, white and red remains.

Symetrie (Symmetry) , 256 bytes A strange attractor randomly choosing among three Moebius transformations with changing parameters. Also a screensaver!

Vlnky (Little waves) , 256 bytes Plasma-warped plasma with spatial- and time-propagated error diffusion and slowly changing palette.

Puls , 256 bytes ( YouTube Binary-search raycasting of an animated 3D scene.

Difúze , 256 bytes ( YouTube Gray-Scott reaction-diffusion with MIDI appergios playing in the background.

The following intros are playable. You have to lose to exit them.

Shifticida , 32 bytes Tiniest game ever. Press your [Shift] more vigorously than your opponent and crush him in a corner.

4is256 , 256 bytes A tetris game with scoring, increasing speed, fast dropping (for extra points) and funny controls. Beat my top score of 21787!

Effects

I like playing with graphical effects that might turn into intros someday. They usually use old-school software rendering, but are realtime on newer machines. Sources for MinGW are available on request (then need cleanup badly).

Recently I’ve ventured into GPU shader programming to learn how to make 1k and 4k intros.

Boxplorer 1.02 GPU raymarcher of the Mandelbox fractal (needs SDL and a good graphics card). May compile in Linux and MacOS, too.

Atraktor 1.1 Rotating strange attractors generated by my own formula. Leaked from my Deviantart account to freeware sites.

Difúze Gray-Scott reaction-diffusion with radial blur. [P] resets, other keys change parameters. Needs a speedup.

Puls ...waiting for backport from ASM...

Useful stuff

Řrřola’s C headers A bunch of header files to make my C programming easier. Used in other projects.

org2xm Converts the awesome music of Cave Story into the XM module format (suitable for trackers or Winamp).

Coder’s Choice fonts 1.0 Monospaced Windows bitmap fonts for programming. Two widths are available: 7×11 and 6×11.

Řrřola’s keyboard layout 1.04 Hybrid Czech-English keyboard layout for programming. Can be used in Windows 2000 or newer.

TGA downscaler Downscales a 24-bit TGA image by the Lanczos3 filter in linear color space. Can process very large images.

College projects

These aren’t very useful on their own, but contain implementations of many interesting algorithms.

Karhunen-Loève transform Compresses grayscale images by finding the eigenfunctions of their 8×8 tiles. Something like JPEG, but tailored to the image.

TrueSeer Truecolor wavelet image compression with channel decorrelation and arithmetic coding. Everything can work losslessly. Version 1 uses greedy wavelet packet transform and linear prediction of coefficients. Version 2 uses the bandelet transform — visually better for mid bitrates, but slow.

Finite elements + matrix multiplication Solves a partial differential equation on a regular 2D grid. Also, benchmarks show that dense matrices should be tiled for better cache coherency. Done for Numerical Mathematics.

Dynamic time warping [training data] Simple voice recognition — dynamic time warping over MFCC vectors. Trained for Czech digits… by me ;-)

Scrapheap

Here you’ll find programs as old as 1998.

Wolf Very simple Wolfenstein-like engine hacked on a rainy afternoon. Uses the SDL.

Painball Wireframe portal engine for an unfinished first-person shooter. Done in high school with my friend Martin Káldy (he made the kick-ass level editor). You’ll probably need DOSBox to run it.