Flipbook – Animated QR Codes
github.comCool project! We have a pretty widespread use of animated qr-codes in Sweden where we use them to with an authentication app called BankID*
*https://www.bankid.com/utvecklare/guider/teknisk-integration...
Nice! I had seen these in Netflix or some TV app for a streaming service that allows you to authenticate using an animated QR code. I had the idea for Flipbook probably a decade ago but never did anything about it until now. I haven't seen another OSS project that does this so figured I'd give it a shot.
This would be cool – the problem, 99.999% (source: I made it up) of people just know to open the camera app to scan a QR code. So if this is displayed publicly, nobody would know how to scan it without going to another website anyway, which I feel defeats the purpose. Very interesting implementation though!
That's absolutely correct. The good news is that Flipbook is intended to be more of a standard than a solution. The solution (the writer/reader libraries) are more intended as a specific implementation of a standard that could easily be adapted into native and non-native camera and scanning apps.
So yeah - your point is completely valid, but adoption has to start somewhere. Thanks for checking out the project!
If you're serious about making this a standard, you should think about making it a proposal to be an ISO standard, much like how QR codes are.
I definitely will at some point. I haven't seen an attempt at a standard here. For now, I'd like to solidify the current libraries and prototype them with real users. Based on what I learn from there, and ISO proposal could be in the future. :)
Flipbook is a superset of QR codes that allows for infinitely sized payloads. Download apps, rich-text, and more without the need for an internet connection.
Looks really cool! This could catch on for restaurant menu's for offline QR-code access
Thanks @gabrielstaveira - that's a really cool idea! Would be really easy to add this to a LED matrix Arduino board. Something like this: https://www.adafruit.com/category/327
That way you could always keep the menu up to date, and actually have the ability to order food directly from an app that runs locally on the device. That app, the menu, and all related functionality could be completely self-contained in the QR code itself.
This is cool. My first question is what is the transfer rate? Like in bits per second.
I'm in the early days of measuring performance, and it should improve dramatically with using a lower-level port, like in Rust. To me, that library is the long-term key to adoption as it allows the library to be embedded within native camera applications.
For the current Typescript version, I'm getting the following on Node 20 with my M1 Max MBP (64g RAM):
- Writer: 100 characters - 6 ops/sec, 1k characters - 1 op/sec - Reader: 100 characters - 10 ops/sec, 1k characters - 3 ops/sec
Again, those are preliminary and entire Node-based figures on a fairly-recent MBP. I'd expect significant performance improvements with both a Rust port as well as running the existing Typescript library through the Bun runtime.
I've now made improvements (to be released shortly) that will improve performance by
- Writer: 100 characters - 20 ops/sec, 1k characters - 11 op/sec - Reader: 100 characters - 15 ops/sec, 1k characters - 6 ops/sec
That's a 233%-1,100% increase in write speed, and a 50%-100% increase in read speed.
I'm also adding support for export to both canvas and GIF, as well as an estimated package bundle decrease of more than 300%.
that's pretty cool, hope more people will use it!
Thanks XdekHckr! Do you have a particular use-case in mind?