Footwork is an experimental KiCAD footprint (text) editor written in Racket.Footwork takes advantage of Lisp's code-data equivalence to offer a uniqueapproach to PCB design: KiCAD's footprint format becomes a domain specificlanguage embedded in the Racket programming language. Footwork's interface is text first allowing users to make arbitrary edits:their requirements need not be fully anticipated by the user interface. Theusers still immediately see the effects of their edits through a graphicalpreview but can use a fully featured general purpose programming languages togenerate and modify footprints. Traditional (mouse based) manipulation is being added as calls to scripting.Most interestingly, Racket's Rosette language, an interface to SMT solvers,offers the opportunity to make use of cutting edge techniques in programmingsynthesis for design automation. |