guzhezao/needle
多媒体与设计可交互的 3D 黑胶唱机展示,通过拖拽、换盘和变速探索四个章节,声音可选。
项目介绍
NEEDLE 是一个浏览器里的可交互黑胶唱机:唱机以分层方式搭建,并按触摸、拆解、纹路、回归四个滚动章节呈现。它面向想探索一个设计过的 3D 场景的人,而不是需要真正播放音乐的用户。
可以拖动唱片控制旋转,切换三张唱片,并在 33⅓ 和 45 RPM 之间变速。声音由程序合成,默认关闭,需从顶栏手动开启;它不是采样音乐,也不是专业唱机音频引擎。
模型、唱片标签和音频都由代码生成,不需要下载外部模型或图片。技术栈是 Three.js、Vite 和 JavaScript。
本地运行
环境要求:Node.js 20.19+ 或 22.12+,也支持 Node.js 24。
npm ci
npm run dev
然后打开 Vite 输出的本地开发地址。检查与构建命令如下:
npm test
npm run build
npm run preview
也可以直接打开在线站点体验四个章节。
使用约束
- 音频是程序化节拍,不是商业音乐采样,也不是专业唱机音频引擎。
- 声音每次默认关闭,需要手动开启。
- 项目目前未单独声明源码许可证;依赖声明汇总在 THIRD_PARTY_NOTICES.md。
HotRepo 点评
在 2026-11-09 的 JavaScript 新项目榜中,采样曲线显示 Star 在约 1.5 小时内从 101 增至 109,该统计窗口新增 8 Star,Fork 无变化。项目没有 GitHub 全语言日榜名次,也没有 Hacker News 讨论,因此这些数据只说明单日出现过短暂关注,不能据此判断趋势。更值得考察的是这个可交互场景的设计完成度以及可复现的本地构建,而不是音频保真度。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。