Skip to main content

Framework 16 LED Matrix Modules

I remember how surprised I was at the lack of tools for the LED matrix 16. I had gotten them knowing they were programmable and I could do cool things, yet no one yet has made a tool for them to do much (at least to my research).

This should allow programming novices to run cool simulations of their own on the Framework 16 LED matrix besides the simple boot animations.

The core/ directory defines the core API of the tool, such as creating a simpler way to interact with the defined LED functions, the path of the LEDs, sending of both greyscale and regular payloads, clearing the matricies, etc.

This suite allows you to run a variety of visual experiments:

  • Anagrams & Text: Anagrams of random words gliding across the screen or custom text rendered vertically and horizontally.
  • Cellular Automata: Complex simulations including Conway’s Game of Life, the Biham-Middleton-Levine (BML) traffic model, and Hardy-Pomeau-Pazzis (HPP) lattice gas collisions.
  • Mathematical Visualizations: Plotting math functions like sin, cos, exp, and tanh directly onto the matrix.
  • Hybrid Simulations: Seeding Game of Life or HPP simulations using math function graphs or anagrammed text as the initial starting states.
  • Noise & Hardware Effects: Generating hardware-level greyscale noise and controlling internal hardware animations.

Global Options

  • -v, --verbose: Enable detailed verbose logging for all commands.

Commands & Sub-arguments

background (aliases: bg)

Run the background runner (screensaver mode).


led

  • version: Get firmware version from modules.
  • clear: Clear both displays (all LEDs OFF).
  • fill:
    • --hold <float>: Seconds to hold the filled screen (default: 0).
  • start-anim: Start hardware animation (e.g., fades).
  • stop-anim: Stop hardware animation.
  • reset: Clear display and stop animation.
  • ports: Show available serial ports (for debugging).

text

  • vertical <text>: Render text vertically.
    • <text>: The text string to render.
    • --font-size <int>: Force a specific font size (default: auto).
    • --which <choice>: Which module: left, right, both (default: both).
    • --row-offset <int>: Row offset from the top (default: 0).
    • --hold <float>: Seconds to hold the text on screen (default: 0).
  • horizontal <text>: Render text horizontally.
    • <text>: The text string to render.
    • --font-size <int>: Force a specific font size (default: auto).
    • --which <choice>: Which module: left, right, both (default: both).
    • --x-offset <int>: Horizontal scroll offset (default: 0).
    • --y-offset <int>: Vertical position offset (default: centered).
    • --hold <float>: Seconds to hold the text on screen (default: 0).

anagram

  • draw <word>: Find and draw anagrams for a word.
    • <word>: The word to find anagrams for.
    • --which <choice>: Which module: left, right, both (default: both).
    • --no-animate: Disable animation between words.

