Close
0%
0%

Free Portraits on Floppies

An interactive partially wearable art piece for VCF SoCal 2025

Similar projects worth following
This project consists of two parts: a vintage camera that records to floppy disks, and a backpack computer that reads the floppies and automatically prints a sticky-backed photo label for the disk.

Assembled hastily from mostly thrifted stuff, this project was designed to facilitate an interactive experience with functional vintage gear, while simultaneously generating a fun (and free) memento for the subject to take home. I thought the other attendees of the Vintage Computer Festival would be the best -and possibly the only- crowd to appreciate getting their portrait taken on a floppy disk, if for no other reason than that they might actually possess a floppy reader.

And to be totally honest about my intentions, as a socially awkward person at a conference I badly need something to do with my hands.

Auto-printing a label for the disk, in realtime

Origins

The idea had begun simply enough: to take portraits on a 1998 Sony Mavica camera, and hand the subject their digital photo on the native format of that camera, the floppy disk. Having used a floppy disk camera extensively in my youth, I knew they were fun, and I was excited to share that with others.

However, as occasionally happens in life, I found myself twenty four hours from the deadline with a lot of ideas and nothing tangible to show for them. I had a concept, a plan, and even the parts. I just wasn't sure if I had enough time to put everything together. 

I already possessed the camera and some floppies, which, under certain executions of this idea would have been all that I needed

I was emotionally preparing to shelve the project until next year when, around breakfast time the day before the event, I impulsively tried attaching a floppy disk reader to the outside of a backpack using heavy-duty double-sided adhesive, just to see how it looked:

When it stuck firmly and looked great, I knew I had to give the project a real shot.

Sometimes the best course of action under a time crunch is to file the idea away for a later date, and to hope for more advantageous circumstances when the opportunity next arises. I do often find that ideas mature with time. 

But other times the iron must be stricken whilst it is hot, and I find myself drawn to make haste by the pinging sounds of hot metal like a sailor lured towards a rocky isle.

And so, the day before the convention, I embarked.

Complications

  1. Labeling the Floppies: The first complication came when I wondered if the floppies should have customized labels for the event, which led to thinking about how cool it would be if the label showed the very image that had just been taken on that disk. The result would be something like a half analog/half digital polaroid, a physical token of the moment paired with a single stored copy of the digital file. And just like that, I had perverted a simple concept into a complicated one.
  2. Commerce: I also didn't want the audience to worry that I'd be charging money for these photos/disks, so it stood to reason that an explanatory t-shirt would be in order as the best method of communicating the free-ness of this offering. Folks are rightly wary of being sold to, and I find that commerce stands in the way of real connections, so I wanted to put the absence of a price front and center, and on my chest. 
Something like this?

Suddenly in addition to the camera, pulling off this project would now require some sort of support computer, a label printer and a special wardrobe. 

Call it a spiral if you must, but I find that details like these are what carry a neat idea out of the land of ideation and into the light of actual execution. When the payoff is the chance that others may actually enjoy the project, I find it very hard to resist making the attempt, even when a positive outcome is uncertain and the clock is running out. 

For some reason, the mild amusement of strangers is my siren song.

This was not intended to be a one-day project, but since it did become one, I'll present the details of the story along with a timeline of events. Each section has its own log entry below:

ezgif-4f176d7eeb86c2.gif

Graphics Interchange Format - 16.20 MB - 02/28/2025 at 21:54

