iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Visual DJ lets DJs and live artists design custom visuals for their shows in minutes. Pick a template, make it yours, and take it to the stage.
MediaTypeScript · CSSGitHub @ROCOSA00OnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Create visuals that move with your sound.
Visual DJ is a web studio for DJs and live artists to design custom visuals for
their shows, with no design, video or coding skills needed. Pick a template,
add your artist name and logo, tweak colours, fonts and motion, organise your
set into scenes, and perform it fullscreen in Show Mode.
This first version runs entirely in the browser: there is no backend, login or
payments yet. Projects are saved in localStorage and uploaded media in
IndexedDB.Read the full README ↗Create visuals that move with your sound.
Visual DJ is a web studio for DJs and live artists to design custom visuals for their shows, with no design, video or coding skills needed. Pick a template, add your artist name and logo, tweak colours, fonts and motion, organise your set into scenes, and perform it fullscreen in Show Mode.
This first version runs entirely in the browser: there is no backend, login or
payments yet. Projects are saved in localStorage and uploaded media in
IndexedDB.
/): product story, live previews, popular templates./dashboard): greeting, continue where you left off, recent
visuals, recommended templates, genres, quick access to Show Mode. Includes
an empty state and a "load demo shows" option./templates): 27 templates across 11 genres (Urban
first: reggaeton, dembow, afro), built like real DJ tour visuals: the artist
name as a huge 3D hero, one-colour grades and lights that hit on the kick. With
search and filters (genre, style, energy, colour, animation), live animated
thumbnails and a full preview of each template's five-scene show set./editor/:id):
/show/:id): fullscreen output, auto-hiding controller,
scene pads, keyboard control (1–9, ←/→), cut / crossfade / flash
transitions, blackout, hold-to-strobe, freeze, tap tempo, wake lock and a
double-Esc safety before leaving./settings): interface, performance (render quality, fps
cap, animated thumbnails), default export resolution, Show Mode controls
(transition, auto-hide, reduce flashing), keyboard shortcuts, restart
tutorial and local data management.On phones the editor shows a simplified screen that links to Show Mode; tablets can choose to continue to the editor. The landing page is fully responsive.
npm install
npm run dev # http://localhost:3000
Other scripts:
npm run lint
npm run typecheck
npm run build && npm start
Deploying on Vercel needs no configuration: import the repository and deploy.
next/fontsrc/
app/ Routes: landing, (app)/dashboard|templates|settings,
editor/[projectId], show/[projectId], new
config/brand.ts Product name, wordmark and storage namespace (rename here)
domain/ Pure, serialisable model: types, factories, catalog
(effect/overlay metadata), templates → show sets,
project operations, schema migrations
engine/ Rendering, independent of React:
render/ renderScene() + one renderer per layer kind
audio.ts Simulated beat + Web Audio analysis
clock.ts Playback clock shared by the stage and thumbnails
ticker.ts Single requestAnimationFrame loop for every canvas
assets.ts Media references → drawable elements
data/ Mock content: templates, genres, palettes, presets,
shortcuts
services/ Persistence boundaries (swap these for a backend):
projects/ ProjectRepository (localStorage implementation)
media/ MediaStore (IndexedDB implementation)
export/ PNG / WebM exporters
store/ Zustand stores: projects (autosave), editor (selection,
history), settings, toasts
components/ UI split by area: editor/{sidebar,canvas,properties,
layers,scenes}, show/, tutorial/, templates/,
dashboard/, landing/, app-shell/, ui/ (design system)
Each scene is a list of layers rendered bottom to top on a logical 1920×1080 stage, then scaled to any canvas size (thumbnail, editor, 4K export). Frames are a pure function of time, so scrubbing, exports and Show Mode all match the preview. Animation speeds are quantised so every animation completes a whole number of cycles per loop: scenes loop seamlessly over their bar length at the project BPM.
The code is organised so the planned features slot in without rewrites:
| Future feature | Where it plugs in |
|---|---|
| Google login, DJ profiles | Project.ownerId is reserved; add an auth provider in app/providers.tsx and an Account section in Settings |
| Cloud storage & sync across devices | Implement ProjectRepository and MediaStore against an API; both interfaces are already async |
| Payments, subscriptions, premium library | Templates carry a tier: "free" | "pro" field |
| Template marketplace | Templates are data (TemplateDefinition) with author metadata |
| Collaboration | Every edit goes through store/editorActions.ts, a single place to emit change events |
| MIDI, Ableton Link, Rekordbox | Show Mode actions (goTo, blackout, strobe, tap) are plain functions ready to bind to MIDI or a sync clock; PlaybackClock.alignBeat handles beat alignment |
| Resolume / NDI output | renderScene() renders to any canvas, offscreen included |
| AI-generated visuals | Generate Layer[] (plain JSON) and pass it to editorActions.replaceSceneLayers |
| MP4 / GIF export | Add exporters next to services/export/exporters.ts |
Schema changes go through domain/migrations.ts (bump
PROJECT_SCHEMA_VERSION).
Latest Chrome, Edge, Firefox and Safari 15.4+. Older browsers get CSS fallbacks and an "update your browser" notice; if something still fails, a friendly error screen shows the message instead of a blank page.
Strobe and flash effects carry a photosensitivity notice, and Settings → Show controls → Reduce flashing caps their brightness and rate. Interface motion can be reduced independently from the visuals.