Skip to main content

LiCoRICE - Linux Comodular Realtime Interactive Computation Engine

LiCoRICE is an open-source computational platform implementing model-based design for realtime processing of streaming data.

It facilitates the execution of numerical operations in python with empirical realtime guarantees, supports storage of streaming data to an SQLite Database, and supports USB peripherals and output to a display via pygame, all while maintaining at least 1ms ticks.

LiCoRICE was developed in the Stanford Brain Interfacing Laboratory, where it is currently used to control and conduct closed-loop neuroscience experiments.

Motivation

Why Realtime?

While offline data analysis collects data and processes it in batches, realtime processing is the analysis of data as it is collected, allowing for predictable response time (latency) and minimal timing variation (jitter). Systems in which delays are consequential, such as conducting closed-loop experiments or high-frequency trading, can benefit from implementing realtime practices.

Why Licorice?

Although realtime computational platforms do exist, many of them are inaccessible due to programming language, hardware, cost, or being proprietary. The high-level, POSIX-compliant, and open-source nature of LiCoRICE forgoes these problems and allows users to easily install LiCoRICE and adapt it to their use case.

System Requirements

  • x86_64 system

  • Modern UNIX environment (Linux, MacOS)

  • Python 3.6+

  • GCC toolchain, libevent, SQLite3, and MessagePack

NOTE: Soft realtime timing guarantees are only currently tested for Ubuntu 20.04 LTS (Focal Fossa) and Ubuntu 18.04 LTS (Bionic Beaver).

We recommend starting with a stock install of Ubuntu Server 20.04 LTS. Use of other UNIX platforms besides MacOS requires manual installation of packages.

Installation

LiCoRICE can be installed with pip, but requires some dependencies and permissions detailed in the documentation.

To achieve minimal jitter, it is recommended to install the stock linux-lowlatency kernel or a custom kernel. We provide a one-click setup script to install a suitable realtime kernel.

User Guide

LiCoRICE has a growing user guide which walks through creating some basic models from the ground up.

Examples

LiCoRICE also ships with a number of examples that highlight its capabilities.

Some examples require external hardware to run.

Usage

In general, only one command needs to be issued to parse, compile, and run a model:

licorice go <model_name>

For a more detailed description, take a look at the API reference.

Metadata

Release files for licorice 0.0.7

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

Source distribution (sdist)

Source distribution for licorice 0.0.7
File Size Uploaded Provenance Actions
licorice-0.0.7.tar.gz 94.5 kB Without provenance Details for licorice-0.0.7.tar.gz

Release files / licorice-0.0.7.tar.gz

Download URL licorice-0.0.7.tar.gz
Size 94.5 kB
Tags Source
SHA-256 checksum
How to use checksums
454ae2b5c309dfaa0670d4d270470d6f6871f0d5d2ee2dda1fae5524578fa8be
BLAKE2b-256 checksum
How to use checksums
ecd52dbb3b140fdde531a145e0c8e96da24d79278244242c10bf89110c424cda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.16

Security for licorice 0.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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