Proprsal: Add offline Python CLI decoder for Cimbar Frames
Feature Request: Offline Python CLI Decoder
Hi team,
I'm currently studying Cimbar's fascinating approach to visual data transfer and would love to contribute while learning. One area I believe could be valuable is the development of a Python-based CLI decoder that works offline.
What It Would Do
- Accept a folder of PNG frames (or optionally a video file)
- Decode tile colors back into binary data
- Reconstruct the original message/file
- Print decoded output or save it to disk
Why This Helps
- Makes testing/debugging easier without relying on live camera capture
- Expands accessibility to users who prefer CLI workflows
- Serves as a learning reference for how Cimbar encoding works under the hood
- Could be used for scripting or automation in secure/offline environments
Why I Want to Help
I’m working on a similar prototype using Python and OpenCV, and I’d love to align my learning journey with contributing to this project. If this sounds like a useful addition, I’d be happy to build a basic version and iterate on your feedback.
Thanks for creating such an inspiring and technically rich project!
Best regards,
Ommkar Ankit ,
https://github.com/ohmic-guy
You may want to take a look at both the C++ cli tools here: https://github.com/sz3/libcimbar/tree/master/src/exe and the prototype project, which is a python cli: https://github.com/sz3/cimbar
Some of what you're suggesting is supported already, but some is not and may be of interest. Notably:
- nothing currently accepts a video (
cimbar_recvkind of does if you ask it very nicely, but I wouldn't call it "usable") - nothing exposes the underlying binary data all that nicely (there are flags in
cimbarand the python project to do it, but again -- it's not user friendly) - the python implementation is very slow, and also a bit of a mess coding wise (since it's the experiment/prototype code base).
- the C++ implementation is fast, and possibly will have C bindings added at some point to give languages like python (and javascript!) access to a faster implementation.
But if you want to try your own hand at a python cli (perhaps one that is faster and cross-platform...), go for it. 🙂