A library and platform for playing and experimenting with cellular automata.
- Web renderers have been moved into a new package:
cellular_automata_web. This core package can now be loaded into none web enviroments such as flutter etc.
example/folder now contains numerous ascii based examples that can be run from command-line
onPaintFullnow available which will paint a full scene every generation. Note: This is a not as performant as
onPaintwhich will only paints the changes in a scene
AsciiRendereradded. This is a very simple text based renderer, used in the examples.
onPreparefired before scene starts running. This is when a generator could be used to seed the automaton.
- Now supports multiple automata running in a single scene. used
addAutomaton()to add automata.
- Recased all enums to camel case.
- Dart 2.0. Tested and all works correctly.
- Enabled Travis CI: https://travis-ci.org/jimmyff/cellular_automata/
MCellGenerationsrule parser added. This can parse all MCell Generations configs.
onComplete, now passes
SimulatorCompleteReasonenum value. Current states are:
- Demos updated to include MCell
- Credits file created to credit those that wrote/discovered the rules
- Decent Refactor, reorganised stuff!
CellGridwhich combines Array2D with CA specific functionality which simplifies
MajorityVoteRules, utilises edge detection to determine activity
CanvasRenderer: This allows the scene to be painted at actual size rather than small and then resized via CSS.
Simulatorconstructor parameter, if this is set then
onStableis called when the generation count surpasses
package:loggingso debug information can be enabled / disabled
- Updated demos
- Stable simulation detection. This broadcast to the
onStablestream after detecting repeating identical generations or repeating generation
activeCellCountpatterns spanning up to 8 generations.
- Demos updated to auto reset on stable scene (excluding rendering examples)
- Added new default renderer for web:
CanvasRenderer. This is a simple native Canvas renderer. This has been added as
StageXLRendererhas performance issues with large scenes.
- Added demos for both
- Demos moved over to use
- Updated demos
GameOfLifeSimpleRules. This simulation is a simpler version of
GameOfLife, it only has binary states and implemented with minimal code
- Updated demos
- Optimised cell processing, now only processes cells that neighbor active states
- Added tests (more to add)
- Improved StageXL bitmap colours crispness by adding frame margin
- Refactored so Rule's cell-states are now passed as generic types in to the Cell World for better analyzer & tooling support
- Added a
CAGeneratorsfor generating/seeding worlds
- Renderers are now further decoupled from the Simulation. They now just require an CellGrid containing states expressed in a palette.
- Added a very simple demo (simple_example.dart) to show minimum setup code
CellWorldnow stores full cell-states and Rules also deal with full cell-states which makes code more readable
- Fixed mathematical generators
- Initial version, includes basic implementation of
- Hosted demos