David Farrell

Projects.

A few things I keep coming back to: programmable hardware, tools that make it easier to reason about systems, and projects where software has to meet the physical world.

01 / FPGA audio

Kestrel

A real-time FPGA audio DSP platform built around per-sample effects processing, flexible control, and low-cost hardware.

audio in → FPGA DSP → audio outActive · SystemVerilog · DSP · embedded UI
02 / FPGA audio

Lyrebird

A sixteen-voice polyphonic synthesizer on an AMD Kria KV260. A USB MIDI controller is read on the Linux side and written into registers in the programmable logic, where an HLS DSP core generates 24-bit, 48 kHz audio: phase-modulation voices with wavefolding, filters, envelopes and LFOs, and a shared reverb, played out over I2S.

MIDI → Linux → PL registers → HLS → I2SActive · Vitis HLS · SystemVerilog · KV260
03 / HDL

Pigen

Pipeline Generator: An experimental hardware description language centered on pipelines, implicit flow control and making streaming hardware easier to express.

buf · port · fifo[n] · skidActive · compiler design · RTL · dataflow
04 / Agent infrastructure

Knowledgetrees

A semantic filesystem for agent knowledge: small, addressable pieces of technical state that can be updated, checked and reused across long-running work.

kt where am iActive · agents · MCP · verification
05 / Agent infrastructure

CointOS

Local-first orchestration for my personal AI agents. It turns requests from the terminal or Telegram into durable agent work, coordinates local model inference, and keeps resource use in check on my own machine.

request → durable work → local inferenceActive · Python · agents · local inference
06 / Animation

Whiteboard

A text-driven animation tool for hand-drawn-style maths explainer videos. You write a spec, it renders the video, and it uses my own captured handwriting for the notation. I built it to make Boarbarktree videos practical again.

write spec → render → adjust → publishIn progress · C · animation · maths