frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Air Theremin – a browser theremin you play by waving at your webcam

https://theremin.bizibah.com/
29•gurov•1h ago

Comments

gurov•1h ago
The camera watches your palms. Move them apart and it gets louder. Bring them together and it goes quiet. Raise them both and the note goes up. There is a sound wave strung between your hands, and it slackens as they close.

Two palms give you four numbers, and one of them is best left alone. Their mean height is the pitch. The distance between them is the volume. The angle of the line joining them sat unused for months and is now the vibrato: see-saw your hands and the note begins to sing. The fourth is where the pair sits horizontally, and it stays free on purpose, so that nobody is pinned to one spot in front of the camera. Their apparent size is a fifth thing and not a position at all; it moves a lowpass and a reverb send, so leaning back makes the room bigger. The angle is independent of the distance, so the vibrato leaves the volume alone, and the string drawn between the hands is already a picture of it.

It began as a phone toy — tilt left and right for volume, forward and back for pitch. The camera came later and turned out to be the better instrument. The phone mode is still there.

No video leaves your machine. The hand tracking is MediaPipe's Hand Landmarker compiled to WASM, running on your own GPU. The tracker and its model are fetched once from a CDN, about 8 MB, and after that you can unplug the network and it still plays.

Most of the work was not the sound. It was the hand that disappears. MediaPipe finds a palm by its plane, so it loses one when you turn your wrist edge-on, or when the room is dark and the webcam falls to fifteen frames a second and a moving hand becomes a smear. At first I held the note for a second after a hand vanished. People said it lagged. I cut it to half a second. People said the sound kept dropping out. Both were right. Now the hold depends on where the hand was last seen: near the edge of the frame a person has genuinely taken their hand away, so 400 ms; deep in frame nobody teleports and the detector merely blinked, so a full second, and no one hears the gap.

The other stubborn thing was the bass. A phone speaker produces nothing below roughly 150 Hz, and raising the gain there does nothing at all — I tried ten decibels and heard silence. So the bottom octave is split off, saturated gently to breed harmonics, and its fundamental is then filtered away. The ear reconstructs a pitch it never heard.

That trick then caused a bug I misread for a week. A tester said the pitch moved in steps in the phone mode, worst in the bass, and guessed it was a frame rate problem. It was not. The phone reports its tilt angle quantised to something close to a whole degree, and I had packed six octaves into eighty degrees of tilt — so one tick of the sensor was most of a semitone. It was audible in the bass specifically because of the exciter: at 70 Hz the ear resolves pitch poorly, but the exciter re-voices the note through harmonics at two and three hundred hertz, which is exactly where the ear resolves cents best. So the fix was not the sound and not the frame rate. It was a narrower range, a wider sweep, and reading the sensor at frame rate instead of once per event.

One HTML file, no build step, MIT: https://github.com/gurov/theremin

beezlewax•15m ago
One AI slop comment.
Retr0id•14m ago
Cool project but did you really need to use an LLM for this comment?
ChaitanyaSai•4m ago
Nice work. "No video leaves your machine." Either Claude specifically or AI models in general use this phrasing now and No teeth are left un-gnashed as a result. Uggh I wonder why it's so aggravating.
unified101•44m ago
Nice experiment. Looks like the camera feed processing fps is sufficient for some creativity here.
jojogeo•28m ago
I love this, but for some reason I can't find any way to turn the camera on/it only works with the mouse. Awesome toy though.
bigblind•21m ago
Quite fun to play with.Nice work!
bookofjoe•15m ago
Since a physical theremin is played by non-contact gestures and motions, perhaps your creation might be more aptly termed a "Virtual theremin."
sd9•12m ago
I’m going to get pwned one of these days, considering my threshold for giving a random website access to my webcam is apparently mild curiosity and entertainment for 30s.
booi•11m ago
Say what you want about AI but it makes it possible to build a whole slew of awesome stuff
phyzix5761•8m ago
AI is great. AI is a huge field encompassing many things that are not LLMs.
ben_w•4m ago
Bah, I got part way through making this as an iPhone app and this person beat me to it :P

Seriously though: nicely done, UX here is better than what I came up with.

fosron•3m ago
Really cool. I remember one local musician here in Lithuania used a theremin like 20 years ago and i was amazed at the interactivity and the alien sound of it. Now sitting in front of my computer doing the same that many years later brings memories back!

OpenLogi

https://openlogi.org/en
830•amatheus•9h ago•233 comments

Air Theremin – a browser theremin you play by waving at your webcam

https://theremin.bizibah.com/
32•gurov•1h ago•14 comments

Cerebras CS-4

