尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A circular media player interface for a 360 × 360 round display, driven by a rotary encoder and touch gestures. The intended target is an ESP32 running LVGL.
This repo is reference only. It records what the finished product should look like and how it should behave, so the real build can be checked against it. It is deliberately standalone: the firmware build lives elsewhere and doesn't link to or depend on this repo.
Live demo: https://sygad.github.io/rotary-dial-media-prototype/
Or open index.html locally in a browser. There's no build step and nothing to install.
open index.html
If your browser blocks local files, serve the folder instead:
python3 -m http.server 8000
Then go to http://localhost:8000.
index.html)The round screen in the middle is the prototype, unchanged. The side panel is there to help you explore it.
| Panel | What it does |
|---|---|
| Screen | Jump straight to any of the six screens. Each one shows its Figma frame number. |
| Rotary encoder | A virtual knob that stands in for the physical encoder, which is a separate input from the touch panel. Its pointer always sits where the arc on screen ends, in the arc's colour. Drag it round, scroll on it, or press [ / ]. |
| Touch gestures | Swipe and tap buttons, plus the on-screen taps (EQ zones, back button). |
| State | Live readout of the screen, album, track, playback, volume and EQ. |
| Input | Keyboard | Mouse / touch on the screen |
|---|---|---|
| Tap | Space / Enter | Click |
| Swipe | Arrow keys | Drag |
| Rotary encoder | [ / ] (or - / =) | Drag the outer ring in a circle, or use the scroll wheel |
| Tap an EQ zone | 1 treble · 2 bass · 3 subs | Click the icon |
| Skip back / forward 5s (while playing) | , / . | Click ◀◀ or ▶▶ on the transport bar |
| EQ back button | Esc | Click the button |
prototype/index.html)This is the file exactly as it came out of the design sessions: a single file with the
album art embedded. It's the behavioural authority. The playground copies its engine
and only adds things alongside it (the panel, and loading the art from
assets/art/). If the two ever disagree, the prototype wins.
Clock ─tap─▶ Menu ─tap─▶ Album browse ─tap─▶ Now Playing ─swipe up─▶ EQ overview ─tap zone─▶ EQ focus
◀─swipe down─┘ ◀─swipe down─┘ ◀──────── swipe down ─────────┘
| # | Screen | What you can do |
|---|---|---|
| 01 | Clock | Tap to wake |
| 02 | Menu | Drag the list behind a fixed highlight; tap to choose |
| 03 | Album browse | Swipe left / right between albums; tap to open |
| 04 / 05 | Now Playing | Tap to play; while playing, ❚❚ pauses and ◀◀ / ▶▶ skip 5s; swipe left / right to change track; the dial sets volume |
| 06 | EQ overview | Tap treble, bass or subs |
| 13–15 | EQ focus | The dial adjusts the chosen parameter; back returns to the overview |
The full rules are in docs/SPEC.md.
| File | Contents |
|---|---|
docs/SPEC.md | Screen-by-screen flow and interaction rules |
docs/DESIGN-TOKENS.md | Exact coordinates, colours and type from Figma |
docs/TIMINGS.md | Every animation duration and gesture threshold |
docs/FIGMA.md | Source file, frame node IDs, how to re-export |
docs/OPEN-QUESTIONS.md | Gaps the design doesn't answer yet |
CLAUDE.md | Ground rules for working from this reference |
index.html playground: the prototype plus an exploration panel
prototype/index.html original prototype, self-contained (the authority)
assets/art/ album art used by the playground
docs/ spec, design tokens, timings, Figma map, open questions
Figma file jAaJDrPIrLTzMMPcqeqG4U, page "Prototype - Structured". Figma is the source of
truth for anything visual. Re-export values rather than adjusting them by eye.
The five covers are real album artwork, used only to show the interface with real titles of different lengths. All rights belong to the artists and labels. This is a non-commercial design demo.