generate material