make

a guide to building your own soft computer. this is not a strict blueprint — it is a starting point. use my build as a reference and make something that is yours. if you make one, i want to see it!

before you start

a soft computer is a computing object designed around softness rather than hardness. it does not have to look like mine. it does not have to use the same materials, the same microcontroller, or the same corpus. what matters is the intent: build something that is slow, tactile, and yours.

mine took about eight months. yours might take a weekend or a year. the only rule is that it should feel different to interact with than a phone or a laptop.

what makes it soft
  • the enclosure is made from textile or soft materials, not plastic or metal
  • the inputs are touch-based and ambiguous — not buttons that do exactly one thing
  • the output is slow and poetic, not instant and informational
  • it is designed to be sat with, not operated
01 — materials

the enclosure of my soft computer is built in layers. each layer serves a structural and aesthetic purpose. you can substitute any of these with whatever you have access to.

what i used
  • upholstery foam — carved to hold the electronics, filled with batting for structure
  • neoprene — exterior shell, holds everything together
  • industrial felt — for the soft buttons
  • open-weave linen — removable slip cover in macintosh beige
  • conductive fabric — for the trackpad sensing zones
  • copper tape — for wiring the capacitive inputs
  • velostat — pressure-sensitive layer under the trackpad
  • craft foam — used in the mini as the base layer for the felt button sandwiches
substitutions
  • any dense foam works for structure — yoga mat foam, packing foam
  • neoprene can be replaced with any sturdy fabric — canvas, denim, heavy linen
  • felt buttons can be any soft material — wool, fleece, leather
  • conductive fabric can be replaced with bare copper tape alone for simple inputs
  • the slip cover is optional but makes it feel more like an object and less like a prototype
02 — electronics

the electronics in my soft computer are deliberately minimal. everything runs locally — no internet, no cloud, no subscription. the goal was a self-contained object.

what i used
  • raspberry pi 5 — main processor, runs the markov chain and drives the e-ink display
  • waveshare 10.3" flexible e-ink display — IT8951 HAT, driven over SPI
  • adafruit fruit jam — handles all capacitive sensing over USB serial to the Pi
  • haptic motor — vibrates on each interaction, each button has its own pulse pattern
  • neopixel — ambient light feedback
  • thermal printer — prints poem receipts
simpler starting point
  • you don't need a pi — a raspberry pi zero 2W works fine for the markov chain
  • any e-ink display works — even a small 2.9" waveshare is enough to show a few lines
  • the fruit jam can be replaced with any circuitpython board with capacitive touch — adafruit feather, qtpy, etc.
  • skip the thermal printer and haptics for a simpler first build
  • one button driving one corpus is a valid soft computer
wiring overview
  • felt buttons → copper tape pads → conductive fabric → fruit jam capacitive pins → USB to Pi
  • pi → IT8951 HAT → e-ink display over SPI (CS, CLK, MOSI, BUSY, RST)
  • haptic motor → fruit jam digital output pin → triggered on button press
  • thermal printer → pi UART or USB
03 — the knit panel

the knit panel that frames the e-ink display is optional but important to me. it is what makes the object feel like it belongs to a textile lineage, not a tech lineage.

i knit mine on a Brother KH-930 — a domestic knitting machine from 1986 that you can find secondhand for under $100. i used a lavender wool-cotton blend at roughly 70 stitches by 56 rows to get a panel that fits a 10.3" display.

knit panel specs (my build)
  • machine: Brother KH-930, standard gauge (4.5mm)
  • yarn: wool-cotton blend, fingering weight, lavender
  • dimensions: 70 stitches × 56 rows ≈ 10" × 8"
  • tension: approximately 7 (adjust for your yarn)
  • the panel is mounted around the e-ink so the display sits inside it like a soft window

you don't need a knitting machine. hand-knit, woven, or embroidered fabric all work. the point is that the frame around the display is made by hand.

04 — the corpus

the corpus is the text the machine learns from. it is the most personal part of the build. mine has four corpora, one per button. yours can have one, or ten, or whatever feels right.

a corpus is just a text file. a few pages is enough for an order-2 markov chain to produce interesting output. more text means more variety. shorter text means more repetition and a stronger voice.

how to build a corpus
  • pick a theme that matters to you — letters, technical documentation, poetry, recipes, anything
  • collect 1–5 pages of text from that theme
  • clean it: lowercase, remove punctuation, keep the sentences natural
  • save as a plain .txt file
  • feed it to the markov chain — the code handles the rest

the stranger the corpus, the stranger the output. the more coherent the corpus, the more the output sounds like something.

05 — the code

the soft computer runs a simple order-2 markov chain. it looks at the previous two words and picks the next one from a list of words it has seen in that position in the corpus. the math is small enough to run on a pi zero with memory to spare.

what the code does
  • reads button presses from the fruit jam over USB serial
  • selects the active corpus based on which button was pressed
  • runs the markov chain to generate a sequence of words
  • renders the text word by word to the e-ink display via the IT8951 driver
  • triggers the haptic motor on each button press
  • prints to the thermal printer on a long press

all code, circuit diagrams, and corpus files will be available in the github repo. documentation is ongoing — check back as it grows.

github → yafira
06 — share yours

if you make a soft computer — or any soft computing object inspired by this project — i want to see it. there is no single right way to do it. the only requirement is that it is soft in some sense of the word.

how to share

this project is open source and will stay that way. build something gentle. ♡