In 2007, the abstract semantic framework of Vivid was introduced by Arkoudas et al.  for the purpose of mechanized heterogeneous natural deduction that combines symbolic and diagrammatic reasoning. We introduce an implementation of the Vivid framework in the Python programming language, pyVivid, the first such concrete framework capable of diagrammatic reasoning. Furthermore, we present a protocol that allows for the extension of the pyVivid library, opening up the possibility of the incorporation of diagrammatic reasoning to other programmers.
A description of pyVivid may be found here.
The implementation of pyVivid may be found here.
 Konstantine Arkoudas and Selmer Bringsjord. Vivid: An AI Framework for Heterogeneous Problem Solving. Artificial Intelligence, 173(15):1367–1405, 2009. The url http://kryten.mm.rpi.edu/vivid/vivid.pdf provides a preprint of the penultimate draft only. If for some reason it is not working, please contact either author directly by email.