HistoPaint was created to gain experience with desktop application development through Swing, a GUI toolkit for Java.
It also allowed me to practice data structure design, to allow for operations such as undoing strokes, playing back the drawing forwards and backwards, and splicing the drawing's history.
If I revisit this, I want to replace the dependence on Java's Serializable interface, and instead use my own data representation when saving drawings. This will pave the path to online collaboration, and to escape the JVM and manipulate drawings in the browser for instance.
Try it (Download) Source Code