finds.dev

hardmaru/cppn-gan-vae-tensorflow

Train CPPNs as a Generative Model, using Generative Adversarial Networks and Variational Autoencoder techniques to produce high resolution images.

View on GitHub

★ 347Pythonupdated Apr 2021

// the take

An implementation of Compositional Pattern Producing Networks combined with GAN and VAE training to generate resolution-independent images, tied to hardmaru's well-known 2016 blog post on the technique. It's for people curious about CPPNs as a generative architecture or doing historical research-code archaeology, not for anyone wanting to build on it today.

The core idea is genuinely interesting and still under-explored: using a CPPN as the generator means you can query the output at arbitrary resolution after training, which is why the morphing GIFs look smooth at any zoom level. The codebase is tiny (model.py, ops.py, train.py, sampler.py) and maps directly onto the blog post's explanation, so it's actually readable as a reference for the algorithm rather than a framework you have to reverse-engineer.

It's written against TensorFlow 0.6, which predates TF 1.0 by a wide margin — the session/graph APIs used here were removed years ago, so this won't run on any TF2 install without a substantial rewrite, and there's no requirements.txt pinning the ancient dependency chain. The MNIST binaries are committed straight into the repo instead of downloaded at runtime, which is just dead weight now. There are no tests, no pretrained checkpoints shipped (save/ contains a checkpoint but it's from the author's own run, not something distributed for reuse), and the 2021 push is cosmetic — there's no sign of the generative approach being revisited or modernized since 2016.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
347
Forks
83
Language
Python
Last commit
8 Apr 2021

// nearby

If cppn-gan-vae-tensorflow isn't quite it.

All repos →