sim

  • bml: Run Biham-Middleton-Levine traffic model (cars moving on a grid).
    • --density <float>: Car density 0.0 to 1.0 (default: 0.35).
    • --steps <int>: Total half-steps to simulate (default: 500).
    • --delay <float>: Delay in seconds between frames (default: 0.05).
  • bml-local: Run BML traffic model locally in a Matplotlib window.
    • --density <float>: Particle density 0.0 to 1.0 (default: 0.5).
    • --steps <int>: Simulation steps (default: 500).
    • --density <float>: Car density 0.0 to 1.0 (default: 0.35).
    • --steps <int>: Total half-steps to simulate (default: 500).
  • hpp: Run Hardy-Pomeau-Pazzis lattice gas (particle collision simulation).
    • --density <float>: Particle density 0.0 to 1.0 (default: 0.5).
    • --steps <int>: Simulation steps (default: 500).
    • --delay <float>: Delay in seconds between frames (default: 0.05).
    • --which <choice>: Which module: left, right, both (default: both).
  • hpp-math: Run HPP simulation seeded with math function graphs as the initial state.
    • --density <float>: Particle density 0.0 to 1.0 (default: 0.3).
    • --steps <int>: Simulation steps per graph (default: 500).
    • --delay <float>: Delay in seconds between frames (default: 0.05).
    • --graphs <int>: Number of math graphs to run (default: 5).
  • outer: Run generic Outer-Totalistic CA using Birth/Survival rules.
    • --b-rule <list>: Birth rule, comma-separated (e.g., '3,6').
    • --s-rule <list>: Survival rule, comma-separated (e.g., '2,3').
    • --steps <int>: Simulation steps (default: 200).
    • --delay <float>: Delay in seconds between frames (default: 0.1).
    • --oscil-max <int>: Steps to detect oscillation (default: 20).
    • --still-max <int>: Steps to detect still life (default: 10).
    • --empty-max <int>: Steps to detect empty board (default: 5).
  • gof: Run Conway's Game of Life (B3/S23).
    • --board <choice>: Initial state: random or named pattern (glider, acorn, etc.).
    • --steps <int>: Simulation steps (default: 200).
    • --delay <float>: Delay in seconds between frames (default: 0.1).
    • --which <choice>: Which module: left, right, both (default: both).
  • inner: Run Inner-Totalistic CA (Wolfram NKS style).
    • <rule>: The rule number (integer, e.g., 777).
    • --steps <int>: Simulation steps (default: 200).
    • --delay <float>: Delay in seconds between frames (default: 0.1).
  • random-grey: Display hardware-level greyscale noise.
    • --duration <int>: Duration in seconds (default: 10).
    • --no-animate: Disable hardware animation (for pure noise).
  • anagram-gof: Finds anagrams for random words and uses the text as the Game of Life starting state.
    • --words <int>: Number of random words to use (default: 4).
    • --steps <int>: GoL steps per anagram (default: 100).
    • --delay <float>: Delay in seconds between GoL frames (default: 0.1).
    • --which <choice>: Which module: left, right, both (default: both).
  • anagram-draw: Sequentially find and draw anagrams for random words.
    • --words <int>: Number of random words to use (default: 3).
    • --which <choice>: Which module: left, right, both (default: both).
  • math-gof: Plot math graphs and use them as the Game of Life starting state.
    • --steps <int>: GoL steps per graph (default: 100).
    • --delay <float>: Delay in seconds between GoL frames (default: 0.1).
  • math-graphs: Show a cycling sequence of random math graphs.
    • --num <int>: Number of graphs to show (default: 5).
    • --delay <float>: Delay in seconds between graphs (default: 2.0).
    • --which <choice>: Which module: left, right, both (default: both).
    • --hold <float>: Seconds to hold the final graph on screen (default: 0).

math

  • plot <function>: Plot a function locally and on the matrix.
    • <function>: Predefined function: sin, cos, tan, exp, log, tanh, etc.
    • --points <int>: Number of points to plot (default: 500).

Testing

  • frameworkled --test: Run a built-in test suite that cycles through various commands to verify hardware and software functionality.

Metadata

Release files for Framework-LED-Matrix 0.1.12

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

Source distribution (sdist)

Source distribution for Framework-LED-Matrix 0.1.12
File Size Uploaded
framework_led_matrix-0.1.12.tar.gz 46.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Framework-LED-Matrix 0.1.12
File Interpreter ABI Platform
framework_led_matrix-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 97.1 kB

Release files / framework_led_matrix-0.1.12.tar.gz

Download URL framework_led_matrix-0.1.12.tar.gz
Size 46.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36ea36640b5be99c4489f3c06004eca83388ac42b4c514b46c1ee66736bab6bd
BLAKE2b-256 checksum
How to use checksums
2a5eee0ab40e78f932e463a9bfa8081ee75970b46edd5c4ddaed980414376909
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 31, 2026.

Transparency log

Release files / framework_led_matrix-0.1.12-py3-none-any.whl

Download URL framework_led_matrix-0.1.12-py3-none-any.whl
Size 50.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b524ccfc356465952a5fc6a21d988e793590e187e64f1cb13e785d901799fc5b
BLAKE2b-256 checksum
How to use checksums
bbec9f6f3027706c7c948bc721e383bc897eea9b52b48972244715e4a5eb9723
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.12 This release

2 release files

0.1.11

2 release files

0.1.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