Welcome to the Primordial Seductive Logic Web Site

Jamie Fenton here. I am notorious for many reasons.

Aug 10, 2009 - A New Version of HayWire is Now Available for Testing

HayWire Blog launched

You can find it over at seductivelogic.blogspot.com.

Right now it has some images captured from the program with some explanations, and I will likely use it more and more and update this page less and less, since its easier than vice-versa.

Try HayWire & Barn Burner

... and help me fix the bugs in both!

I have been intending to make HayWire/Barn Burner, my real-time memory visualization program available for everyone to play with for most of this year. As "Beta" is usually defined as being "feature complete", the problem was that I kept thinking up new features! That, plus a desire to show the program at a high level of craftsmanship, has caused me to keep putting off the release date. However, delay presents its own set of problems. My programs always come out best when I have a lot of people chiming in with suggestions, critiques, pointers to related projects, and error reports. The code gets right much faster that way, and I don't feel so lonely either.

I have uploaded a distribution to see what kind of response I get.This is the first version I am doing this with, on July 17, 2009. If you feel daring, give it a try. If you are not, then please wait a little while so we get rid of some of the nasty stuff.

All the usual warnings apply and then some. While it has been remarkably stable for what it does, it does do a lot to your running system while it is active. Almost entirely "reading" and no "writing" whatsoever into any other address space or process. Most of its impact comes from its intensive use of the processors and memory. Please don't run this on a system that people depend on for their safety or livelyhood, or that you can't afford to crash.

Also remember that this program dumps memory to your video screen, and that it doesn't care if the information is secret or not. Putting a high-quality screen dump up for other people to download just might release an unencrypted password, credit card number, or the URL of a porn site best kept private. If nothing else, consider converting images to lossy formats like JPEG at lower quality before sharing them. It isn't perfect. I am investigating sources for "blacklists" of memory areas I should redact (censor), and if there is ever a mainstream version of this program, auto-redact is essential.

So what exactly does this program do?

Its very simple - it copies memory from somewhere in the vast range of your computers equipment to a window on your screen at a rate of 10-30 frames each second. It dumps memory - in unconventional ways. Various sliders, menus, edit fields, and adjustment tabs let you adjust where, what, when, and how the dumping occurs.

Unlike almost all debugging and dumping tools in existence, this one is not designed as a working tool for programmers, rather its for entertainment and amusement. (Although I have found it useful as a tool as well). There are related programs like this that people use for forensic investigation, This one isn't. It isn't the best tool for spying on people, or for defeating copy restrictions either. This program is dedicated to extending human awareness of what their computers are doing in the large and small.

When the program starts up, you see something like this on your screen:

The program has a Dump Button which captures the current display buffer contents and writes it to a sequentially numbered file. Here is a recent capture from deep within Adobe PhotoShop CS-II:

A recent addition involved creating a perspective fly-over effect like this. It doesn't used DirectX3D yet (but later versions will):

An important tool for discovery is the Line Width Control, which lets you set the number of pixels per horizontal line. This unscrambles bitmaps and highlights regularities

The following link takes you to a PDF version of a presentation about Haystack I created using the Google web application for presentations. The screen graphics are several versions behind reality, but most of the information is otherwise valid. Lets Make Hay

So where is the download button anyway?
This link will send you a .Zip compressed version of the program. Installation is very simple. You decompress the program to a directory somewhere on your computer and you then double-click on the program icon to start it running. DLLs, plug-in components, and so are all internalized, and the program makes minimal use of the registry. In particular, it doesn't add any codecs or filters to the system that might disrupt others. Among the internalized parts are two noteworthy ones: FrameLab and Haywire. They can be extracted and registered for DirectShow and Freeframe if desired. (If you need to ask how, you probably shouldn't try, at least until I dash-off some better documentation). The download directory has a few other items in it as well.

Other projects

I have been gradually pulling together a video switcher/special effects program for Windows XP (and eventually Vista). With this program and several web-cams, you can set up a desktop or laptop TV station. Money$hot handles the transitions, compositing, special effects, and titles, for you the same way a switching console does in a broadcast station.

This program requires a high-performance system to deliver satisfactory results.

Most dual-core systems handle Money$hot well, as do recent graphics cards running on PC-Express motherboards. Some earlier graphics cards are dog slow. As I continue to learn about DirectX and GPU cards, performance will improve and the subset of the installed base I can address will expand. Dual core seems very important - primarily because the FreeFrame-based plugin architecture is CPU-intensive. FreeFrame is evolving towards a GPU-resident capability, and so shall Money$hot.


While I am not commited to the license form I will use, I hope to make this available as free software. (I am waiting to see where I wind up working before I commit,in case they want to work Money$hot into their product plans). If its "just me", then I am intending to have a free version and a pay version, with the free version trailing by 6-12 months behind the pay version in functionality. This model seems to work well for GhostScript. Since we are starting with a free version, the timing is flipped, but should eventually drift to this plan.

Are you curious?

If you are interested in a demonstration, or about beta testing Money$hot, let Jamie know via jamie AT fentonia Dot COM.

Open Source Components

