Skip to main content

cate

pipeline status coverage report

CATE stands for Chaotic Attractor TEmplate.

cate is a libre software tool (licensed under GNU Lesser General Public License v3.0 only) to draw the templates of chaotic attractors.

Chaotic attractors are solutions of deterministic processes, of which the topology can be described by templates. We consider templates of chaotic attractors bounded by a genus-1 torus described by a linking matrix.

This tool first validates a linking matrix by checking continuity and determinism constraints. The tool then draws the template corresponding to the linking matrix, and optimizes the compactness of the representation. The representation is saved as a Scalable Vector Graphics (SVG) file.

Citation

cate is developed as a research project.

The motivation for a tool such as cate, an introduction to linking matrices, and a description of the optimization logic are described, inter alia, in a publication presented at the conference Graph Drawing 2018.

This publication is available in the conference proceedings (doi:10.1007/978-3-030-04414-5_8, paywalled), or on arXiv (arxiv:1807.11853).

If you use cate for a publication, please cite as follows:

Maya Olszewski, Jeff Meder, Emmanuel Kieffer, Raphaël Bleuse, Martin Rosalie, Grégoire Danoy, and Pascal Bouvry. Visualizing the Template of a Chaotic Attractor. In Graph Drawing, volume 11282 of Lecture Notes in Computer Science, 106–119. Springer, 2018. doi:10.1007/978-3-030-04414-5_8.

Or you may use, at your convenience, the following BibTeX entry:

@inproceedings{OlszewskiM2018Visualizing,
  author    = {Olszewski, Maya and
               Meder, Jeff and
               Kieffer, Emmanuel and
               Bleuse, Rapha{\"{e}}l and
               Rosalie, Martin and
               Danoy, Gr{\'{e}}goire and
               Bouvry, Pascal},
  title     = {{V}isualizing the {T}emplate of a {C}haotic {A}ttractor},
  booktitle = {Graph Drawing},
  series    = {Lecture Notes in Computer Science},
  volume    = 11282,
  pages     = {106--119},
  publisher = {Springer},
  year      = 2018,
  month     = sep,
  doi       = {10.1007/978-3-030-04414-5_8},
  isbn      = {978-3-030-04413-8},
}

Installation

cate is packaged as a regular Python package, and is published on PyPI. It hence can easily be installed with pip.

For more details on how to install a Python package, one can refer to https://packaging.python.org/tutorials/installing-packages/

The latest stable (recommended) version can be installed with the following command (assuming pip is installed):

$ pip install cate

It is recommended to use a virtual environment to install cate. Again, one can refer to https://packaging.python.org/tutorials/installing-packages/ to get a more comprehensive overview.

On a typical Linux environment, the typical commands to use would be:

$ python3 -m venv cate_venv
$ source cate_venv/bin/activate
$ pip install cate

This will create a new virtual environment in the cate_venv subdirectory, and configure the current shell to use it as the default python environment. This will then install cate in this new environment without interfering with the already installed packages.

One would then exit this environment either by exiting the current shell, or by typing the command deactivate.

Further uses of cate only require to activate the virtual environment with the following command:

$ source cate_venv/bin/activate

Usage

Given a linking matrix, we can draw its template with cate by following these steps. For instance, let’s consider the following linking matrix:

5x5 linking matrix

This linking matrix describes a template made of five strips. cate uses JSON files as an input. A linking matrix has to be described as an array made of arrays of integers, with a row-major order. For the above example linking matrix, one can encode it as follows. Note that whitespaces, new lines, … are insignificant, but do improve the readability.

[[2, 1, 0, 0, 0],
 [1, 1, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 1, 1],
 [0, 0, 0, 1, 2]]

To draw the compact template of this example linking matrix, it is as simple as calling cate with the name of the input file as the first argument.

$ cate 5x5_001.json
[  INFO  ] Input matrix
[  INFO  ]   [2, 1, 0, 0, 0]
[  INFO  ]   [1, 1, 0, 0, 0]
[  INFO  ]   [0, 0, 0, 0, 0]
[  INFO  ]   [0, 0, 0, 1, 1]
[  INFO  ]   [0, 0, 0, 1, 2]
[  INFO  ] Starting constructing the tree
[  INFO  ] Maximum possible template length: 2
[  INFO  ] Finished constructing the tree
[  INFO  ] Starting creation of the SVG template
[  INFO  ] Shortest template
[  INFO  ]   Level 1: (0, 1), (3, 4)
[  INFO  ] Finished creation of the SVG template

cate has created a SVG whose default file is template.svg.

template of the 5x5 linking matrix

The comprehensive set of elementary matrices of size 5x5 and 6x6 is available in the official repository of cate (see https://gitlab.inria.fr/cate/cate/tree/master/examples). The depicted example corresponds to the 5x5_001.json linking matrix.

The comprehensive list of the supported options and their usage is available by typing cate -h.

Metadata

Release files for cate 1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cate 1.1
File Size Uploaded
cate-1.1.tar.gz 33.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cate 1.1
File Interpreter ABI Platform
cate-1.1-py3-none-any.whl Python 3 none any Details

Total release size: 53.4 kB

Release files / cate-1.1.tar.gz

Download URL cate-1.1.tar.gz
Size 33.8 kB
Tags Source
SHA-256 checksum
How to use checksums
acae8663d0826e2354e6ddeb12fabb20883097afe530ed3045b9326f29cf7334
BLAKE2b-256 checksum
How to use checksums
b31225826abfb9e6b8cf5690be8853920eaca53ffdafcff028471b089b669748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / cate-1.1-py3-none-any.whl

Download URL cate-1.1-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8be7cae2a34c82e29f93f74e87c2c3440744cb7e97bef8cd0813197120cbc76
BLAKE2b-256 checksum
How to use checksums
29961a958c9acd41cf23a8781f4d930a5deeea17cec97a95f863dfd9aa21fb09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

1.1 This release

2 release files

1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page