Thinkyhead on the Web

I have a fairly wide web-presence, ranging all the way from here to the other side of the interest spectrum and back again. See my new "Follow" page for links to all the places where I post content from time to time. I will also add a feed here, once I can figure out all the configuration. Meaning I may have to curtail my advocacy – or do more. What else is the 'net about, if not sharing and caring?

The Thinkyhead Story

Scott Lahteine Photo Thinkyhead is a software dojo committed to the creation of fun, interesting, useful, simple apps, simulations, games, and web interfaces that push the limits of convention and extend the powers and aesthetic of their respective domains.

Thinkyhead is Scott Lahteine, the programmer behind FretPet X and the sole person behind the Thinkyhead Software moniker. This is a brief account of my so-called "career" with the milestones that led to the creation of the stuff you find now on this gaudy web site, including more recent projects. It's a resume of sorts, but really more a catalog of my geek activities since... the beginning.

1978: A Geek Is Born

1978 was the year I got hooked on programming. I was 11 years old, a boy growing up on Cape Cod in a working-class neighborhood. I loved the beaches, I loved nature, and I loved to build models, write, draw, and paint. One afternoon out with my father I observed a salesman giving a demo of a TRS-80 computer at the Radio Shack next to the arcade. One moment there was a blocky picture on the screen - the profile of a Panzer tank - and with the press of a key the image scrolled upward, replaced by a screenful of green code - the mysterious instructions that had generated the image. Right away I saw how it worked. It was an epiphany that changed my life. I begged my dad to buy me the BASIC programming book on the shelf. I didn't own a computer in 1978 (who did?) so I would go into my lair (I had a lair like Dexter in those days) and write programs on note paper, imagining how they should run.

During the summer of 1979 I took a course in BASIC using the Apple II, the best home computer around at the time. We also did some LOGO. I would ride my bike a few miles every day to attend the classes, which went over a couple of weeks. It was a very encouraging environment. I've completely forgotten all the material we covered, but BASIC at that time was a language you could master pretty fast. I was able to program a simple dot chasing dot game by the end of the course.

1980-1981: Sinclair / Apple

The first cheap take-home computer was released in 1980 at the amazing price of only $200. The Sinclair ZX80 was the size of a small book, weighing only a pound. It connected to the TV for its b/w text display and you could save programs to cassette with any tape recorder. It was programmable in BASIC and contained a whopping 1K of RAM. It was very slow and you couldn't do a whole lot with it. It had no color and no graphics other than a variety of blocks in the character set, so you could draw pictures by printing these characters in the text display. Of course one of the first things I did was use try drawing a tank as an homage.

My dad connected me with a local radio shop that had a couple of Apple II computers in the back, and I would spend afternoons typing in code from SoftSide and Compute! magazines, or messing around with my own programs. I don't know why we never got an Apple II, considering how much cheaper it was compared to a semester of college, and I was eager to progress. But on Cape Cod at the time there wasn't much of a hacker culture.

1982-1985: All for fun

In the early years I used my Atari 400 to make programs to do my long division homework and wrote games to amuse myself and the neighborhood kids. I had figured out a lot of programming tricks and had outgrown AtariBASIC. I was starting to write routines and even whole programs in 6502 Assembly Language, which was the best option at the time. I created a program called Tracer for editing, diagnosing, and repairing Atari floppy disks. The final version, which is gone forever, contained a 6502 disassembler and even had its own programming language for automating the program.

bill, ted, and friendsThe kids who liked computers tended to find each other at my High School, and we would get together at one another's houses to work on programming projects, try ideas out, and play computer games like M.U.L.E. together. Eventually a computer club formed out of a dozen or so enthusiasts, and we would get together at a sewing machine repair shop in Dennis.

My main interest was always the technical and artful challenge of programming games and simulations, and I loved having a dojo to share what we were learning. Things stayed for a little while at that level, but the computer club focus quickly shifted away from programming to the cracking and sharing of software, dues were instituted, and so I spent less and less time there.

