Footwork is an experimental KiCAD footprint (text) editor written in Racket. Footwork takes advantage of Lisp's code-data equivalence to offer a unique approach to PCB design: KiCAD's footprint format becomes a domain specific language embedded in the Racket programming language.
- The interface is text-first allowing users to make arbitrary edits: their needs need not be anticipated by the user interface
- Users still immediately see the effects of their edits through a graphical preview
- Users can use a fully featured general purpose programming languages to generate and modify footprints
- Traditional (mouse based) manipulation is being added as calls to scripting
- Racket's Rosette language, an interface to SMT solvers, offers the exciting opportunity to make use of cutting edge techniques in programming synthesis for design automation