Swish is an AI gesture recognition lock. Not the bad kinda AI, no don't go- wait! Its dataset is sourced from Google Mediapipe (the company, not Google search). It doesn't generate any images or anything like that either.
So anyway, it allows you to open a lock by showing your hands like this 👍 👎 ✌️ or like this ✊ 👍 ✌️, you enter a password with your hands (literally) and a thing opens! There's also a whole hardware part for it, but the app itself is fun enough lol.
You have to give the app/demo camera permissions!
It is of course not sent anywhere, the source code is public.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
This project actually took me so long that between photos 1 and 2 in the devlogs I got a new chair and new bed. I hope you like, this was genuinely difficult, but, the thing is, next time I'll do it twice as fast, the time after that even faster and after that, you get the point. Reach for the stars.
I also submitted and presented the project on a competition. It was an international one, although it was mostly just all-Ukrainian (yes I live in Ukraine, hello), it was still big and there were hundreds of participants if not thousands. And I got second place in the AI project category, although there were only 4 projects to even pass into finals, there definitely weren't a lot of submissions there. And they didn't even assign the first place to anyone. The reward was a 2500 UAH ($60) gift card for a tech store which turned into a controller, power bank, and a pillow (yes, I found a pillow there). That was actually really generous of them, and I'm glad I participated, even if I had to write a lot of bureaucracy for it.
To transfer data to the physical device I used, Bluetooth Low Energy - Bluetooth's slightly superior but still almost just as bad as the entire protocol, little brother meant for short burst of info, like switching a lock on or off for example. The rest was wiring it to a ESP32, some LED's, and a cheap wood box with 3D printed bits.
The software part of this was kind of pain, because a library for properly using BLE with Tauri only appeared literally a month before I started developing my app, it's very fresh. I initially just used Btleplug, but that apparently didn't work on mobile, and I wanted to make a mobile app as well, luckily our boi @MnlPhlp on Github recently made a library for just that, it's kind of janky though, but after a few or more than a few days of trial and error it did the trick.
The app is made in Vue, because Vue is nice.
Tauri makes it into a desktop and Android app.
The AI part is made using Google Mediapipe. They had a similar example and a gesture-recognizer AI, so I plugged it into my app.
The hardest parts were the AI, the UI, and making Bluetooth Low Energy work. That's to say, everything was the hard part. Tauri is great, it's the simplest and simultaneously most mature (since it has the years of web standards and development behind it) ecosystem to make an app. But it's also very new, unlike for Electron where every path had been trampled over, for Tauri you need to figure stuff out, which is particularly annoying for Android, although that's barely in alpha. It was quite difficult, but it was a lot of fun (ish). Then I had to spend just as much time as I spent on the project writing very formal documentation and reports for it because of college bureaucracy.
This project existed as an idea since November 2024, it was a college yearly final project. And I got around to making it this Spring (that's why there's so little time on hackatime lol).
You can try out the demo right now! 👍