cellerity

1.0.0 • Public • Published

Cellerity

Cellerity provides general cellular automaton tools. In order to support a variety of uses, it's designed to work with non-numeric cell values, and offers an Automaton class that can be extended to more specific types of cellular automata (e.g. lifelike cellular automata or elementary cellular automata).

The primary focus of the module is the Automaton class, which supports very general cellular automaton functionality. Additionally, a more concrete LifelikeAutomaton subclass makes it easy to simulate any lifelike cellular automaton and serves an example of how to extend the Automaton class.

Other npm packages for cellular automata are available, and probably faster and more convenient for most use cases. Possible reasons to use Cellerity include browser support (which I haven't tested at all recently) and the ability to use objects as cell values. I mostly wrote this as a personal project to experiment with automated documentation, unit tests, and the like, so if it also turns out to be useful for something you're doing, that's just a nice bonus.

Installation

This is an npm package, so naturally it requires Node.js and npm. Install those if you don't have them already.

Note that the package uses some language features that may not be supported in old versions of Node.

To install locally for use in your Node.js project, run npm install cellerity.

If you want to build the documentation, run tests, view examples, or modify the source for the project, clone this repository from the GitHub repository and run npm install in the project's root directory to install the dev dependencies.

Documentation

Auto-generated documentation for the public API can be found online here.

In addition, a usage example using the LifelikeAutomaton class to run Conway's Game of Life in the console is provided.
You can also pass a rule in the "B/S" format (e.g. "B3/S23" for Life) as the first argument to view an automaton other than Life. The script is located at examples/runlife.js.

If you have cloned the repository and installed the dev dependencies, you can build the documentation by running npm run documentation.

Browser Support

If you have cloned the repository and installed the dev dependencies, you can use npm run build to generate a browser-friendly version of the module, located at dist/cellerity-browser-<version>.js.

Including this file in your html page should be equivelant to Node's var cellerity = require("cellerity");

Note: I have not yet tested a wide range of browsers, and the module does use some ES6 functionality, so don't expect support across all browsers currently in use.

Tests

If you have cloned the repository and installed the dev dependencies, you can run unit tests and generate a code coverage report using npm test.

(It seems that the tests require that you be able to run node as "node" rather than "nodejs"; in Ubuntu or Linux Mint, this can be solved by installing the nodejs-legacy legacy symlink package.)

Licence

This package was written by Avery Hiebert and released under the MIT license, as described in LICENCE.txt

Package Sidebar

Install

npm i cellerity

Weekly Downloads

8

Version

1.0.0

License

MIT

Unpacked Size

1.16 MB

Total Files

46

Last publish

Collaborators

  • ahiebert