iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A multi-tone frequency generator set inside an orbital observation chamber. Pick frequencies from the built-in library (brainwave, Schumann, solfeggio, reference tones, …) or enter your own, layer them, and route each tone to L / L+R / R and — in Chrome/Edge — to a specific output device.
Plain static files, no build step, no external requests. Works 100% offline.
index.html the whole app (HTML + CSS + JS)
sw.js service worker — precaches everything for offline use
manifest.webmanifest makes it installable (home screen / dock / start menu)
assets/vista.webp background scene (736 × 983)
assets/inter-var.woff2 Inter variable font, self-hosted (OFL, see inter-LICENSE.txt)
icons/ app + favicon icons
vercel.json headers (security, service worker, manifest)
/) — find and run any frequency, preset,
saved combo, playlist or action from the keyboard. ? opens shortcuts &
settings (visual quality auto / full / lite, haptics).shepherd.freq.html with the
image, font and icons embedded. Open it from any device's files, no network
needed.Import this repo at https://vercel.com/new. Framework Preset Other, build
command and output directory empty. Or with the CLI: vercel --prod.
When you change a file that the service worker caches, bump VERSION in
sw.js so installed copies pick up the update.
docs/design-system.md — component relationship map, visual hierarchy,
motion system and the performance contract.docs/audit-2026-10.md — the October 2026 audit: every bug found and fixed.tests/run.mjs drives a real Chromium through every feature, safety gate and
a set of attacks (296 checks), served with the production headers:
npm i --no-save playwright && npx playwright install chromium
node tests/run.mjs
npx serve . # or: python3 -m http.server 3000
The service worker and device scanning need https:// or localhost.
Everything placed over the scene is anchored to positions measured from the image's luminance profile: header in the ceiling band (0–8.9 %), the hero frequency in the calm haze band (38.7–50.9 %), the live wave drawn on the distant land horizon (51.4 %), tone cards resting on the land above the diners, light that swells at the orbital horizon (15.3 %) and floor as tones play. The stage keeps the image's aspect ratio and is centred on the window opening, so those anchors hold on every screen size.
prefers-reduced-motion.A static, client-only app — no server code, accounts, cookies, analytics or third-party resources. Hardening (each control was attack-tested):
| Threat | Control |
|---|---|
| Script injection (XSS) via labels, saved data or Bluetooth device names | all dynamic text escaped; strict CSP with SHA-256 hashes for the one inline script and style — no unsafe-inline, no unsafe-eval, no external origins |
| Injection through any HTML sink | Trusted Types default policy routes every innerHTML through a tag-aware sanitizer; eval, string timers and new policies are refused |
| Data exfiltration | connect-src 'self', default-src 'none', form-action 'none' |
| Clickjacking / framing | frame-ancestors 'none', X-Frame-Options: DENY, JS frame-guard in the single file |
| Prototype pollution | saved state rebuilt from an allow-list of keys (no object spread); built-in prototypes and app data frozen |
| Oversized / malformed saved state | strict type checks and clamps; max 48 tones, 40-char labels; control and bidi-override characters stripped |
| Service-worker cache poisoning | caches an explicit allow-list only; no query strings, redirects, errors or cross-origin responses |
| Cross-origin attacks / side channels | COOP + COEP + CORP same-origin (cross-origin isolated), nosniff, no-referrer, Origin-Agent-Cluster |
| Downgrade | HSTS (2 years) + upgrade-insecure-requests |
| Permission abuse | Permissions-Policy denies everything except microphone (device names, on click only, released immediately), speaker selection, and — only on a tap — geolocation and Bluetooth |
| Repo files exposed by deploy | .vercelignore ships only the app |
| Supply chain | zero runtime dependencies; font self-hosted; CI action pinned by commit |
After editing index.html, run node tools/csp.mjs to refresh the CSP
hashes (CI fails if you forget). Report vulnerabilities via
SECURITY.md.
AudioContext.setSinkId (Chromium). Elsewhere
tones play through the system default.localStorage.