A cellular automata library / playground written in Dart. Happily accepting pull requests! ^_^
package:loggingfor debug & info (view on pub)
Dartium performance is significantly faster than compiled performance at the moment. Also there are some generator defects that are yet to be resolved. To try and increase use the
trust-type-annotations flag in your pubspec:
transformers: - $dart2js: checked: false minify: true commandLineOptions: ['--trust-type-annotations', '--trust-primitives']
Please see the credits file for a list of the authors that discovered the rules that have been implemented in this project.
Please see the cellular_automata license.
MCellGenerationsrule parser added. This can parse all MCell Generations configs.
onComplete, now passes
SimulatorCompleteReasonenum value. Current states are:
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
onStablestream after detecting repeating identical generations or repeating generation
activeCellCountpatterns spanning up to 8 generations.
CanvasRenderer. This is a simple native Canvas renderer. This has been added as
StageXLRendererhas performance issues with large scenes.
GameOfLifeSimpleRules. This simulation is a simpler version of
GameOfLife, it only has binary states and implemented with minimal code
CAGeneratorsfor generating/seeding worlds
CellWorldnow stores full cell-states and Rules also deal with full cell-states which makes code more readable
Add this to your package's pubspec.yaml file:
dependencies: cellular_automata: "^0.8.0"
You can install packages from the command line:
$ pub get
$ flutter packages get
Alternatively, your editor might support
pub get or
flutter packages get.
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
|0.8.0||Jul 9, 2017|
|0.7.0||Jul 7, 2017|
|0.6.0||Jul 5, 2017|
|0.5.0||Jul 4, 2017|
|0.4.0||Jul 4, 2017|
|0.3.0||Jul 3, 2017|
|0.2.0||Jul 2, 2017|
We analyzed this package on Jun 19, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Detected platforms: Flutter, web, other
No platform restriction found in primary library
Fix analysis and formatting issues.
Analysis or formatting checks reported 1 error 4 hints.
Strong-mode analysis of
lib/src/rules/majority_vote.dartfailed with the following error:
line: 36 col: 17
The argument type '(int) → Null' can't be assigned to the parameter type '(dynamic) → void'.
Strong-mode analysis of
lib/cellular_automata.dartgave the following hint:
line: 4 col: 8
Unused import: 'package:logging/logging.dart'.
Similar analysis of the following files failed:
The description is too short.
Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.
Package is pre-v1 release.
While there is nothing inherently wrong with versions of
0.*.*, it usually means that the author is still experimenting with the general direction API.
Maintain an example.
Create a short demo in the
example/directory to show how to use this package. Common file name patterns include:
example.dartor you could also use
|Dart SDK||>=1.20.1 <2.0.0|