Skip to content

Latest commit

 

History

History
104 lines (86 loc) · 4.22 KB

README.md

File metadata and controls

104 lines (86 loc) · 4.22 KB

Automata README

A collection of my Automata / art coding hobbies. I have set it up such that relevant parameters are read from a parameters.py file.

I appreciate any constructive feedback or future ideas!

The Walker and Canvas classes

Uses the 'canvas' and 'walker' parameters to simulate restricted walkers on a canvas.

> python Automata walker

The Sierpinski class

Uses the 'sierpinski' parameters to simulate a Sierpinski triangle.

> python Automata sierpinski

The Sandpile class

Uses the 'sandpile' parameters to simulate an Abelian sandpile.

> python Automata sandpile

The AutoCell class

raise NotImplementedError("These docs are still to be fleshed out!")

Uses the 'autocell' parameters to simulate cell based automata. Implemented for:

  • 1D (x) evolution into 2nd (spatial) dimension (y), or
  • 2D (x-y) evolution into 3rd (temporal) dimension (t).
python Automata autocell

References

Markdown

Logging information:

Color maps:

Gaussian filtering:

Finding line segment intersection:

DEPRECATED from Canvas for folding from 3x3 to 1x1 canvas (Canvas.foldCanvas()), more efficient at cost of 9x larger canvas

Abelian sandpiles


TODO: Next Steps

  • Make TODO list
  • Automata
    • define python Automata help|-help|-h to return help docs in the command line
  • Canvas
    • Gaussian filtering for smoothing
    • multiprocessing should be possible as walkers independent of one another
      • I.E. N canvases parsing total_walkers / N walkers each
  • Walker
    • Find out if choice has more efficient function
    • Add Walker vision implementation to allow directional preference
      • I.E. Fix Walker.look() method, especially handling and 'type' of vis / self.vis
      • I.E. vision: [int, int] | np.array([int, int]).astype(int)
  • Sandpile
    • Find out how large history should be (t-axis)
      • I.E. dynamically calculate t if possible
    • Sandpile.animate() save with PIL for proper .gif format
    • Test Sandpile.show3D() for better plots
  • Bezier
    • Add Bezier.py to folder structure
    • Implement Bezier() in the __main__.py file
    • Add docs to README above
  • AutoCell
    • Add original Autocell.py to folder structure
    • Implement AutoCell() in the __main__.py file
    • Finish correcting typing in AutoCell.py
      • I.E. Includes parsing parameters from dictionary
    • Add docs to README above
    • Add AutoCell References
    • Cell1D show revamp
    • Checkbox for black/white in show 2D
    • Cell2D.animate() not called properly when run in Terminal
    • Cell2D resize not working
    • Have way to show age
      • I.E. Pixel gets darker the older it is