guzhezao/needle
Media & DesignAn interactive 3D vinyl turntable study with draggable records, two speeds and procedural audio.
Overview
NEEDLE is a browser-based interactive object: a vinyl turntable built in layers and presented in four scroll-driven chapters — Touch, Layers, Groove and Return. It is aimed at people who want to explore a designed 3D scene rather than use a working audio player.
You can drag the record to control rotation, switch between three records, and choose 33⅓ or 45 RPM. Optional sound is generated procedurally, not sampled music, and is off until you enable it from the top bar.
Models, record labels and audio are generated in code, so the scene needs no external model or image downloads. The stack is Three.js, Vite and JavaScript.
Run locally
Requirements: Node.js 20.19+ or 22.12+ (Node.js 24 is also supported).
npm ci
npm run dev
Then open the local dev server URL that Vite prints. To check and build:
npm test
npm run build
npm run preview
You can also open the live site to try the four chapters directly.
Constraints
- The audio is a synthesized procedural rhythm, not a professional turntable audio engine or licensed music.
- Sound must be enabled manually each time; it starts off.
- No separate source-code license is currently declared; dependency notices are collected in THIRD_PARTY_NOTICES.md.
HotRepo's take
Recorded on the JavaScript new-project list on 2026-11-09, the repository went from 101 to 109 stars over roughly 1.5 hours in the sampled curve, with 8 stars gained in that window and no forks. There is no GitHub daily-rank record and no Hacker News discussion, so the data only shows a short burst of attention around one day, not a trend. The value to assess is the crafted interactive scene and its reproducible local build, not audio fidelity.
Written by AI from the project's README, updated . The project's own docs are the source of truth.