個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 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.