1986-1990: Amiga Games

I tried going pro as a games developer in the 80's, working as a contractor for Odyssey Software, Digitek, Michtron, and Capstone. During this time I composed music for the games Byteman and Space War, programmed the original Amiga game Dino Wars, and wrote the Amiga version of Bill 'n' Ted's Excellent Adventure working with Off the Wall Productions.

This was a curious period of my life. I had neither financial support nor much in the way of mentors looking out for me, so I floundered around without direction, reading books, doing a little coding here and there. But there wasn't a niche for casual game developers then, publishers were stingy and developers like me had no idea of their real value. So none of the programming I did ever yielded very much money, and it took a really long time. I was frequently unable to make ends meet and occasionally homeless. Disillusionment was imminent.

1990-1995: Nowhere, man

I decided to abandon Cape Cod and the game programming scene in 1990 so that I could move to Boston to pursue a life of Bohemian splendor, as is the existential imperative of every 20-something. I took up new interests like writing, music, and philosophy. I became so involved in other pursuits that I spent 5 years without even touching a computer and completely overlooked the Mac revolution.

1996: Geek Rebirth

I returned to programming in 1996 with the aim of joining my programming experience with my interests in music, art, and psychology. After a couple of months getting my chops together on a secondhand 386 computer, I bought my first Power Macintosh and began working on a simple fretboard reference utility. The concept grew into a full-fledged music sequencer, and in 1998 I released FretPet for Mac OS 7. FretPet won an award from the Institute of Electroacoustic Music at Bourges and got some good reviews, but alas it was not the key to shareware success that I had hoped.

1998-2000: Happy Valley Prequel

In 1998 I moved to Northampton, MA where I did a contract job for Cyberlore Studios writing the Windows installer for one of their popular games. I also worked as a web developer with Tortus Tek in nearby Holyoke, MA. That was fun and interesting, and I learned a lot, but I was restless and in need of a scene change.

2001-2003: Critical Path

CPS I relocated to Portland, Oregon in 2001, taking a position as web developer for the Mac-friendly Critical Path Software. Among other things I co-developed the Native Seed Network website for the Institute for Applied Ecology of Corvallis, Oregon.

2003-2004: Close to the Metal

In mid-2003 I decided it was time to be a full-time freelancer. Around that time I began a collaboration with former Looking Glass game designer Chris Laskowski. We founded Botfly Games in 2004, and began working on our first titles: a darkly humorous outer-space strategy game called Deep Space: Outpost 0 and a pulse-pounding arcade game called Zorbles!. Our funds ran out before we could finish them, but we gained valuable experience and insights into the process of OpenGL game development.

botfly In late 2004 I took a break from the Botfly projects to work on TabletMagic and the enhanced Mac OS X port of FretPet. After many months of intensive late-night programming FretPet X was released in June of 2005.

2006: Prodigiousness Abounds

In early 2006 I moved back to Western Massachusetts. There I joined up with Vegan Radio as a co-host. Web design and programming became the focus of my freelance work, and I spent a lot of time updating the Vegan Radio and Veganica web sites during this period.

2007: Web 2.0 and Drupal

It used to be a real drag to make websites in PHP before site frameworks like Wordpress and Drupal came along. In 2007 the Web 2.0 phenomenon really started to take off with the advent of Facebook and Twitter, and I discovered that in order to make websites that meet today's standards, it would be essential to start using website frameworks. As luck would have it, I was hired to do my first Drupal website, Educational Video Center. The learning curve was slightly steep, but during a trip to Brighton, England I shut myself in with a copy of Pro Drupal Development and a bottomless cup of Earl Grey until I got the gist. In the process I fell in love with Drupal, and I've been a devotee ever since.

2008-2009: The iTouch Revolution

