TouchBar

2025 Personal

A journey of curiosity & the creative technologist ethos

I started off inspired to learn about kernel OS development, but quickly became distracted

Inspired by a book about Silicon Valley before the reign of software, I wanted to explore programming concepts closer to the hardware.

I planned on using a retired MacBook Pro as my kernel OS development machine. And that's how I re-encountered the short-lived MacBook touchbar.

genesis

In What the Dormouse Said , a history of the Silicon Valley hardware scene that pre-dates the famous garage days of Jobs and Woz, I was inspired by how many user experience decisions early hardware engineers were making.

Douglas Engelbart's wooden mouse prototype—primitive yet functionally similar to modern versions—resonated with me.

After some discussion of the principles of kernel-level programming, I asked Claude to write up a learning journey for me to build my understanding of the layers of software that more directly interact with a machine's hardware.

After working through the initial stages of this learning journey I realized two things. First, my initial insipration was wearing off with the steep learning curve of Linux (no surprise there).

Second, the TouchBar on my 2020 MacBook Pro was driving me insane. I began to wonder if there was a way to scratch my recent curiosity-itch while also doing something useful with the TouchBar.

Discussing how I might tinker with the TouchBar in another chat with Claude felt entirely natural. The concept we landed on was visualizing my CPU processes with a colorful shader in the TouchBar display.

My initial thought was to prototype gathering and representing CPU data with a web app, then sending that to the TouchBar.

With Claude's help, I used Express.js and Three.js to collect CPU data and represent it as a multi-colored shader. I had it in the back of my head that I could put this functionality inside an Electron app to run on MacOS.

But after some old-fashioned research in StackOverflow, I discovered a critical limitaiton. JavaScript via an Electron app would not be able to access the NS TouchBar provider function for native TouchBar control.

pivots

I created a new XCode project and used Claude to scaffold a Swift app that visualized the same CPU data as I had done in the Javascript POC. As I dug into the TouchBar Provider, I grew hungry to explore a more interactive project.

I thought, what if I replicated the gradient and links on my portfolio homepage on the TouchBar? This required me to embed my portfolio as a webview inside the Swift app and program each TouchBar button as if it were a traditional HTML link tag.

The final result: a TouchBar with an animated gradient background that serves as navigation for the website.

reflection

A few years ago when I was contemplating where I wanted to take my career, I came across the title Creative Technologist for the first time. Whether or not this is a practical, marketable, or realistic role, I have always admired the ethos of the phrase.

I like to think that this TouchBar journey embodies a creative technologist approach. It combines intellectual and technological curiosity with practical implementation, leveraging AI tools to overcome my knowledge gaps in unfamiliar territory.