cetic / tsimulus

A tool for generating random, yet realistic, time series values



Build Status Coverage Status License

TSimulus (formally, RTS-Gen) is a tool for generating random, yet realistic, time series values. In this project, a time series is an orderly sequence of points in times, each of them being associated to at most a value. Time series are used in a wide variety of areas, including finance, weather forecasting, and signal processing.

While random-number generators can easily be used for producing sequences of unrelated (or, at least, hardly predictable) numbers, generating sequences of numbers that seem to respect some obvious patterns is also interesting in many circumstances, including the simulation of data acquisition in the aforementioned areas.

In order to make realistic time series, a convincing noise must generally be added to some specified patterns. In addition, the values of a time series may be related to those of an other time series.

The TSimulus project provides tools for specifying the shape of a time series (general patterns, cycles, importance of the added noise, etc.) and for converting this specification into time series values.

More specifically, the project proposes:

  • A way to express time series constraints using JSON documents, as well as a Scala API for programmatically expressing these constraints.
  • A convenient way to combine constraint expressions in order to express higher-level constraints.
  • An engine that generates time series values based on the described constraints.
  • A command line tool that relies on the engine to generate time series.
  • A stateless microservice that provides time series generation services.


TSimulus can be imported in your project by adding the following instruction in your build.sbt file:

libraryDependencies += "be.cetic" %% "tsimulus" % "0.1.18"

TSimulus requires a standard Java Runtime Environment, as well as the Scala library. If this dependency is not locally available the first time you compile your project, the dependency manager will automatically download it for you.


The documentation of the latest release is available on rts-gen.readthedocs.io.

The sources of the documentation are available in the docs directory and can be compiled using Sphinx.


TSimulus is release under the Apache license (version 2).

This library has been partly funded by

  • EAM-SDI, a CWALity research project of the Walloon Region.
  • WavenetCity 2.0, an other CWALity research project of the Walloon Region.