尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Music → φ painting. A Progressive Web App that turns songs, MIDI, audio, PDFs, and images into a colored chord painting laid out on the golden-ratio grid.
A standalone, installable web app. Same code that ran as a Claude artifact, but unwrapped from the sandbox — so file downloads, the iOS share sheet, the clipboard, and Add to Home Screen all work natively.
Built with Vite + React + Tone.js + vite-plugin-pwa. No backend. Everything runs in the browser.
You'll need Node.js 18+ installed.
npm install
npm run dev
Open http://localhost:5173. Hot-reload on edits.
npm run build
Output lands in dist/. That folder is a complete static site — drop it on any static host.
To preview the production build locally:
npm run preview
It serves on http://localhost:4173.
Once deployed (see below), open the deployed URL in Safari on your iPhone, then:
A Paintiano icon appears on your home screen. Tap it — it opens full-screen, no Safari chrome, behaves like a native app. Works offline once cached.
The 🖨 PRINT button will use real iOS share sheet and real file system access — no clipboard workarounds needed.
npm run build. Publish directory: dist# Build
npm run build
# Push dist/ to a gh-pages branch (one-time install)
npm install -g gh-pages
npx gh-pages -d dist
Then on GitHub repo Settings → Pages → source: gh-pages branch.
Cloudflare Pages, Firebase Hosting, S3, your own server with nginx — anything that serves static files works. Just upload the contents of dist/.
Important: the host must serve over HTTPS for the PWA to install and for the clipboard / share APIs to work. All four options above provide HTTPS automatically.
paintiano-pwa/
├── package.json # deps + scripts
├── vite.config.js # Vite + PWA plugin config
├── index.html # entry HTML
├── public/
│ ├── favicon.svg # SVG favicon
│ ├── icon-192.png # PWA icon
│ ├── icon-512.png # PWA icon
│ └── icon-maskable.png # Android adaptive icon
└── src/
├── main.jsx # React entry
└── Paintiano.jsx # the whole app (BUILD #70)
Everything is in src/Paintiano.jsx — about 560 KB of code + embedded Liebestraum MIDI/MP3 samples + Scream image sample. That's the entire app.
public/icon-*.png, public/favicon.svg — replace with your ownvite.config.js → manifest section — name, short_name, theme color, etc.index.html → <title> and <meta> tags/manifest.webmanifest.Whatever you want. This is your app now.