10. API - Screen

The screen interface is by far the most extensive and complex part of the pisense library, comprising several classes and numerous functions to handle representing the screen in a variety of conveniently manipulated formats, and generation of slick animations. The two most important elements are the main SenseScreen class itself, and the ScreenArray class which is used to represent the contents of the display.

10.1. SenseScreen

10.2. Animation functions

The following animation generator functions are used internally by the animation methods of SenseScreen. They are also provided as separate generator functions to permit users to build up complex sequences of animations, or to aid in generating other effects like interspersing frames with other sequences.

Each function is a generator function which yields an Image for each frame of the animation.

10.3. Easing functions

The easing functions are used with the animation functions above for their easing parameters.

An easing function must take a single integer parameter indicating the number of frames in the resulting animation. It must return a sequence of (or generator which yields) floating point values between 0.0 (which indicates the start of the animation) and 1.0 (which indicates the end of the animation). How fast the value moves from 0.0 to 1.0 dictates how fast the animation progresses from frame to frame.

Several typical easing functions are provided by the library, but you are free to use any function which complies which this interface. The default easing function is always linear:

10.4. Gamma tables

Two built-in gamma tables are provided which can be assigned to SenseScreen.gamma. However, you are free to use any compatible list of 32 values.


The default gamma table, which can be assigned directly to gamma. The default rises in a steady curve from 0 (off) to 31 (full brightness).


The “low light” gamma table, which can be assigned directly to gamma. The low light table rises in a steady curve from 0 (off) to 10.