Learning to Paint is an open-source PyTorch implementation of a deep reinforcement learning system that teaches artificial agents to recreate images through sequential brushstrokes. Based on research presented at ICCV 2019, it combines a learned neural renderer with model-based reinforcement learning. The agent determines stroke positions, shapes, and colors while planning how to approximate a target image. It can reproduce complex visual textures using hundreds of strokes. Training does not require examples of human painting movements or recorded brushstroke sequences. The repository includes pretrained models, alternative brush renderers, and testing scripts. Users can generate painting sequences and convert their frames into videos using FFmpeg. A Google Colab demonstration provides an accessible environment for experimentation.
Features
- Model-Based Deep Reinforcement Learning Painting
- Neural Brushstroke Rendering
- Automatic Stroke Position and Color Selection
- Pretrained Painting Agents and Renderers
- Sequential Painting Animation Generation
- PyTorch and Google Colab Integration