explainroo
explainroo is a free, open source tool that lets your AI agent make explainer videos with a voice. It runs on your own computer and needs no API key.
Play a song and watch its painting appear, note by note — the same painting every time, chosen by the music itself. Pictures play back as music. Free in your browser.
MediaJavaScript · HTMLGitHub @RastoDeeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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.