Lenia - Mathematical Life Forms

Overview

For full version list, see Timeline in Lenia portal

Lenia

Lenia is a 2D cellular automata with continuous space, time and states. It produces a huge variety of interesting life forms.

There are various versions available. Python, Matlab and web (JavaScript) versions are real-time, interactive, and equipped with statistics tools. Jupyter and R versions are non-interactive and just for demonstration purposes.

Showcase video

screen cap Watch in YouTube Watch in Vimeo

screen cap Watch in YouTube Watch in Vimeo

Python Version

Fastest version, minimalist layout. Now with GPU support! (Needs Python3 and various libraries)

screen cap screen cap screen cap

Matlab Version

Fast version, great tools for statistical analysis. (Needs purchased copy of Matlab)

screen cap

JavaScript Version

The original program, slow but with most features.

screen cap 1 screen cap 2 screen cap 3

3D rendering using plot.ly

orbium       gyrorbium

Comments
  • More advanced constructions

    More advanced constructions

    Hello my name is Michael Simkin, I'm game of life enthusiast and (among other discoveries) I've constructed adjustable speed spaceship that solved every speed below c/4 in CGOL.

    I really liked your rules collection and the aesthetics of continuous rules. But I see people just invent new rules and don't invest time to investigate the simplest properties of the rules (and maybe meaningful modification in order to support university). For example what are the possible results of two gliders collisions? Is there also oscillators and other gliders in the same rule? How about glider reflector and duplicator? Can we make construction arm and make Gemini in some of your rules? In order to have Gemini we need to implement HashLife algorithm, as Gemini basically means universal construction, and the iterator implementation must be sparse.

    CAs are very useful for self replication, and continuous self replication never been explored at all. Maybe there are some interesting shortcuts available in this collection of rules. Maybe we can make a spaceship that can turn in 5% for example. Some interesting properties and search utilities from CGOL can be used to find spaceships in those rules as well.

    EDIT I noticed many of the rules contain interesting creatures but random soup is exploding. Do you have a "real" CGOL like rule where:

    1. Spaceships are many times spontaneously appearing.
    2. Random soup is usually (with probability higher than 99%) ends with only oscillators + spaceships.
    3. Infinite explosions are extremely rare (less than 0.1%).
    4. Complete death from random big enough soup is rare (less than 5%).
    5. A large set of different spontaneous creatures are available in the same rule (like in CGOL we have *WSSs except of gliders). And oscillators/still lifes have many different shapes.
    discussion 
    opened by simsim314 5
  • Host on GitHub pages?

    Host on GitHub pages?

    Hi!

    First, I'm astonished of lifeforms' beauty.

    It seems like there is no Webpack / Babel / other build solution involved. When I cloned the repo, I just opened JavaScript/Lenia.html and it worked.

    Please, consider using GitHub pages to host Lenia, so everyone visiting this page could just click a link and check out Lenia for themselves, without cloning the repository.

    opened by mvoloskov 3
  • Last thing once I'd got everything else sorted

    Last thing once I'd got everything else sorted

    I got all the dependencies installed (gentoo Linux using portage had everything apart from renia, so a local renia checkout with $PYTHONPATH specified) and then when I tried to run LeniaND.py (I was keen for the python version), I got a traceback from reikna:

    File "/home/dan/dev/python/lenia/Lenia.git/Python/reikna/reikna/cluda/ocl.py", line 114, in _copy_array dest.set(src, queue=self.queue, async=self.async) TypeError: set() got an unexpected keyword argument 'async'

    I guess this should probably be reported to the reikna github (if there is one!) but I thought I might as well let you know - and yes, maybe this would have worked if I had a newer nvidia-drivers installed? (currently on 390.87) but the code could also check if that arg is allowed before passing it perhaps?.

    I was able to run LeniaND.py fine after removing that single 'async' argument from the call to 'set()' mentioned above.

    opened by danwills 3
  • reikna import error

    reikna import error

    Hi!

    First of all, thank you for making this. It's truly amazing. I'm trying to make the Python code run on my computer, but after installing the requirements I'm getting this strange error. Any idea what's going on here?

    Traceback (most recent call last):
      File "/home/xxx/PycharmProjects/Lenia/Python/LeniaND.py", line 4, in <module>
        import reikna.fft, reikna.cluda  # pip3 install pyopencl/pycuda, reikna
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/reikna/fft/__init__.py", line 15, in <module>
        from reikna.fft.fft import FFT
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/reikna/fft/fft.py", line 11, in <module>
        TEMPLATE = helpers.template_for(__file__)
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/reikna/helpers/__init__.py", line 158, in template_for
        return make_template(name + '.mako', filename=True)
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/reikna/helpers/__init__.py", line 100, in make_template
        return Template(**kwds)
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/mako/template.py", line 338, in __init__
        module = self._compile_from_file(path, filename)
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/mako/template.py", line 413, in _compile_from_file
        code, module = _compile_text(
      File "/home/xxx/PycharmProjects/Lenia/venv/lib/python3.8/site-packages/mako/template.py", line 711, in _compile_text
        code = compile(source, cid, 'exec')
      File "_home_xxxx_PycharmProjects_Lenia_venv_lib_python3_8_site_packages_reikna_fft_fft_mako", line 148
        def render_insertGlobalLoadsNoIf(context,input,kweights,a_indices,g_indices,pad=,fft_index_offsets=):
                                                                                        ^
    SyntaxError: invalid syntax
    
    
    opened by TasseDeCafe 1
  • Undefined name:

    Undefined name: "update_menu_value" in Lenia.py

    text is an undefined name in this context which can raise a NameError at runtime.

    flake8 testing of https://github.com/Chakazul/Lenia on Python 3.6.3

    $ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    ./Python/Lenia.py:1079:89: F821 undefined name 'text'
    		self.menu.children[info[0]].entryconfig(info[1], label='{text} [{value}]'.format(text=text if text else info[2], value=value))
                                                                                            ^
    ./Python/Lenia.py:1079:97: F821 undefined name 'text'
    		self.menu.children[info[0]].entryconfig(info[1], label='{text} [{value}]'.format(text=text if text else info[2], value=value))
                                                                                                    ^
    2     F821 undefined name 'text'
    2
    
    Waiting For Review 
    opened by cclauss 1
  • Bump pillow from 5.2.0 to 6.2.0 in /Python

    Bump pillow from 5.2.0 to 6.2.0 in /Python

    Bumps pillow from 5.2.0 to 6.2.0.

    Release notes

    Sourced from pillow's releases.

    6.2.0

    https://pillow.readthedocs.io/en/stable/releasenotes/6.2.0.html

    6.1.0

    https://pillow.readthedocs.io/en/stable/releasenotes/6.1.0.html

    6.0.0

    No release notes provided.

    5.4.1

    No release notes provided.

    5.4.0

    No release notes provided.

    5.3.0

    No release notes provided.

    Changelog

    Sourced from pillow's changelog.

    6.2.0 (2019-10-01)

    • Catch buffer overruns #4104 [radarhere]

    • Initialize rows_per_strip when RowsPerStrip tag is missing #4034 [cgohlke, radarhere]

    • Raise error if TIFF dimension is a string #4103 [radarhere]

    • Added decompression bomb checks #4102 [radarhere]

    • Fix ImageGrab.grab DPI scaling on Windows 10 version 1607+ #4000 [nulano, radarhere]

    • Corrected negative seeks #4101 [radarhere]

    • Added argument to capture all screens on Windows #3950 [nulano, radarhere]

    • Updated warning to specify when Image.frombuffer defaults will change #4086 [radarhere]

    • Changed WindowsViewer format to PNG #4080 [radarhere]

    • Use TIFF orientation #4063 [radarhere]

    • Raise the same error if a truncated image is loaded a second time #3965 [radarhere]

    • Lazily use ImageFileDirectory_v1 values from Exif #4031 [radarhere]

    • Improved HSV conversion #4004 [radarhere]

    • Added text stroking #3978 [radarhere, hugovk]

    • No more deprecated bdist_wininst .exe installers #4029 [hugovk]

    • Do not allow floodfill to extend into negative coordinates #4017 [radarhere]

    ... (truncated)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Undefined name: import scipy in Lenia.py

    Undefined name: import scipy in Lenia.py

    scipy is used twice but is never imported or defined.

    flake8 testing of https://github.com/Chakazul/Lenia on Python 3.6.3

    $ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    ./Python/Lenia.py:446:7: F821 undefined name 'scipy'
    		d = scipy.spatial.distance.pdist(self.series[:, None])
          ^
    ./Python/Lenia.py:449:7: F821 undefined name 'scipy'
    		Z = scipy.spatial.distance.squareform(d)
          ^
    ./Python/Lenia.py:1078:89: F821 undefined name 'text'
    		self.menu.children[info[0]].entryconfig(info[1], label='{text} [{value}]'.format(text=text if text else info[2], value=value))
                                                                                            ^
    ./Python/Lenia.py:1078:97: F821 undefined name 'text'
    		self.menu.children[info[0]].entryconfig(info[1], label='{text} [{value}]'.format(text=text if text else info[2], value=value))
                                                                                                    ^
    4     F821 undefined name 'scipy'
    4
    

    The other two issues are worth looking at as well. There is no variable text defined within that context which may raise NameError at runtime.

    Closed 
    opened by cclauss 0
  • Bump mako from 1.1.3 to 1.2.2 in /Python

    Bump mako from 1.1.3 to 1.2.2 in /Python

    Bumps mako from 1.1.3 to 1.2.2.

    Release notes

    Sourced from mako's releases.

    1.2.2

    Released: Mon Aug 29 2022

    bug

    • [bug] [lexer] Fixed issue in lexer where the regexp used to match tags would not correctly interpret quoted sections individually. While this parsing issue still produced the same expected tag structure later on, the mis-handling of quoted sections was also subject to a regexp crash if a tag had a large number of quotes within its quoted sections.

      References: #366

    1.2.1

    Released: Thu Jun 30 2022

    bug

    • [bug] [tests] Various fixes to the test suite in the area of exception message rendering to accommodate for variability in Python versions as well as Pygments.

      References: #360

    misc

    • [performance] Optimized some codepaths within the lexer/Python code generation process, improving performance for generation of templates prior to their being cached. Pull request courtesy Takuto Ikuta.

      References: #361

    1.2.0

    Released: Thu Mar 10 2022

    changed

    • [changed] [py3k] Corrected "universal wheel" directive in setup.cfg so that building a wheel does not target Python 2.

      References: #351

    • [changed] [py3k] The bytestring_passthrough template argument is removed, as this flag only applied to Python 2.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump numpy from 1.16.6 to 1.22.0 in /Python

    Bump numpy from 1.16.6 to 1.22.0 in /Python

    Bumps numpy from 1.16.6 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Python (Reikna) GPU support on Windows?

    Python (Reikna) GPU support on Windows?

    Hello, I am a big fan of your work! Quick question, are there some extra steps I need to take to enable GPU support, at least on Windows? (I would be normally using linux but my dual boot setup is currently broken)

    I had to tweak the dependencies to get it to work right, but I'm still using mostly the same install. I also had to install PyCUDA to get Reikna to do anything, I think this is normal but I couldn't find anything about it specifically for Lenia. However, I still get an error saying the compiler preprocessing of the CUDA shaders failed.

    I have the latest stable NVIDIA graphics drivers, and an NVIDIA GTX 1650. I tried doing a clean install of the graphics drivers, and all of the CUDA test programs seem to work. Is it possible my GPU or operating system is not fully supported by Lenia Python? Or am I just overlooking something? My adapted requirements.txt file is attached below if it helps. Let me know if you need any more information.

    requirements.txt

    opened by thedocruby 3
  • Increase the usage of augmented assignment statements

    Increase the usage of augmented assignment statements

    :eyes: Some source code analysis tools can help to find opportunities for improving software components. :thought_balloon: I propose to increase the usage of augmented assignment statements accordingly.

    diff --git a/Python/LeniaND.py b/Python/LeniaND.py
    index 1c05acc..892d0f0 100644
    --- a/Python/LeniaND.py
    +++ b/Python/LeniaND.py
    @@ -676,7 +676,7 @@ class Analyzer:
     
                     self.density_sum = np.sum(self.polar_density, axis=0)
                     if self.density_ema is not None:
    -                    self.density_ema = self.density_ema + self.ema_alpha * (self.density_sum - self.density_ema)
    +                    self.density_ema += self.ema_alpha * (self.density_sum - self.density_ema)
                     else:
                         self.density_ema = self.density_sum
     
    diff --git a/Python/LeniaNDK.py b/Python/LeniaNDK.py
    index 03373fe..8722d87 100644
    --- a/Python/LeniaNDK.py
    +++ b/Python/LeniaNDK.py
    @@ -701,7 +701,7 @@ class Analyzer:
     
                     self.density_sum = np.sum(self.polar_density, axis=0)
                     if self.density_ema is not None:
    -                    self.density_ema = self.density_ema + self.ema_alpha * (self.density_sum - self.density_ema)
    +                    self.density_ema += self.ema_alpha * (self.density_sum - self.density_ema)
                     else:
                         self.density_ema = self.density_sum
     
    diff --git a/Python/LeniaNDKC.py b/Python/LeniaNDKC.py
    index 765e00f..038e096 100644
    --- a/Python/LeniaNDKC.py
    +++ b/Python/LeniaNDKC.py
    @@ -751,7 +751,7 @@ class Analyzer:
     
                     self.density_sum = np.sum(self.polar_density, axis=0)
                     if self.density_ema is not None:
    -                    self.density_ema = self.density_ema + self.ema_alpha * (self.density_sum - self.density_ema)
    +                    self.density_ema += self.ema_alpha * (self.density_sum - self.density_ema)
                     else:
                         self.density_ema = self.density_sum
     
    
    opened by elfring 0
Releases(v3.0)
  • v3.0(Oct 14, 2020)

  • v3.5(Oct 14, 2020)

    Code release for extended Lenia - multi-dimensional, multi-kernel and multi-channel Source: Lenia.v3.5.zip Paper: https://arxiv.org/abs/2005.03742 Video: https://youtu.be/HT49wpyux-k

    Full versions list: https://chakazul.github.io/lenia.html 🦋 2018-05 - Lenia in Python (v3.0 Lenia.py) 🐟 2019-12 - Multi-dimensional extension (v3.1 Lenia3D.py, v3.2 Lenia4D.py) 🐟 2020-01 - Generalized dimensions (v3.3 LeniaND.py) 🐠 2020-01 - Multi-kernel extension (v3.4 LeniaNDK.py) 🐠 2020-02 - Multi-channel extension (v3.5 LeniaNDKC.py)

    Source code(tar.gz)
    Source code(zip)
    Lenia.v3.5.zip(29.53 MB)
Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It can use GPUs and perform efficient symbolic differentiation.

============================================================================================================ `MILA will stop developing Theano <https:

null 9.3k Feb 12, 2021
An abstraction layer for mathematical optimization solvers.

MathOptInterface Documentation Build Status Social An abstraction layer for mathematical optimization solvers. Replaces MathProgBase. Citing MathOptIn

JuMP-dev 284 Jan 4, 2023
Source code, datasets and trained models for the paper Learning Advanced Mathematical Computations from Examples (ICLR 2021), by François Charton, Amaury Hayat (ENPC-Rutgers) and Guillaume Lample

Maths from examples - Learning advanced mathematical computations from examples This is the source code and data sets relevant to the paper Learning a

Facebook Research 171 Nov 23, 2022
NaturalProofs: Mathematical Theorem Proving in Natural Language

NaturalProofs: Mathematical Theorem Proving in Natural Language NaturalProofs: Mathematical Theorem Proving in Natural Language Sean Welleck, Jiacheng

Sean Welleck 83 Jan 5, 2023
A Python library created to assist programmers with complex mathematical functions

libmaths libmaths was created not only as a learning experience for me, but as a way to make mathematical models in seconds for Python users using mat

Simple 73 Oct 2, 2022
Framework that uses artificial intelligence applied to mathematical models to make predictions

LiconIA Framework that uses artificial intelligence applied to mathematical models to make predictions Interface Overview Table of contents [TOC] 1 Ar

null 4 Jun 20, 2021
1st Solution For ICDAR 2021 Competition on Mathematical Formula Detection

This project releases our 1st place solution on ICDAR 2021 Competition on Mathematical Formula Detection. We implement our solution based on MMDetection, which is an open source object detection toolbox based on PyTorch.

yuxzho 94 Dec 25, 2022
Official implementation for ICDAR 2021 paper "Handwritten Mathematical Expression Recognition with Bidirectionally Trained Transformer"

Handwritten Mathematical Expression Recognition with Bidirectionally Trained Transformer Description Convert offline handwritten mathematical expressi

Wenqi Zhao 87 Dec 27, 2022
Prototypical python implementation of the trust-region algorithm presented in Sequential Linearization Method for Bound-Constrained Mathematical Programs with Complementarity Constraints by Larson, Leyffer, Kirches, and Manns.

Prototypical python implementation of the trust-region algorithm presented in Sequential Linearization Method for Bound-Constrained Mathematical Programs with Complementarity Constraints by Larson, Leyffer, Kirches, and Manns.

null 3 Dec 2, 2022
This project uses reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can learn to read tape. The project is dedicated to hero in life great Jesse Livermore.

Reinforcement-trading This project uses Reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can

Deepender Singla 1.4k Dec 22, 2022
Creating Artificial Life with Reinforcement Learning

Although Evolutionary Algorithms have shown to result in interesting behavior, they focus on learning across generations whereas behavior could also be learned during ones lifetime.

Maarten Grootendorst 49 Dec 21, 2022
Real life contra a deep learning project built using mediapipe and openc

real-life-contra Description A python script that translates the body movement into in game control. Welcome to all new real life contra a deep learni

Programminghut 7 Jan 26, 2022
Python-experiments - A Repository which contains python scripts to automate things and make your life easier with python

Python Experiments A Repository which contains python scripts to automate things

Vivek Kumar Singh 11 Sep 25, 2022
Art Project "Schrödinger's Game of Life"

Repo of the project "Team Creative Quantum AI: Schrödinger's Game of Life" Installation new conda env: conda create --name qcml python=3.8 conda activ

ℍ◮ℕℕ◭ℍ  ℝ∈ᛔ∈ℝ 2 Sep 15, 2022
The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.

django-crispy-forms The best way to have Django DRY forms. Build programmatic reusable layouts out of components, having full control of the rendered

null 4.6k Dec 31, 2022
The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.

django-crispy-forms The best way to have Django DRY forms. Build programmatic reusable layouts out of components, having full control of the rendered

null 4.6k Jan 7, 2023
Generate your personal 8-bit avatars using Cellular Automata, a mathematical model that simulates life, survival, and extinction

Try the interactive demo here ✨ ✨ Sprites-as-a-Service is an open-source web application that allows you to generate custom 8-bit sprites using Cellul

Lj Miranda 265 Dec 26, 2022
Game-of-life - A simple python program to simulate and visualise the Conway's Game of life

Conway's game of life A simple python program to simulate and visualise the Conw

Dhravya Shah 3 Feb 20, 2022
A flexible forms validation and rendering library for Python.

WTForms WTForms is a flexible forms validation and rendering library for Python web development. It can work with whatever web framework and template

WTForms 1.4k Dec 31, 2022
A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. Insta

Chris Beaven 1.2k Jan 3, 2023