In 2008 I got an iPod Touch and began programming my first Cocoa Touch application, a music tool called ChordCalc. I had a good start, but circumstances were pretty unsteady during 2009, so it wasn't until late October that I was finally ready to submit ChordCalc to the iTunes App Store. ChordCalc Lite was posted a month later.

In Fall 2008 I was hired as a web developer by Gravity Switch, a web design company in Northampton, Massachusetts. There I did work for some great local clients like UMass and Veterans Housing Assistance Fund. During my tenure there I continued to evangelize Drupal and began getting more in-depth with Flash and ActionScript. Full-time work wasn't really paying me any better than freelance work, and I was unaccustomed to having go-betweens with my clients, so in mid-2009 I went back to full-time freelancing.

It turned out the be the right choice to plunge back into the freelance life, but initially it was a struggle to rebuild my client base and get some momentum. Unable to keep up with the rent I did a homeless stint for a month, couch surfing and working from my laptop. Fortunately I found Freelancer Dot Com and was hired to do some Drupal work for a curious company called 3dO Medical in Toronto.

2010-2012: Web Apps

In February of 2010 I moved to Holyoke, MA and did some work for Positronic Design, a web development and SEO company. My arrival was fortuitous, because 911 Blogger was looking to upgrade their Drupal 4 site to Drupal 6. It was a relatively simple site, but the upgrade required lots of careful planning and many trial runs. In the end the upgrade went very smoothly, thus firmly establishing my reputation as a miracle worker.

2012: New Skills, New City

I've spent a lot of years writing code for OS X and iOS and building Drupal sites. But in 2012 I became restless to learn some new skills. Writing software that runs inside a computer, and making that the total interaction, is still wide open, but there's also a huge arena where computerization, automation, and sophisticated interaction are happening with a realtime flow. Some of these might be art installations or exhibits in science museums, while at the other end we have smart buildings, smart homes, smart streets, assistive environments, wired hospitals, etc.

So I saved up and bought a car, loaded it up with belongings and Fang my trusty cat sidekick, and headed west to Seattle, Washington, where exciting things are happening in just about every interesting arena. I have friends in Seattle who are into making games and simulations, and there are cool places like Metrix: Create Space where you can learn fabrication and essential cyberpunk skills for the coming zombie apocalypse.

2013: Arduino and RepRap

It didn't take long for me to fall in love with Seattle. It is indeed a great city for creatives and geeks of all kinds, and the tech scene has really been exploding. With the help of friends in late 2012 I got a room in the Ballard district where I could set up a little workshop. Now all I needed was a good project to start learning electronics and Arduino programming. I began researching in earnest.

There were a lot of small projects to start learning Arduino, such as the ubiquitous programmable LED cube. But then I discovered the amazing RepRap Project, an open source effort to make a machine that (ideally) can make copies of itself: a "Replicating Rapid Prototyper", more commonly called a 3D printer. I spend every day on the Internet, and yet I had no idea that the RepRap Project had been going on for 6 years at that time. I had to build a 3D printer, and soon!

My comrade Thai Vo at Green Code Design and I did exhaustive research to decide whether it would be better to buy or build a 3D printer, and which models would give us the most bang for the buck. By my birthday, January 17, 2013, we had done all the research and were ready to make our choice. Of all the commercial and RepRap models we reviewed, the "Prusa i3" won hands down. It has lots of build space (685mm3) a sturdy attractive frame, a small footprint, and an open parametric design. We estimated that all the parts would cost $500.

It took us a couple of weeks to cobble together all the parts from eBay, McMaster-Carr, the local hardware store, and websites specializing in selling 3D printer parts. With the Prusa i3 so new at the time, I got the wrong plastic parts twice before I got the right ones. In the end we went a couple hundred dollars over our optimistic estimate, but ended up learning a lot and gained an amazingly-useful piece of workshop technology! We recouped some of the cost by re-selling the extra parts.

Since that time "Millie" (the i3) has received a lot of attention. The first thing we did was use it to make more and better parts for itself. Lately I'm trying to do more interesting stuff. You can find those designs at my Thingiverse page and my YouMagine page.

