Creative Quantum AI
Schrödinger’s Game of Life
Our newborn project Schrödinger's Game of Life is inspired by the exciting, endless space of artistic possibilities provided by Quantum AI, a field combining cutting edge research into Quantum Computing and Artificial Intelligence. For a while, artists have explored machine learning techniques through a set of generative methods that exploit a certain stylistic direction (“GAN style”). Creative Quantum AI breaks completely new ground by working with Quantum Computing and Neural Cellular Automata to translate quantum phenomena such as entanglement, superposition, and interference into 2D/3D visuals and later into interactive worlds, eventually into a whole cellular multiverse.
What it does
Quantum Reinforcement Learning meets evolving Neural Cellular Automata.
Creative Quantum AI combines ideas of a Quantum Cellular Automaton (QCA) developed by John von Neumann, Richard Feynman and David Deutsch with a three-dimensional Neural Cellular Automaton (NCA) described by Dongsu Zhang, Changwoon Choi, Jeonghwan Kim & Young Min Kim. QCA models can be pictured as large quantum circuits that are infinitely repeating across time and space. An NCA, on the other hand, simulates morphogenetic processes, learning to grow and regrow intricate structures starting from a singular pixel (2D images) or voxel (3D models). The artistic space of growing synthetic artefacts, possibly even functional machines with Quantum Neural Cellular Automata is exciting and it is completely novel territory. Therefore, the current implementation offers a set of modular Jupyter notebooks, to provide a playground for artistic experiments on all scales of this network of networks: from the quantum level up to emergent human-machine co-creative intelligence and intuition. Complex emergent phenomena, phase transitions, swarm behaviour, synchronizations, and life itself, can be explored interactively and quantum mechanical processes, like entanglement, superposition, and interference can be translated into 3D visuals with Blender.
How we built it
The current iteration of Schrödinger’s Game of Life is built with Jupyter notebooks, using Pytorch for machine learning, Blender for visualization as well as quantum computers/simulators provided by IBM Quantum and the Qiskit library. We reused and implemented working code from published papers such as the ones listed below. We iterated through multiple approaches and combined quantum computing code with Neural Cellular Automata and generative algorithms to create 2D and 3D visual art. As the first iteration of our overall project, we share our playground: a series of notebooks as the Hackathon submission.
Examples of the research that has informed our approach are:
- AI-GAs: AI-generating algorithms. An alternate paradigm for producing general artificial intelligence, 2020
- Enhanced POET: Open-Ended Reinforcement Learning through Unbounded Invention of Learning Challenges and their Solutions, 2020
- Distill Thread: Differentiable Self-organizing Systems
- Learning to Generate 3D Shapes with Generative Cellular Automata, 2020
- Neural Cellular Automata Manifold, 2020
- Quantum agents in the Gym: a variational quantum algorithm for deep Q-learning, 2021
- Learning to learn with quantum neural networks via classical neural networks , 2019
Please note that the interactive examples shared in the "Try it out" directories require Google Colab to run.
Challenges we ran into
Our work during the previous weeks can be described as a search algorithm running into lots and lots of walls and dead ends, backtracking and coming back with better and stronger approaches. We were incorporating different APIs, trying to get researchers’ code to work while working in different environments such as Qiskit, Blender, Anaconda Python environments, Jupyter notebooks and Google Colab. Subtle differences in Python versions and dependencies such as libraries and frameworks can become a huge headache. To explore possible front-ends, Michael experimented with the web-based frameworks A-Frame, Mozilla Hubs and with the Unity game engine and the Unity ML-Agents framework as an interaction and visualization frontend, but finally, we decided to scrap the idea for now as it requires another layer of code communicating between the quantum cellular automata code and in-game objects. Based on the schedule and background of the team we settled on Blender for the moment, which isn't interactive per se but has some 3rd party tools that look promising. Finally, some challenges came not only from the software but also from the hardware as Hannah’s AI machine said goodbye a few days ago during some intense computations.
Accomplishments that we're proud of
Creative Quantum AI has formed an international, multidisciplinary team consisting of a mathematician (Grishma), a renowned quantum computing artist (Hannah), a systems theorist/practitioner (Michael) and a 3D artist (Gert-Jan). In the period available to us, we were able to collect, discuss and experiment with a vast amount of materials on topics such as Quantum Machine Learning, Quantum Cellular Automata, Quantum Generative Adversarial Networks. We navigated through these advanced fields, translating cutting edge research into practical experiments in code, settling on architecture and an approach that enables us to pursue our goal further.
What we learned
Both exploration and exploitation of human and artificial creativity pull in different directions. Settling on a set of technical requirements is crucial for progress, yet experimentation needs freedom to switch between approaches and throw away prototypes. To keep both in balance, the is to define interfaces between components that then can be treated as black boxes. The background of the team suggested a Python/Pytorch oriented approach, with Qiskit library for quantum computing and Blender for 2D/3D visualization as cornerstones. Around these tools, we have experimented with lots of approaches that are flexible enough to work with implementations of research papers like the ones referenced above.
What's next for Creative Quantum AI
For the next steps, we envision two manifestations of Creative Quantum AI - one takes place in a virtual environment online and the other in a physical exhibition space. First, we will create a fully interactive demonstration that will serve as our showcase. Beyond that, we aim to prepare an implementation in a physical exhibition space in Berlin, where the audience is surrounded by the “organized energies” (John Dewey) of our Quantum Neural Cellular Automata and can interact with them, by moving through the space. This algorithm will learn and create new patterns from the behaviour of the audience and the underlying quantum computations. From the very beginning a few weeks ago, the ambitious goal of Schrödinger’s Game of Life has been to provide a sandbox for co-creative experiments of human and artificial intelligence. At this point, we are literally at the “Urknall” - the starting point of a Quantum Neural Cellular Automaton multiverse.
Quantum Reinforcement Learning
Neural Cellular Automata
- Compositional Pattern Producing Network CPPN demo
Quantum-NCA Artificial Life Generating Algorithm
- Maze NCAs Generator
- Quantum Grid Generator
- Example for Quantum-Hybrid Meta-Learning: Learning to learn QNN
- Neuroevolution Cartpole demo
Blender 3D Demos
- Cartpole Demo Note: Requiers blendtorch, for download and install instructions please visit: https://github.com/cheind/pytorch-blender
.blend files with connected input folders
- Room with single input folder for all walls
- Room with separat input folder for each wall
- Room including Cube, Pyramid, and 2D NCA Projection Object Note: Requiers Blender 2.93.4, for download and install please visit blender homepage. For further infos about how to link and append .blend files, please check out the blender docs
Interactive Web Demos
Demo Multiverse Browser to Enter Worlds
- Omniverse Demo Landing Page of Multiverse Browser
- Multiverse Demo Browse Worlds of a Selected Multiverse