Unstable-Singularity-Detector: enfrentando um problema em aberto de 100 anos em dinâmica dos fluidos (open source que reproduz completamente um artigo da DeepMind)
(github.com/Flamehaven)TL;DR
O artigo da DeepMind sobre “detecção de singularidades em fluidos” (2024) não incluía código.
Por isso, ele foi reproduzido completamente do início ao fim apenas com base no artigo.
Agora, foi disponibilizado um pipeline realmente funcional que gera um relatório PDF em 7 segundos.
💥 O problema: uma doença crônica da pesquisa em IA
DeepMind (2024)
“Discovering new solutions to century-old problems in fluid dynamics”
Resumo do conteúdo
- Problema em aberto há mais de 100 anos: um fluido pode explodir em tempo finito?
- Detecção de singularidade com Physics-Informed Neural Network (PINN)
- Computação de altíssima precisão (10⁻¹³), treinamento complexo em múltiplas etapas
Problemas
- ❌ Código não publicado
- ❌ Método de reprodução pouco claro
- ❌ Só com as fórmulas não dá para executar
Como resultado, pesquisadores do mundo todo não tinham outra opção além de “ler e desistir”.
✅ A solução: projeto aberto de reprodução independente
🚀 Unstable Singularity Detector
Implementação open source totalmente independente, sem vínculo com a DeepMind
Usando apenas as fórmulas e metodologias divulgadas no artigo,
a verificação de singularidades em dinâmica dos fluidos foi reproduzida do começo ao fim.
💡 Filosofia: por que este projeto importa
Artigo publicado → sem código → impossível reproduzir → pesquisa estagnada
A mensagem deste projeto:
“Vamos transformar ciência que existe só no artigo em ferramentas executáveis.”
A essência da ciência aberta é a reprodutibilidade (Reproducibility).
Um artigo sem código é uma ciência pela metade.
🎓 Quem pode usar?
- 🧠 Pesquisadores de dinâmica dos fluidos — validação e extensão do artigo
- 🔬 Desenvolvedores de PINN / SciML — referência de otimização de alta precisão
- 🎓 Pós-graduandos / estudantes — prática de implementação de artigos
- 🤖 Pesquisadores de IA — conscientização sobre o problema de “artigos sem código”
- 🧑🏫 Educadores — material prático para aulas sobre PINN
🚀 Comece em 5 minutos
git clone https://github.com/Flamehaven/unstable-singularity-detector.git
cd unstable-singularity-detector
pip install -r requirements.txt
python examples/e2e_full_ipm.py
Resultado:
- Exibição de logs de convergência em tempo real
- Geração de
results/ipm_full_demo/ipm_full_report.pdf - Relatório PDF de 3 páginas (curvas de convergência + histórico de treinamento + métricas)
🎯 Prova de que realmente funciona
v1.3.2 — Complete E2E Pipelines (“Show Me It Works” Release)
1️⃣ IPM (Incompressible Porous Media)
python examples/e2e_full_ipm.py --grid-size 16
# após 7,3 segundos → relatório PDF + métricas JSON gerados automaticamente
Condição inicial: sin(πx)sin(πy)sin(πz)
- Condição inicial: sin(πx)sin(πy)sin(πz)
- Lambda funnel: convergência em 1 iteração
- Resíduo: 1e-3 → 1e-7 (melhoria de 1000x)
- Saída: relatório PDF de 3 páginas (curva de convergência + métricas)
2️⃣ Boussinesq 2D (convecção térmica)
python examples/e2e_boussinesq_2d.py --grid-size 64
- Validação da conservação de energia (resíduo de 5e-8)
- Geração automática de relatório PDF
3️⃣ Equação do calor 1D (validação com solução analítica)
pytest tests_e2e/test_heat_equation_1d.py -v
# 7/7 tests PASSED
- Solução analítica: u = exp(-π²t)sin(πx)
- Erro da solução numérica: < 0.04
- Resíduo da PDE: < 0.05
🔍 Tabela de validação em relação ao artigo
| Componente | Referência no artigo | Método de validação | Resultado | Status |
|---|---|---|---|---|
| Fórmula de previsão de Lambda | Fig 2e | Comparação numérica direta | <1% de erro | ✅ |
| Funnel Inference | Sec 3.2 | Teste de convergência | convergência em 1–2 iterações | ✅ |
| Treinamento multi-stage | Sec 3.3 | Rastreamento de resíduos | 10⁻⁷ alcançado | ✅ |
| Gauss–Newton | Eq 7–8 | Benchmark de precisão | 10⁻¹³ | ✅ |
| Condições de contorno | Sec 2.3 | Dirichlet BC | erro < 10⁻¹⁰ | ✅ |
| Transformação autossimilar | Fig 3 | Transformação de coordenadas | implementação concluída | ✅ |
✅ Taxa de validação concluída: 100% (todas as fórmulas divulgadas no artigo)
🛠️ Destaques técnicos
Inovações principais
-
Treinamento orientado por metas de precisão
# Stage 1: Adam warmup → 1e-6 # Stage 2: Fourier features → 1e-9 # Stage 3: Gauss–Newton → 1e-12 -
Eficiência de memória
- Aproximação Hessiana Rank-1 → O(P²) → O(P)
- Economia de memória de 1000x
-
EMA Smoothing
H_t = β * H_{t-1} + (1 - β) * (JᵀJ)_t -
Sistema de validação automática
- 111/113 testes aprovados (2 pulados por GPU)
- Integração completa com GitHub Actions CI/CD
📊 Exemplo real de uso
from unstable_singularity_detector import UnstableSingularityDetector
detector = UnstableSingularityDetector(equation_type="ipm")
lambda_0 = detector.predict_next_unstable_lambda(current_order=0)
print(f"Predicted: {lambda_0:.10f}")
# Output: 1.0285722760 (erro de 0.000% em relação ao valor do artigo)
🧩 Pipeline completo (resumo em 10 linhas)
from examples.e2e_full_ipm import FullIPMPipeline
from pathlib import Path
pipeline = FullIPMPipeline(output_dir=Path("results/my_experiment"), grid_size=32)
pipeline.run()
# após 7 segundos, relatórios PDF e JSON gerados
📈 Status do projeto (v1.3.2)
| Item | Número |
|---|---|
| Código | 15,000+ lines |
| Testes | 111/113 passing (98.2%) |
| Documentação | 2,500+ lines |
| Commits | 150+ |
| Licença | MIT |
| Python | 3.8+ |
| Principais dependências | PyTorch, NumPy, SciPy |
🔐 Transparência e limitações
Independência declarada
- Projeto de pesquisa pessoal, sem vínculo com a DeepMind
- Uso apenas das fórmulas publicadas no artigo
- Licença MIT
- Todas as limitações são divulgadas
Limitações atuais
- Violação de quantidade conservada: IPM 128% (limite de capacidade da rede)
- Erro de Lambda: Boussinesq 42% (correção empírica planejada)
- Precisão: focado em demonstração (não é para produção)
💬 Feedback é bem-vindo
Vamos mudar juntos “um mundo em que só existe artigo, mas não código”.
Made with 🔬 by independent researchers, for open science
Ainda não há comentários.