2014: New Obsessions

In early Spring I was too dizzy to work (owing to an inner-ear infection) so I fell out of web-development. When I recovered I began to spend more time customizing the Marlin Firmware that runs Millie and many other 3D printers. Later I became a regular contributor, and since that time I've been trying to find a way to do it full-time, at least for a while.

Meanwhile I began a little project to start learning Unity3D, an integrated tool for making games and simulations. I began to put more time into that, Open Frameworks, and Cinder, hoping to roll it into a job in the field of "creative coding." However, after putting out the call and playing a long waiting game with a university media lab, nothing materialized.

2015-2016: Portland (again)

When my girlfriend decided to go back to veterinary school in Oregon, I was happy to tag along because I'm fond of Portland. Given my prior experience in Portland I expected good returns, but my focus and involvement with the Marlin Firmware project continued to increase to the point of distraction. To help cover expenses I turned to the community for support, launching GoFundMe and Patreon campaigns, but they have been slow to catch on. Still, as of this writing I'm about half-way to my goals. If you're a fan of Marlin Firmware, please sign on!

By 2016 my reputation as a savvy Marlin programmer was beginning to grow, and I picked up a short gig helping a Portland startup put together an oversized printer, writing a custom version of Marlin that runs on two 3D printer boards. Sadly, the contract was very small, required way too much time and effort, and even a year later still hasn't been honored in any wise. Thus it goes in startup-land.

So Portland wasn't really meant to be! I had a couple of interviews for a creative coding position that ended up having paranoid overtones (via the grapevine). Disgusted by the nature of the machine, I deepened my focus on Marlin to maintain my momentum in the intended direction. I wanted to really grok all this stuff. Money issues led to personal issues, and so, long story short, I found myself liberated once more.

During that rather low point —while I was living in the back of a friend's bread truck— I began corresponding with MakerArm, a startup with a successful Kickstarter campaign. They needed someone to pick up where their disappearing firmware programmers had left off. Could I help them? The only caveat, I would need to relocate to Austin.

2017: Austin, Texas?!

I moved to Austin in late 2016 and began working for MakerArm. My official job title became "Marlin Geek," just as I wanted. I got to work with industrial designers and electronics engineers, which taught me a lot through gradual osmosis. Developing the MakerArm product took much longer than anticipated, but I learned that there's no "royal road" in product development. These things take serious time and effort.

Through mid-2018 I gave 30 hours a week to MakerArm while still doing periodic Marlin releases, working on the Marlin website, and applying several big and challenging patches to reorganize the Marlin code for the next generation.

The steady income of that period allowed me to gratefully pay off debts, buy a car to get around (and out of) the city, and get prepared for the leaner time ahead. I took the attitude that whatever the circumstances, my devotion to Marlin would carry me through, and it hasn't let me down. As long as I have a place to plug in, I'll keep helping to move the project forward.

2019: Current Goals

I decided to stick around Austin but find a better neighborhood. So I acquired an inexpensive two-bedroom apartment as a live-and-work space. My roommate Luu Lac is helping out too! My goal is to intensify Marlin production with more exhaustive testing, and produce more and better documentation. Alongside the firmware work, I'll continue building up my electronics skills and try to make a few cool and interesting things along the way.

Your Marlin patronage is needed more than ever! There's an enormous amount of work ahead to get Marlin working 100% on the new generation of fast and spacious ARM-based boards. Marlin already runs on several of them, but there are new boards all the time. And there are lots of other goals planned for the year ahead, which I've outlined in this Patreon post. Please help out if you can. Even a dollar a month makes a huge difference. Several donation options are listed on the "Donate to Marlin Development" page.

Beyond 2019...

Thanks for reading my story so far! I'll do my best to keep you informed about ongoing projects in the blog, and please check my "Follow" page for all my social network handles and media outlets, etc.