A pure python module for generating iterations from the L-System or Lindenmayer system.
Project description
LSystem
What is LSystem?
A pure python module for generating iterations from the L-System or Lindenmayer system. Please check the [Wikipedia page on L-system][https://en.wikipedia.org/wiki/L-system] for details.
The module gives you the LSystem
class with the same structure as listed out on Wikipedia page (see the paragraph above). It gives you the following attributes:
- variables : A set of symbols that can be replaced
- constants : A set of symbols that won't be replaced
- axiom : The initial state of the system.
- rules : The rules for replacing variables with a combination of constants and variables.
- system : A list of iterations that have been formed. The first member is, naturally, the axiom. The list can be expanded using the
iterate()
function member.
A quick tutorial
>>> from LindenmayerSystem import LSystem # Import the LSystem class from the LSystem module
>>> ################################################
>>> # Algae will be an instance of LSystem
>>> # with
>>> # variables being the list ['A', 'B']
>>> # no constants
>>> # axiom 'A'
>>> # rules A -> AB and B -> A
>>> ################################################
>>> Algae = LSystem(variables = "A B".split(), constants =[], axiom="A", rules={"A": "AB", "B":"A"})
>>> Algae
['A']
>>> Algae.variables
['A', 'B']
>>> Algae.constants
[]
>>> Algae.rules
{'A': 'AB', 'B': 'A'}
>>> Algae.axiom
'A'
>>> Algae
['A']
>>> Algae.iterate()
>>> Algae
['A', 'AB']
>>> Algae.iterate()
>>> Algae
['A', 'AB', 'ABA']
>>> Algae.system
['A', 'AB', 'ABA']
Invitation
to review
The code has been checked for the examples in Wikipedia. You are invited to cross check the results. Please raise an issue in case of a discrepancy.
to contribute
You are welcome to improve LSystem and suggest improvements.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file LindenmayerSystem-1.0.0.tar.gz
.
File metadata
- Download URL: LindenmayerSystem-1.0.0.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ad8def4dc5b14c0e7ed4c366755d5c54f1b600184c65a91d7fc5f1b78310090 |
|
MD5 | 04d4e45e715af3e6889ef4b53cd07ee1 |
|
BLAKE2b-256 | b251b7b65b25b94fa66bffe8e0e75120e1c601a48f63822ecad1e5e661e5c832 |
File details
Details for the file LindenmayerSystem-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: LindenmayerSystem-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b234977e9aaf27149fdae9baeb0f4e9519dddece68f7b158954f7f8bb34f131 |
|
MD5 | f521f246958baa7a5d93e50599f17b93 |
|
BLAKE2b-256 | 98cfee41dc3209911794d110d93d415705c0bb477a527808aa5085dc02294aa2 |