rndrSBC
Ultra-lightweight, high-performance native E-Paper operating platform designed for Single-Board Computers.
Why rndrSBC?
- Chromium-Free: 0MB browser bloat. No headless Chrome, no WebKit, no X11.
- Insanely Fast: Renders vector dashboards in 35ms–60ms (vs. 10–15 seconds on Chrome).
- Zero Swap & Memory Thrashing: Runs in < 15MB RAM (ideal for Pi Zero W / Pi Zero 2W / Pi 3).
- Responsive Canvas Engine: Resolution-independent vector layout with fractional split boxes and auto-scaling typography.
- 100% Clean-Room Architecture: Fully standalone with modular display drivers and widget system.
Quick Start (Development / PC / Mac)
# 1. (Optional) Vendor the runtime deps for a fully-offline copy
python3 build_vendor_deps.py
# 2. Run single-pass render test
python3 main.py --once
Output is rendered directly to live_screen.png.
Run the web dashboard (any platform)
python3 main.py 8080 # foreground
python3 main.py --daemon 8080 # background, self-detaches (no sudo)
Raspberry Pi — no install.sh required
rndrSBC is relocatable: it anchors every path (config, previews, photo library) to its own folder, and it can load its Python deps straight from a vendored wheel bundle. So deployment is simply:
# Copy the project folder onto the Pi, then:
python3 main.py 8080
Optional, per-target dependency bundle (needs internet once, on the Pi):
python3 build_vendor_deps.py # detects this machine's arch
# or for a Raspberry Pi explicitly:
python3 build_vendor_deps.py --platform aarch64 # 64-bit OS / Pi 4+ / Pi 5
python3 build_vendor_deps.py --platform armv7l # 32-bit OS
The resulting vendor/deps/*.whl files let the platform run fully offline
with zero pip installs. Skip this and rndrSBC will fall back to your
system's packages (or create a private .venv on first run).
If you want rndrSBC to start at boot (optional), use the relocatable unit:
# edit the two placeholders in rndrSBC.service, then:
sudo cp rndrSBC.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now rndrSBC
A legacy
install.shis still included for compatibility, but it is no longer required.
Recent Additions (this build)
Physical Buttons (GPIO) — core/buttons.py
- Wire three buttons to GPIO 17 / 27 / 22 (to GND), enabled in the dashboard.
- NEXT cycles widgets, PREV goes back, TOGGLE-QUIET pauses/restarts refreshes.
- Falls back gracefully when RPi.GPIO is absent (simulator / laptop / CI) — buttons are auto-disabled.
CalDAV + iCal Calendar — widgets/calendar/widget.py
- Calendar widget now accepts a
caldavconfig (URL + basic-auth user/password) in addition to publiciCalfeed URLs. - Fetches via HTTPS
REPORTquery, parses with the native ICS parser (no extra deps); per-date event-dot markers on the month grid.
Localization (i18n) — core/i18n.py
- New
languageglobal setting (English, Español, Français, Deutsch, Italiano, Português, Nederlands, Türkçe). - Localizes the calendar weekday headers + agenda labels and the weather "Updated / Feels Like / Wind / Humidity" labels.
- Add languages in
core/i18n.pywith three dicts (MONTHS,WEEKDAYS,LABELS).
Reflect-mode refresh — core/transitions.py + scheduler
refresh_mode: "auto"(default) uses dirty-rect partial refresh when the panel supports it, with a full-refresh recharge every 20 partials.refresh_mode: "full"opt-out forces full-frame always (dashboard Display Transitions card).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rndrsbc-0.2.0.tar.gz.
File metadata
- Download URL: rndrsbc-0.2.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
945e434d73992bdf4b7b576a94e7f00f9cade0ee2fd67566cccf93700376a4a2
|
|
| MD5 |
96234ea8efbf8d0b621b168086baed88
|
|
| BLAKE2b-256 |
6847378f24147fb365de0ec818b3e041e6782cb1dc39be72aca8ecbdfd231888
|
Provenance
The following attestation bundles were made for rndrsbc-0.2.0.tar.gz:
Publisher:
publish.yml on thetaylormcrae/rndrsbc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rndrsbc-0.2.0.tar.gz -
Subject digest:
945e434d73992bdf4b7b576a94e7f00f9cade0ee2fd67566cccf93700376a4a2 - Sigstore transparency entry: 2632503036
- Sigstore integration time:
-
Permalink:
thetaylormcrae/rndrsbc@dfeada8e7fdfa78dd4a38744d0bbc78a0a70043f -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/thetaylormcrae
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dfeada8e7fdfa78dd4a38744d0bbc78a0a70043f -
Trigger Event:
push
-
Statement type:
File details
Details for the file rndrsbc-0.2.0-py3-none-any.whl.
File metadata
- Download URL: rndrsbc-0.2.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a070132203d5407b9cda28d4bec7a5c133ce9a03ca8bde88c28c6115225794b
|
|
| MD5 |
2a918363f47a9ad2367441f4cde884ee
|
|
| BLAKE2b-256 |
f8db2058e3985821f2dd31d0be97ed4c6a101617809d852d331cddc5b272a580
|
Provenance
The following attestation bundles were made for rndrsbc-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on thetaylormcrae/rndrsbc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rndrsbc-0.2.0-py3-none-any.whl -
Subject digest:
1a070132203d5407b9cda28d4bec7a5c133ce9a03ca8bde88c28c6115225794b - Sigstore transparency entry: 2632503127
- Sigstore integration time:
-
Permalink:
thetaylormcrae/rndrsbc@dfeada8e7fdfa78dd4a38744d0bbc78a0a70043f -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/thetaylormcrae
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dfeada8e7fdfa78dd4a38744d0bbc78a0a70043f -
Trigger Event:
push
-
Statement type: