Canvas controller