Lines 260-263, 272-273, and 281-283 all try to call a method using a null pointer. "paint", "sculpt", and "clay" are never set to anything.
The only objects you create are ones that are referenced with a base class (art) pointer. If you have a base class pointer, you can only exercise methods defined in the base class (unless you cast the pointer down to a derived type, which often indicates a flaw in design).