Overview
Pipeline
currentsensation is structured as five small modules:
currentsensation.constants— pin map, durations, palette.currentsensation.hardware— GPIO controller with mock backend.currentsensation.capture— video (ffmpeg) and image (pygame).currentsensation.scheduling— pure-Python timeline builder.currentsensation.experiment— orchestrator wiring it together.
The CLI lives in currentsensation.cli.
Off-Pi development
The package is designed to import on any Linux/macOS/Windows machine.
RPi.GPIO and pygame are optional dependencies imported lazily;
when they are unavailable, the MockBackend records pin
transitions in memory so that scheduling logic can be unit-tested
without hardware.
Use --mock-gpio on the CLI or pass force_mock=True to
make_default_controller() to force the mock backend.