竹知了(zhuzhiliao)是那种小时候路边摊上几块钱的玩意儿——一根小竹签,一个竹筒,一头系着涂了松香的线。甩起来,竹膜震动,发出“哇——哇”的蝉鸣声。实物越来越难找了,有开发者把它做成了 Web 玩具,放在 zhuzhiliao.imsai.cc 上,并在 GitHub 开源。

玩法很简单:按住屏幕画圈,或者直接甩手机。页面会实时显示转速(圈/秒),声音来自真实竹知了录音的 1.72 秒采样,无缝循环。音频解码失败时,还有一套合成兜底——锯齿波振荡器模拟脉冲,并联带通共振峰模拟竹膜和筒腔共鸣。
技术细节上,物理引擎是绳系质点模型:重力、弹性绳(只拉不推)、空气阻力,1/240 秒定步长积分。音效初始化在首次触摸/点击时触发,iOS 的 interrupted 状态和旧内核的 roundRect 都做了兜底。8 秒无操作自动挂起音频线程省电。

后端是 Cloudflare Worker + Durable Object + SQLite,WebSocket 用了 Hibernation API,页面底部显示实时全球计数:在线人数、唯一访客、总访问量、全球“哇”数和你的个人“哇”数。SEO 也做得很到位——OG/Twitter 卡片、JSON-LD、sitemap.xml 一应俱全。
交互模式有三种:手动甩、自动甩(点击或空格键)、甩手机(devicemotion 重力感应,非 HTTPS 环境自动隐藏)。3D 小蝉查看器让你能从不同角度端详这只竹蝉。PWA 支持,可以装进手机桌面。
这个项目没有任何功利目的。作者说得很清楚:竹知了是“小时候路边摊上几块钱的玩意儿”,实物越来越难找,这个 Web 版希望“让它继续能被随手甩响”。是一个纯粹因为喜欢而做的项目。
参考来源: