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.
Cosmos 3D interactivo que transforma tu biblioteca musical en una galaxia viva de estrellas, nebulosas y polvo cósmico.
Translation pending
MediaTypeScript · JavaScriptGitHub @leann027OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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 ↗Sistema interactivo de exploración y renderizado 3D que transforma bibliotecas musicales en un cosmos procedural navegable en tiempo real. Canciones, artistas y géneros se computan como entidades estelares, cúmulos de gas nebular y discos de polvo galáctico que orbitan una singularidad central supermasiva, con cinemáticas de cámara en arco, interfaz perimetral de cristal y reactividad acústica por transformada rápida de Fourier (FFT).
El proyecto modela la afinidad y los metadatos de bibliotecas musicales como cuerpos celestes en un espacio euclidiano tridimensional. La distribucion espacial se calcula mediante logaritmos de dispersion espiral y clasificaciones TF-IDF de subgeneros. La experiencia incluye una secuencia de entrada hiperespacial ("Warp-in"), una rotacion secular continua de todos los sectores alrededor de un agujero negro central, y renderizado acelerado en GPU a 60 fotogramas por segundo estables.
El codigo esta estructurado de forma modular y desacoplada para garantizar cumplimiento estricto con las reglas de inmutabilidad y pureza de React 19 y React Three Fiber:
src/
├── app/ # Rutas Next.js 16 (App Router)
│ ├── api/ # Endpoints de enriquecimiento y streaming de previews
│ ├── callback/ # Endpoint de redireccion OAuth 2.0 PKCE
│ └── page.tsx # Pagina principal y montaje de Canvas
├── components/
│ ├── canvas/
│ │ ├── galaxy/ # Modulos del disco estelar y agujero negro
│ │ │ ├── SupermassiveBlackHole.tsx
│ │ │ ├── SpiralStardustPoints.tsx
│ │ │ ├── spiralStardustGeometry.ts
│ │ │ └── shaders/ # Shaders de horizonte de sucesos y lentes gravitacionales
│ │ ├── nebula/ # Modulos de nubes de gas interestelar
│ │ │ ├── SectorNebulaCluster.tsx
│ │ │ ├── nebulaGeometry.ts
│ │ │ └── shaders/ # Turbulencia fractal y micro-flashes protoestelares
│ │ ├── star/ # Modulos de representacion estelar
│ │ │ ├── StarCoreMesh.tsx # Nucleo con oscurecimiento de limbo
│ │ │ ├── StarAccretionRings.tsx # Anillos con divisiones Cassini y falloff radial
│ │ │ ├── StarFeatures.tsx # Chorros polares y picos de difraccion
│ │ │ ├── StarPlaybackPulsar.tsx# Ondas de choque acusticas y satelites FFT
│ │ │ ├── StarLabel.tsx # Tipografia SDF Billboard nativa en GPU
│ │ │ └── shaders/ # Shaders de superficie estelar
│ │ ├── hooks/ # Hooks desacoplados de camara y rendimiento
│ │ │ ├── useWarpSequence.ts # Transicion de salto hiperespacial
│ │ │ ├── useArcFlight.ts # Interpolacion parabolica GSAP
│ │ │ ├── useOrbitalTracking.ts # Bloqueo orbital sobre estrellas en rotacion
│ │ │ └── usePerformanceMonitor.ts # Metricas de draw calls y FPS
│ │ ├── ConstellationLinks.tsx # Filamentos de influencia inter-estelar
│ │ ├── DistantSongsCloud.tsx # Nube masiva de canciones en 1 draw call
│ │ ├── PostProcessingPipeline.tsx# UnrealBloomPass con amortiguacion adaptativa
│ │ └── WarpTunnelMesh.tsx # Trazas de luz estelar hiperespacial
│ └── ui/ # Interfaz flotante de cristal (Glassmorphism Dock)
│ ├── AudioControlBar.tsx # Barra de reproduccion y ecualizador
│ ├── CelestialSearchModal.tsx # Buscador estelar instantaneo
│ ├── ConstellationDrawer.tsx # Panel de constelaciones y sectores
│ ├── FloatingDockHUD.tsx # Dock perimetral inferior
│ └── RecordSleeveCard.tsx # Ficha de archivo discografico
├── lib/
│ ├── audio/WebAudioEngine.ts # Motor FFT de 64 bandas y sintetizador fallback
│ ├── spotify/ # Capa de red con backoff exponencial
│ └── math/ # Normalizacion de distribuciones y RNG
└── store/
└── useGalaxyStore.ts # Estado global con Zustand
[0, 0, 0].exp(-dist^2 * 160.0) con difraccion en cruz, simulando chispas opticas puntuales sin deformar el tamano del vertice.smoothstep(3.5, 12.0, vCamDist), permitiendo apreciar la profundidad del gas desde la lejania y disipandolo de forma limpia cuando la camara inspecciona una estrella.MeshBasicMaterial mediante onBeforeCompile que computa el producto escalar entre la normal y el vector de vista pow(NdotV, 0.45), eliminando el aspecto de esferas plasticas uniformes.sin(rNorm * PI) con micro-ranuras oscuras sinusoidales, anulando los cortes angulares de los bordes geometricos.UnrealBloomPass configurado con radio de dispersion contenido (0.16) y umbral alto (0.92).Todo el contenedor de la galaxia (disco de polvo espiral, agujero negro central, sectores nebulares, estrellas de artistas y canciones) se encuentra anclado a un grupo unificado que gira lentamente alrededor del eje Y a razon de 0.007 radianes por segundo.
useOrbitalTracking)Al seleccionar una estrella para inspeccion detallada:
matrixWorld.useArcFlight)CameraControls.arcLift = bellCurve * liftFactor) con balanceo lateral controlado.El modulo WebAudioEngine gestiona el procesamiento acustico en cliente:
smoothingTimeConstant: 0.82).subBass (20 Hz - 90 Hz): Modula el radio de los pulsars estelares y la respiracion del horizonte de sucesos.midHarmonic (300 Hz - 2.5 kHz): Rige la velocidad orbital de los micro-satelites ecualizadores.highShimmer (5 kHz - 14 kHz): Modula el titilado de los micro-destellos en el gas interestelar.energy: Promedio rms total que gobierna la velocidad de turbulencia del disco de acrecion.StarPlaybackPulsar):
La densidad de la biblioteca y la afinidad de escucha promueven a las entidades a traves de estadios cosmicos:
| Nivel | Tipo | Criterio | Manifestacion Visual 3D |
|---|---|---|---|
| Enana Estelar | Cancion / Artista | Afinidad estandar | Esfera con oscurecimiento de limbo y corona bioluminiscente. |
| Gigante Radial | Artista | Historial significativo | Disco ecuatorial de acrecion con falloff Cassini. |
| Supergigante Alfa | Artista | Gran volumen de pistas | Doble anillo concéntrico contra-rotante y satélites orbitales. |
| Sector Activo | Genero | 8 a 24 canciones | Nebulosa densa ionizada con turbulencia fractal. |
| Supercumulo Dominante | Genero | Mas de 24 canciones | Nebulosa expandida ($1.35\times$) y chorros polares relativistas. |
backdrop-blur-md), borde de cristal y botones micro-interactivos para control de brillo estelar, filtro de afinidad y alternancia de vistas.StarLabel): Textos orientados al observador mediante <Billboard> utilizando Signed Distance Fields (@react-three/drei). Disponen de contorno oscuro de alto contraste (outlineColor: #020205), eliminando por completo colisiones y desbordamientos en el arbol DOM de React.RecordSleeveCard): Panel deslizable que detalla catalogacion estelar, retrato del artista, pistas relacionadas con duracion y acceso directo a reproduccion./ o Ctrl+K) con filtrado instantaneo por genero, artista o cancion y foco de camara automatico.El cliente de Spotify API implementa una arquitectura disenada para operar bajo limites de tasa estrictos (Rate Limiting HTTP 429):
fetchWithRetry: Inspeccion sistematica de la cabecera Retry-After. Si el tiempo de espera excede 15 segundos, la solicitud se cancela de forma controlada informando al usuario en la interfaz. Reintentos automaticos con retroceso exponencial y varianza aleatoria (jitter).localStorage con expiracion automatica para evitar consultas redundantes de artistas y pistas ya sincronizadas.@react-three/fiber y @react-three/dreicamera-controlsgit clone https://github.com/leann027/YourMusicVisualizer.git
cd YourMusicVisualizer
npm install
Para conectar con una cuenta propia de Spotify, crear un archivo .env.local en la raiz:
NEXT_PUBLIC_SPOTIFY_CLIENT_ID=tu_spotify_client_id
NEXT_PUBLIC_SPOTIFY_REDIRECT_URI=http://127.0.0.1:3000/callback
Nota: La aplicacion incluye presets precalculados (50, 150 y 300 pistas) totalmente operativos sin necesidad de credenciales externas.
npm run dev
Acceder a http://127.0.0.1:3000 en el navegador.
npm run build
npm run start
# Comprobacion estricta de linters (0 errores, 0 advertencias)
npm run lint
# Ejecucion de pruebas unitarias y de integracion
npm run test
/ o Ctrl + K / Cmd + K: Abrir buscador estelar.50p / 150p / 300p: Alternancia inmediata entre densidades cosmicas precalculadas.Distribuido bajo los terminos de la Licencia MIT. Consulte el archivo LICENSE para mas detalles.