generate different canvases