https://www.cerebras.ai/cs4
307•sunils34•11h ago•205 comments

The Two Factions of C++ (2024)

https://herecomesthemoon.net/2024/11/two-factions-of-cpp/
42•signa11•3d ago•32 comments

Being ambitious and being a dad

https://nicholascharriere.com/blog/being-ambitious-and-being-a-dad/
560•nichochar•2d ago•371 comments

Rings forged from meteorites may have been fashionable among ancient Greek elite

https://phys.org/news/2026-08-forged-meteorites-fashionable-ancient-greek.html
13•pseudolus•4d ago•3 comments

Palomar: A registry of Lean verified mathematics

https://terrytao.wordpress.com/2026/08/18/palomar-a-registry-of-lean-verified-mathematics/
114•matt_d•8h ago•19 comments

Supersonic Trebuchet [video]

https://www.youtube.com/watch?v=Co57SfcT-h0
126•CharlesW•4d ago•53 comments

A 3D fruit fly on macOS desktop powered by the real FlyWire connectome

https://github.com/DenisSergeevitch/desktop-fly
297•phoenix120•13h ago•110 comments

λλ: A Programming Language for Silicon Photonics

https://dl.acm.org/doi/10.1145/3789240.3829151
34•matt_d•5h ago•6 comments

How does IKEA come up with names for its products?

https://www.ikea.com/se/en/customer-service/knowledge/articles/6f564c4d-2ccc-46de-b643-545a3948dc...
365•NaOH•17h ago•254 comments

Scientists stunned by children's lung recovery in ultra low emission zone

https://www.bbc.com/news/articles/c1l1r1zne1ro
287•dabinat•10h ago•228 comments

Activation Energy is a good model for a lot of things

https://homosabiens.substack.com/p/activation-energy-is-a-good-model
20•surprisetalk•4d ago•2 comments

Solo – a .so loader for static Linux binaries

https://github.com/pg83/solo
148•zX41ZdbW•11h ago•170 comments

The Vietnam Binh Chau (Chau Tan) Late Tang Wreck

https://www.koh-antique.com/client/tangwreck/tangwreck.html
43•teleforce•9h ago•3 comments

The Mojo language (by Modular, now Qualcomm) is now open-source

https://www.modular.com/blog/modcon-announcements
69•flaburgan•3h ago•25 comments

Show HN: Automatically detect and patch walking-dead states in Sierra games

https://github.com/katiahayati/lucasartsifier/
82•wkfauna•9h ago•27 comments

Finger: the 1971 social network that never died

https://en.andros.dev/blog/54572bc7/finger-the-1971-social-network-that-never-died/
228•andros•1d ago•70 comments

A 25-year-old video patent just expired, ending a legal headache for Linux

https://www.xda-developers.com/25-year-old-brazilian-video-patent-expired-legal-headache-linux/
211•theanonymousone•3d ago•88 comments

Turbovec – Google's TurboQuant for vector search in Rust

https://github.com/RyanCodrai/turbovec
255•fittingopposite•17h ago•32 comments

Claude writing a macOS driver for my obscure HP printer built only for Windows

https://twitter.com/kuberwastaken/status/2089377982536388964
217•porridgeraisin•23h ago•167 comments

The Amazon tax

https://seths.blog/2026/08/the-amazon-tax/
1208•herbertl•22h ago•635 comments

And then the men with guns tell you to do it anyway

https://shkspr.mobi/blog/2026/08/and-then-the-men-with-guns-tell-you-to-do-it-anyway/
332•_djo_•18h ago•224 comments

Where Human Sleep Went Wrong

https://nautil.us/where-human-sleep-went-wrong-1283797
77•XzetaU8•3h ago•60 comments

Meta's blockbuster trial draws parallels to big tobacco

https://www.economist.com/business/2026/08/18/metas-blockbuster-trial-draws-parallels-to-big-tobacco
248•newsomix9xl•9h ago•198 comments

CUDA Shared Memory Swizzling

https://leimao.github.io/blog/CUDA-Shared-Memory-Swizzling/
54•jxmorris12•5d ago•2 comments

Looking for Missed Alarm Bugs in a Formal Verification Tool

https://blog.regehr.org/archives/2124
17•luu•5d ago•0 comments

AI usage patterns in software teams

https://linear.app/data
150•giuliomagnifico•13h ago•97 comments

Apple announces changes for apps in the European Union

https://www.apple.com/newsroom/2026/08/apple-announces-changes-for-apps-in-the-european-union/
212•newusertoday•19h ago•302 comments

Show HN: Interactive, animated architecture of any HuggingFace models

https://modelmap.cc
87•lizhaoliu•11h ago•9 comments