Xentica 0.2.0 Release

Good day, the next major version is out at last, and we are glad to present you Xentica 0.2.0 release. A lot of new features were added to the core engine. And the good news, it’s backward compatible with the previous version, so you could upgrade safely.

The main goal accomplished, we built the EvoLife model purely with Xentica. The structures with the most interesting dynamics (so-called ‘Bliambas’) are achievable with it, although with a bit different meta-parameters. You could check how it runs on a demo video. Another interesting stable ecosystem was discovered in the process of development, video is available. Both experiments shot on those videos are included in the official EvoLife example, you could always reproduce them yourself.

Also, there is an experiment with EvoLife modification in 6D, but you should have a powerful video card with at least 9GB RAM in order to run it. And even with GTX 1080Ti, it runs very slow (~7FPS). If you are interested, check the glitchy time-lapse video of this experiment.

In order to make run all the things described above, we had to implement a number of new features to the core engine:

  • Per-cell RNG property. If specified, each cell will have a separate pseudo-random stream, with the ability to draw direct integer values and values from the uniform distribution.

  • Dynamic totalistic rule property. This is a regular integer property with the encoded lifelike/totalistic rule. It could also easily test a cell for born / dead status.

  • Genome crossover. It helps you to crossover several genomes in a stochastic way, bit by bit. Also, has an option to mutate a gene with a certain probability.

  • Meta-parameters. Constants that could be changed per each experiment. Makes experimenting more convenient, since you could easily inherit and re-use them.

  • Interactive parameters. A special meta-parameters case, that could be changed in runtime. It would be useful for the values you control interactively, like render options or mutation probability.

  • Math functions. A collection of functions, mapping to C counterparts. min/max, typecasting and so on.

  • Genome coloring. A collection of algorithms helping your evolutionary models to look just awesome out of the box.

A solid part of the work also done to make the testing process super easy and informative. Now, we have a powerful test suite, managed by a single tox command. It will:

  • run tests in all supported Python environments;
  • do sanity checks for the build;
  • test how docs are building;
  • run code style checks;
  • do code static analysis;
  • build code coverage;
  • run a benchmark.

As well, almost all major bugs were fixed, except the new one with DeferredExpression as an initial value for Variable.

You could check the full list of changes for this version in the CHANGELOG.

As in the previous release, no changes were made for Moire, you can safely use 0.1.0 with the latest Xentica. Although, we found several bugs for cases when the frame rate is too low. They gonna be fixed along with the next Xentica release.

Now, for future plans. As the main goal, we’ll focus on a Stochastic Corrector (or alike) model in the next version. Most probably, it will be a bugfix release (0.2.1), since we already have all the necessary features to implement it. But, there is also a couple of features in the backlog that would be necessary. If so, we’ll skip to the next major (0.3) version.

Traditionally, there are performance results, in gigacells per second:

GPU Tester Conway’s Life Shifting Sands Noise TV EvoLife
GTX 1080Ti @a5kin 6.38 Gcells/s 7.25 Gcells/s 7.33 Gcells/s 1.31 Gcells/s

If you wish to extend this table, please send your own results, along with your GPU model. You could run the benchmark with the tox -e benchmark command.

Stay connected,
Xentica/Moire Team