An open API service indexing awesome lists of open source software.

https://github.com/micahbrun/continuous-complex-valued-cellular-automata

Continuous Complex-Valued Cellular Automata: Inspired by Lenia and quantum mechanics, this cellular automaton evolves according to the Schrödinger equation, with a convolutional Hamiltonian. This project uses SFML for visualisation.
https://github.com/micahbrun/continuous-complex-valued-cellular-automata

cellular-automata cellularautomata convolution eigen opencv quantum-mechanics sfml

Last synced: 4 months ago
JSON representation

Continuous Complex-Valued Cellular Automata: Inspired by Lenia and quantum mechanics, this cellular automaton evolves according to the Schrödinger equation, with a convolutional Hamiltonian. This project uses SFML for visualisation.

Awesome Lists containing this project

README

          

# Continuous Complex-Valued Cellular Automata
Inspired by Lenia and quantum mechanics, this cellular automaton evolves according to the Schrödinger equation, with a convolutional Hamiltonian.

The kernel and initial state are defined within the relevant funtions inside main.cpp.

https://github.com/MicahBrun/ContinuousComplexValuedCellularAutomata/assets/55516590/c8526b67-51bc-4f8e-9663-20c422b3e83e

## Visualisation
SFML is used for the visualisation of the system at a certain time. The system is made up of a 2-D grid where each point stores a complex value. In the visualisation, the complex number is converted into a colour. The hue of the colour corresponds to the phase of the complex number; the brightness is proportional to the arctangent of the magnitude.

## Theory
The system transforms according to:
$$i \frac{\partial \psi}{\partial t} = h * \psi$$
Where $h*\psi$ represents the convolution of the functions $h$ and $\psi$. $h$ is a real valued function while $\psi$ may be complex valued.

From this we can derive that:
$$\psi(t + \Delta t) = \mathrm{exp}(-i \Delta t ~ h *) \psi(t) $$

In the frequency domain, making use of the convolution theorem, this becomes:
$$\tilde{\psi}(t + \Delta t) = \mathrm{exp}(-i \Delta t ~ \tilde{h}) \tilde{\psi}(t) $$
Where $\tilde{f}$ represents the Fourier transform of a function.

## Installation

Ensure you have the following dependency installed before running the project:

- [OpenCV](https://opencv.org/)