- 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-linePlayer
renamedScene
Simulator
renamedAutomaton
onRender
renamedonPaint
SimulationCompleteReason
renamedSceneCompleteReason
onPaintFull
now available which will paint a full scene every generation. Note: This is a not as performant asonPaint
which will only paints the changes in a sceneAsciiRenderer
added. This is a very simple text based renderer, used in the examples.onPrepare
fired 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/
MCellGenerations
rule parser added. This can parse all MCell Generations configs.- Credits
onStable
renamedonComplete
, now passesSimulatorCompleteReason
enum value. Current states are:duration
andstable
- Demos updated to include MCell
- Credits file created to credit those that wrote/discovered the rules
- Decent Refactor, reorganised stuff!
Simulator
renamedPlayer
Array2D
replaced withCellGrid
which combines Array2D with CA specific functionality which simplifiesCellWorld
.CARules
interface updatedCellWorld
renamedSimulator
- Optimised
MajorityVote
Rules, utilises edge detection to determine activity - Added
paintFullSize
option toCanvasRenderer
: This allows the scene to be painted at actual size rather than small and then resized via CSS. - Added
maxAge
as aSimulator
constructor parameter, if this is set thenonStable
is called when the generation count surpassesmaxAge
- Added
package:logging
so debug information can be enabled / disabled - Updated demos
- Stable simulation detection. This broadcast to the
onStable
stream after detecting repeating identical generations or repeating generationactiveCellCount
patterns 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 asStageXLRenderer
has performance issues with large scenes. - Added demos for both
StageXLRenderer
andCanvasRenderer
- Demos moved over to use
CanvasRenderer
- Added
MajorityVote
Rules - Optimised
BriansBrain
processing - Updated demos
- Added
GameOfLifeSimple
Rules. This simulation is a simpler version ofGameOfLife
, it only has binary states and implemented with minimal code - Added
BriansBrain
Rules - 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
CAGenerators
for 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
CellWorld
now 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
GameOfLife
withStageXLRenderer
- Hosted demos