尚未检测到更新。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.