obstcl is the smallest and simplest piece of code I could come up with that does OO in plain Tcl. It has classes, instance variables, methods, inheritance, and Tk-style option variables.
There are a proliferation of OO Tcl layers around. obstcl seems to be the smallest and fastest, mainly because I originally wrote it so I could understand how to do a custom (and "fast" port of some [incr Tcl] code to Tcl 8.0. As it turned out, I got further than I expected, so I used this package as-is. I've deliberately kept it as light as possible.