Preview

  • Overview and Ethos: On Avoiding Embedded Suffering In Art

    Steph02/28/2025 at 20:45 0 comments

    Depending on my current self-esteem I consider myself either a "found object artist" or a "hoarder." Either way what this means is that I bring stuff home like a rat does shiny bits of foil. There's no telling what might catch my eye. While my "collecting" is indeed impulsive, the real reason I prefer thrifting, salvaging and scrapping to ordinary shopping is that I am absolved of all the guilt that comes with consuming new goods, such as the raw material usage, the inevitable packaging trash, the carbon footprint of shipping, and the potential for human labor exploitation in every step of the process. 

    By choosing to use old stuff over new, I can create art with a minimal amount of what's known as "embedded suffering," the sum total of past and future human pain incurred in the creation of the work. That suffering, or at least the karmic burden of it, becomes a real part of what an artist untimately shares with their audience, regardless of how much awareness of that suffering the audience has. My intention as an artist is (usually) to create and share joy, not pain. As such, most of the stuff in this project is reused, recycled, repurposed or otherwise revived; in other words - sanitized for your protection from embedded suffering, to the degree possible. Of course, nothing in a capitalist system is truly free from embedded suffering, but by choosing primarily reused objects I hope to encapsulate that suffering in the past where it was created, and thereby insulate the audience from it in the present, if only for a moment. 

    The intended result is that we can enjoy the experience together in a small bubble of innocence, where happiness is allowed to rise to the surface unanchored by worries about waste and pain. 

    Next Section: Physical Parts

  • Physical Parts: 2pm - 4pm

    Steph02/28/2025 at 20:44 0 comments

    While many objects at the Vintage Computer Festival are valuable collectors items, the vintage electronics in our home tend to be durable workhorses that we bring home intending to use with regularity. I'm fortunate to live in Los Angeles, where a great quantity of odd items originating from places like the aerospace, film, and tech industries flow constantly through the second hand markets and into the hands of oddballs like me. The downside being that these objects don't come to me in any particular order. Sometimes I have to acquire an appealing, but useless, item on the basis that I will probably think of a compelling use for it, someday. 

    Camera

    Such was the case with the Sony Mavica floppy camera used in this project, which came to us around 2022-ish. It was sitting very forlornly at a flea market for five bucks, and at the time I didn't know what I would use it for, just that it gave me a sense of nostalgia, and that I would almost certainly find a use for it eventually. The camera looked to be in good condition, but I did need to buy new lithuim batteries (AND a charger for them) in order to test it. It powered on like it was 1998 again, we took a few pictures, and then put it on a shelf. 

    Printer

    The cute bluetooth PeriPage thermal printer which makes the labels came from a Savers thrift store outside Pasadena, and, like the camera, we've had it for some years now. Unlike the camera, we use that printer all the time. We already had all the sticky label paper we'd need, left over from other projects. 

    Computer

    The Raspberry Pi 5 *was* bought new a few months ago, just not for this project, so technically it is a reused item. The battery bank powering it came from a flea market, and both will surely be reused in some future project. 

    The USB floppy reader is a genuine vintage article owned by Jack since sometime in the early 2000's. I wish I could say the same for the amazing transparent yellow backpack, but it was another more recent thrift store find.

    Media

    The final important aspect of this project is, of course, the floppy disks themselves. I do buy them whenever I notice floppies at the flea market, so I already had a small collection of disks on hand. My plan was to format and overwrite these disks, but upon looking closer at my collection, I couldn't bear to erase someone else's important data:

    An unexpected aspect of working with vintage stuff is that the majority of these items have lived a full life once already, with somebody else, and sometimes they carry a lot of that last owner with them. What does it mean to erase a (probably) dead person's thesis? That data must have been a large part of that person's life, so much so that erasing it feels akin to burying them a little deeper.

    I am the age of person who carried a floppy disk in my backpack all throughout school. This floppy was given to us by the school, and we were only given one. They taught us to write our name on it so that if we lost it, it could be returned to us. The disk was cheap, of course, but in the pre-cloud, pre-internet, physical media days of the early 90's, even in the low stakes environment of an elementary school computer lab, it was somehow obvious to all of us that data is sacred. The floppy disk represented all of our effort; all of the human thoughts and feelings we had each poured into the computer. There weren't backups, there weren't even local copies, because the computers didn't have hard disks. 

    There were only floppies. 

    Without your name on the label, your work, your hours, and in a sense, some part of you, were at risk of being lost. Back in '92 a floppy could have had my worst enemy's name on it and I still wouldn't have erased it without asking first, no matter how badly I needed to save a file.

    What about the work of a stranger, resurfaced in 2025 after having been forgotten for unknown decades? Since the era in which floppies were popular dictates that...

    Read more »

  • Software: 4pm - 12am

    Steph02/28/2025 at 20:43 0 comments

    Utopia

    Though the fact that this portion of the project didn't get finished until midnight may point to a struggle, this was actually a tale of ease, a modern utopia where all the software was free and it all worked (mostly) as expected. 

    Really! No sarcasm!

    The goal was to have a "digital photo developer" system which would, upon the insertion of a floppy disk into the reader, automatically print a label for that inserted floppy using an image stored on said floppy. To achieve this, my plan was to run a simple python script using a common Raspberry Pi. 

    The first step was to install an operating system on the Pi. I chose the standard Debian-based Raspberry Pi OS Lite, as supplied by the familiar and easy Raspberry Pi Imager.

    I selected the light version of the OS since this computer was not going to have a screen (or indeed any means of user interaction outside of inserting the floppy disk), and thusly had no need for a GUI of any kind, nor a keyboard or mouse, or even any buttons. In fact, the only buttons on the project would be the power buttons already on the bluetooth printer and the Pi. 

    All the development was to happen over SSH, meaning that once the development was done, the bluetooth printer would be the only way for the Pi to communicate with the outside world.

    After flashing the microSD card and inserting it in the Pi, the OS booted and appeared on my network, easy peasy. It also had no trouble connecting to the usb floppy reader, which automatically showed up at the location /dev/sda, no funky drivers needed.

    I wrote a python script to run the show and called it (bask in my creativity) floppy.py. Its first job is to notice when a floppy has been loaded into the reader, then take all the jpegs found on the disk, convert them to black and white, increase the contrast, and finally send them to the bluetooth printer. Here are a few excerpts of the critical parts:

    Detecting the floppy:

    def is_floppy_inserted():
        try:
            size = int(subprocess.check_output(["lsblk", "-b", "-n", "-o", "SIZE", FLOPPY_DEVICE], text=True).strip())
            if size > 0:
                return True
            else:
                return False

    Preparing the image:

    import PIL.Image
    import PIL.ImageEnhance
    
    img = PIL.Image.open(img_path)
    img = img.resize((384, 384), PIL.Image.LANCZOS)
    img = img.convert("L") #convert to greyscale
    img = PIL.ImageEnhance.Contrast(img).enhance(2.5) #increase contrast
    img.save(dest_path)

    Sending to the printer:

    import peripage
    printer = peripage.Printer(
        mac='A4:4A:17:06:50:7B',
        printer_type=peripage.PrinterType.A6)
    
    printer.setConcentration(5)  #darker print
    printer.printBreak(25)
    printer.writeASCII(f"|        VCF SOCAL 2025        |\n")
    printer.printImage(img)
    printer.printBreak(75)
    current_time = datetime.now().strftime("%Y-%m-%d %H:%M") #get time in YYYY-MM-DD HH:MM format
    printer.writeASCII(f"{filename} {current_time}\n\n")
    printer.printBreak(50)
    

    These steps rely on the venerable Pillow library for image manipulation, and the "how great that this exists!" peripage-python project, a reverse-engineering effort which allows these little printers to be controlled over bluetooth without their proprietary app. 

    I set up the floppy.py script to run as a service, meaning that the system would launch it at boot, and could restart it if it crashed. 

    Here is what the full script does:

    First, it connects to the bluetooth printer, then it ensures that the USB floppy reader is mounted as a drive at /mnt/floppy. The floppy appears to the system just like any modern SD card or other external drive would. When the reader has no disk in it, the size of the drive is reported as 0kb. 

    The script then enters its main loop, monitoring the reported size of /mnt/floppy, and as soon as that size is not zero, it searches the drive for jpegs, the default format used by the camera. If it finds any, it uses Pillow to do all the image conversions, namely resizing the jpeg to the printer's native width of 384px and...

    Read more »

  • Shirts: 12am - 2am

    Steph02/28/2025 at 20:42 0 comments

    Couture 

    Like pretty much all the other aspects of this project, the custom shirts came together with near-blissful ease. Since the software side of the project didn't get finished until somewhere around midnight, the whole shirt concept was nearly abandoned entirely. Projects that begin after midnight are rarely completed before dawn, and in my experience, those which somehow do get completed are rarely pretty. 

    Would we really need shirts that shouted "free floppy photos" for our project to be successful?

    Despite the hour, I was compelled to continue by three truths. 

    • First of all, I had all the materials. In addition to the glitter vinyl, our thrifting that afternoon had netted us two matching black teeshirts (plus some fabulous heels for me) and we had picked up a plotter/cutter some years ago for $6 (two actually, but the first one got turned into a robot). 
    • The second truth is that I've used that plotter/cutter extensively since buying it (mostly for creating packaging from recycled cardboard) so I knew my way around its hardware and software. 
    • The third truth was that I actually did believe that the shirts were critical to the project. 

    Without the shirts, all we had was items, but with the shirts we had a whole concept.

    So I had the goods and I had the gumption. I also had a worry. From wikipedia:

    "The Dunning–Kruger effect is a cognitive bias in which people with limited competence in a particular domain overestimate their abilities."

    I'd never used the plotter/cutter for it's perhaps most common intended purpose of slicing vinyl. Plus, making graphics for shirts requires some mirroring and flipping, and my dyslexia gets worse after midnight like a wet Gremlin. Worse yet, I'd never applied heat transfer vinyl, and like the fools we are Jack and I had only bought two shirts, so there would be no second chances. 

    We needed sleep. I was begining to fear that I would spoil the experience of attending the festival by staying up all night on a project for which I should have known that I lacked the time to finish. 

    But I have poor impulse control and a generally low regard for my own health and safety, so off I went anyway.

    I launched the dumb software that the printer requires (which also requires a dumb online account, ensuring that it will dumbly become non-functional someday). Choosing the first appealing font I saw in the menu, I arranged my message in a pleasing manner and saved the file to a USB drive. 

    (Note to future readers: the Brother ScanNCut actually can cut SVG files from Inkscape directly, no junkware required)

    Loading the file on the printer, Jack and I mirrored the graphic there, then guesstimated a depth for the cutting blade. We heavily taped the very rolled-up vinyl down to the printer's mat, loaded it, and hit start. Three minutes later, a perfect cutout was done. The blade depth was close enough to correct, the mirroring was proper, and the size of the text was just right for a shirt. The cutter operated perfectly, despite being used, several generations old, and having recently been filled with ashes due to being left outside during recent Los Angeles fires. Based on these successes, I thought we'd be in bed within the hour.

    A Hiccup

    We had trouble with our iron. It may not surprise you to learn that we aren't fond of ironing clothes around here, so the only iron on hand was a small vintage travel model, and it wasn't getting hot enough to reliably adhere the vinyl to the shirt. We cut the second shirt's vinyl while we struggled with the iron, before eventually deciding to call it quits and went to bed unsatisfied.

    Next section: Shirts Part 2

  • Shirts Part Two: 9am, day of.

    Steph02/28/2025 at 20:39 0 comments

    A Final Push

    Waking up to the smell of what can only honestly be described as desperation, I drove to yet another thrift store and paced around the parking lot while waiting for it to open. Having selected a lovely all-metal iron to replace our wimpy one and in anticipation of the drive to Orange County, I bought some emergency sandwiches  and headed back home. 

    I'm guessing that our new (old) iron came with some cruft in the thermostat, because it also struggled with getting up to temperature. I thought this might be a sign from god to stop.

    Fortunately, I once again ignored god, because whatever dirt or corrosion was causing the trouble got worked out with some back and forth twisting of the dial, a maneuver similar to twisting a gritty sounding volume knob. I realized I had fixed the issue when I tapped my fingers to the underside of the iron expecting to feel something mildly warm and nearly lost my fingerprints. I paused to consider if this too might be a sign from god. 

    Now that we finally had a hot iron, Jack finished "weeding" the vinyl and I eyeballed the placement of the sticky-backed vinyl sheets on the shirts before finally ironing them down successfully. 

    We had the shirts officially finished by 11am, hit the road and strolled into the festival fed, happy and only slightly flustered, arriving at the perfectly acceptable time of noon. 

    Next section: Conclusions!

  • Conclusions and Improvements

    Steph02/28/2025 at 20:38 0 comments

    Results on the Day: Near Flawless Performance!

    Not to get too personal, but sometimes it's hard for me to write about my experiences in social settings because I enter a state of near-complete dissociation, which, believe it or not, is a major improvement over the selection of alternative states I'd otherwise be experiencing in a crowd, which includes old favorites like blind panic, impotent rage and quaking terror. 

    As such, when I am asked to recount my experience of an event, I often respond with technical details instead of emotional ones, as those are the aspects that I am most able to process. Since feelings are overwhelming for me, the technical details serve as a stand-in, a more neutral and objective proxy from which others can infer my emotional response, I assume.

    What can I say. I'm awkward.

    And that's what this conclusion section read like before, a factual recounting of the mechanical successes and failures I experienced while walking the floor of the festival and taking pictures. Upon review of this writing, my husband and dedicated editor Jack would repeatedly tell me that the piece lacked a conclusion. I'd go back and add what essentially were higher-level overviews of the tech stack, and Jack would read it and again ask where the conclusion was. 

    "You just read it!" I'd say.

    "This is a paragraph about Linux that ends with 'So that's what I did.' That is not a conclusion," Jack would say. 

    We'd repeat this pattern about once a week, both of us growing increasingly impatient with my narrative shortcomings. (editors note: I am not impatient with Steph's narrative shortcomings. I don't even think of Steph as having shortcomings, they just hadn't written a conclusion yet. -J)

    Finally, Jack explained it in a way that I could comprehend, telling me something like "The conclusion is not just about summarizing what you did, it's to reflect on how you felt about it." 

    Ah, the F-word again. And that's the rub, I guess, because the whole day at the festival I only felt one way: scared. 

    Terrified of people yet still craving human contact, my whole life I've come up with these elaborate schemes to mediate my interactions with others, seeking safety by choosing roles that put me in a position of control and distance, in charge of some intricate contrived situation with specific rules and expectations. Here are some identities I've chosen for myself that create this kind of social moat, presented in decending chronological order and also decending in order of embarassment:

    1. Magician
    2. Filmmaker
    3. Podcast Interviewer
    4. Barista

    People in these positions interact intimately with the human experience while remaining somewhat distanced from it. The well-established rules and expectations that surround roles like these reduce the unpredictable nature of socializing into a manageable subset of constrained possibilities, an outcome which feels inherently less frightening to me than the open-ended nature of ordinary interactions.

    In other words, I am a clown. I can't handle life unless I'm  hiding behind some big red metaphorical nose. 

    And alarmingly, I'm the most chaotic clown archetype: Scared Clown. The Scared Clown is the one who runs amuck and dumps a bucket of water backwards, missing the fire completely and drenching innocent bystanders. The Scared Clown is reactionary, jumpy, and overprepared for irrelevant scenarios while staying completely unprepared for reality, like a rodeo clown who, in the name of safety, bends over suddenly in the path of a charging bull to tie a loose shoelace. Hampered by excessive enthusiasm and pathological empathy, the Scared Clown wants to help so badly that they become the exact wrong person for the task.

    Let me assure you, reader, that this is not an easy costume to wear permanantly. 

    The worst is when I don't even realize that I'm wearing that big red nose, and in hindsight this project turned out to be just another in a long...

    Read more »

View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates