Sobre o projeto

Astrofox é um programa de motion graphics projetado para transformar áudio em vídeos visuais. Ele é distribuído como um projeto open-source sob a licença MIT e pode ser executado tanto como uma aplicação web quanto como uma aplicação desktop offline. Fluxo de trabalho principal Os projetos são abertos e salvos como arquivos .afx locais. O README observa que projetos .json e projetos .afx legados compactados com gzip ainda podem ser abertos. A aplicação é descrita como um app Next.js no lado do cliente, e nenhum backend ou serviço de autenticação é necessário para o desenvolvimento. Execução a partir do código-fonte O README documenta um fluxo de trabalho baseado em pnpm: clone o repositório, instale as dependências com pnpm install, compile com pnpm build e inicie com pnpm start. Para desenvolvimento, pnpm dev executa o app. Implantação web Os commits são implantados através da Vercel usando o script padrão pnpm build. O README avisa para não alterar este script para o empacotamento desktop. Desktop (Electron, offline) O desenvolvimento usa pnpm dev:desktop, que combina um servidor de desenvolvimento Next com um shell Electron. O empacotamento de produção usa pnpm package, que realiza uma exportação estática com BUILD_TARGET=desktop para out/, e então empacota electron/ mais out/ com electron-builder. Os instaladores são gravados em release/. Variantes específicas de plataforma e não empacotadas estão disponíveis via pnpm package:dir, package:mac, package:win e package:linux. Entrada/saída de arquivos Web e desktop compartilham os mesmos seletores de navegador, usando a API File System Access com fallbacks de entrada/download. A ponte Electron é reservada para o chrome da janela, arquivos temporários e exportação ffmpeg, usando caminhos absolutos apenas quando necessário. Mais detalhes estão em docs/desktop-capabilities.md. Exportação de vídeo Na web, a exportação usa o MediaRecorder do navegador (WebM, ou MP4 quando suportado). No desktop, a exportação realiza uma renderização de frames offline e então usa um binário ffmpeg incluído para produzir MP4 (H.264/AAC). Os comandos de empacotamento baixam o binário da plataforma e o incluem em bin/. Comunidade e suporte O README contém links para um vídeo de demonstração, o site do projeto, um chat Discord, um fórum Reddit e um rastreador de problemas no GitHub para relatórios de bugs.