While Money$hot is far from finished, there are several components that I have been able to isolate and release along the way. These include a collection of useful Freeframe plug-in modules particularly useful for testing, such as a waveform monitor, vector scope, histogram+ display generator, a chroma keyer, a color component mapper/function generator, and an offbeat plug-in that copies arbitrary RAM blocks to video out. All of this is available at SourceForge. One of the treasures I came across while looking for special effects librarys is the EffecTV project. Lead by Japanese multimedia researcher Kentaro Fukuchi, this project has collected 48 real-time special effects particularly applicable to live interactive installations. Along the way he drew a dozen collaborators into his project, including Sam Mertens, Matthias Kleinmann, Buddy Smith, Christian W. Zuckschwerdt, Christian Berger, Ed Tannenbaum, Ico Doornekamp, Jun IIO, Monniez Christophe, Erich Schubert, Pete Warden, Nicolas Argyrou, & Ryota Koiwa. Most of EffecTV development was done on Linux, which is turning into a decent multimedia platform. EffecTV, like many Linux projects, comes with the GPL, which can be problematic, as it requires derivative works to also be distributed as open-source projects. I thought "how about making an adapter that converts EffecTV into a standard interface like FreeFrame, and then build a FreeFrame host interface into Money$hot? It sounds like a win for everybody, as many of the other Freeframe host programs can also use Kentaro and Company's library.

So that is what we have. A FreeFrame plugin that runs EffecTV. Plus a DirectShow filter module that loads Windows-compatible FreeFrame plug-in, Plus a small Windows media-player demo application that uses that DirectShow filter to call the FreeFrame plug-in that runs the EffecTV system (which is itself a plugin media architecture).

Display of 16 of the 49 Effectors (visual transformation processes) available in the FreeFrame EffecTV plug-in. This plug-in was derived from the EffecTV project, lead by Kentaro Fukuchi and his international team.

The easiest part was getting EffecTV to run under FreeFrame. I had an excellant port of EffecTV from Linux to Windows to start with, courtesy of a mysterious individual named TimeCop. This boost, coupled with the designed-in simplicity of EffecTV and FreeFrame, made enormous + visible progress easy. Connecting EffecTV and FreeFrame took a long weekend, while geting the image "right side up" on Windows took a Summer. All of this convinces me that simple multimedia APIs are feasible and in fact have appeared in the wild.

My port of EffecTV to Freeframe, and the adapter for running it under Windows can also be found on the SourceForge project.

One of the plug-in modules for FreeFrame has become a project on its own.

The FFRamDump plug-in was recently extended to allow dumping to video output across Windows processes and from the Windows Kernel. I also added more display options, and eventually improved the FreeFrame host and the multimedia player demo project, to create a usable "Rich media application", that has no effect on the registry settings used by DirectShow (a notorious "house of cards" known to crumble into expensive support issues").

The implications of this are enormous. I now can produce an interactive sample reel program on a CD/DVD or "thumb drive", which runs by double clicking on an icon, that loads Freeframe and DirectShow filters included within itself, and not only promises but can be verified as to not change the Windows registry in any way that could cause DLL Hell or CODEC Hell. (I do save some settings related to file directory preferences in the HKEY_CURRENT_USER/Software/Multimedia Classics registry key, which I may eliminate just so I can brag about it without caveat. Since modern WinTel-type computers often come with 2 to 4 Gbyte of main memory, the address space is vast, and locating a partiuclar feature is like "looking for a needle in a haystack". So Haystack is the Freeframe plug-in name, and HayWire is the demo application.

Image from HayWire dump generator. It has three windows. A full-height virtual page map on the left, scale 1 pizel : 4Kbyte, on the right of this is a display of process-memory 512 pixels per scanline x 256 lines. Below that is a 512 x 224 variation with the bitmap-stride set to 64, revealing a collection of icons in memory. Memory can be visualized in many other ways than this by varying the control parameters sent to the Haystack data-visualization plug-in.

The drive to improve FFRamDump and FFDemo was intensified when I learned about Dmitry Vostokov. Dmitry Vosokov is an engineer at Citrix involved with debugging their virtualization products. Dmitry has attacked the debugging problem with rampant imagination and has created a large blog, written half a dozen books on debugging (with more to come). Dmitry has gathered a collection of cartoons about debugging, and developed a database of crash dump pattern-types. He has proposed a system of Astrology, several Sciences, and recently founded a Religion based on memory dump analysis. About 2 years ago, Dmitry experimented with rendering crash-dumps as music, and a friend suggested he create bitmap images, so he created a program called Dump2Picture which creates dumps that look very much like those produced by FFRamDump.

I told him about my stuff, and he replied with an invite to write a book for his publishing company. He then put out a book of artistic images that he had discovered with Dump2Picture while I improved FFRamDump. (There is nothing like the spectre of "getting scooped" to light a fire under an engineer). Dmitry has played with HayWire, HayStack, and even the earlier FFRamDump and has made several useful suggestions already.

I hope to have HayStack and HayWire ready in a week or so. If you wish to beta-test, let me know. (jamie A T fentonia period com).