Simtronics — Estado Atual

O que está implementado, validado e pendente no simulador de circuitos Simtronics (ngspice WASM).

Estado Atual

Resumo sincero do que está pronto, o que está em desenvolvimento e o que ainda precisa de validação final. Atualizado em 19 de julho de 2026.

Implementado e validado (testes passando)

Engine de simulação (F0)

  • eecircuit-engine 1.7.0 integrado via Web Worker com lazy loading.
  • Suporte a análises .op, .tran, .ac e .dc.
  • Parsing de resultados: vetores reais e complexos (magnitude + parte real/imaginária), detecção automática do tipo de análise.
  • Escala sintética para operating point (.op).
  • Tratamento de erros: Note: (não fatal) vs Fatal error/aborted (fatal).
  • 13 testes — 3 netlists do plano rodando no engine real, AC 1 com Note: não fatal, DC sweep, netlist inválida.

Biblioteca esquemática (FE — lib pura)

  • 11 componentes: resistor, capacitor, indutor, fonte V, fonte I, ground, NPN, PNP, NMOS, PMOS, transformador.
  • Geometria normativa: corpo 4×2 (passivos), círculo r=2 (fontes), pinos em ±3, rotação horária.
  • Fontes com polaridade n+/n-, BJT/MOS com papéis collector/base/ emitter e drain/gate/source, transformador com dots p+/s+.
  • Conectividade point-on-segment: T-junction, pino sobre segmento, cruzamento sem vértice não conecta.
  • Geração de netlist SPICE: modelos padrão (NPN, PNP, NMOS level=1, PMOS level=1), modelos parametrizados (BF=100), transformador (LT1P/LT1S/KT1).
  • Validação em 7 etapas determinísticas com code e subjectId.
  • Namespace case-insensitive, anti-injeção (\r\n, parênteses, SPICE_SCALAR).
  • 42 testes — 3 circuitos §4.4, T-junction, cruzamento falso, 6 circuitos v1.2 (BJT/MOS/trafo), colisão de namespace, parser de escalar, erros de wire/ID/geometria, estabilidade.

Implementado e validado no navegador

Editor SVG

  • Canvas com grid e snap.
  • Paleta de 11 componentes com símbolos CC0 (Inkscape Electric Symbols).
  • Adicionar pela paleta, mover, rotacionar (R), deletar (Del) e editar ID, valor e rotação pelo painel de propriedades.
  • Fiação: clique em pino → preview ortogonal → destino.
  • Regeneração da netlist a cada mudança (debounce).
  • Syntax highlight SPICE leve (sem CodeMirror/Monaco).
  • Layout app-shell quase full-bleed.
  • Zoom, pan, reset de enquadramento, paleta recolhível e modo tela cheia.

Gráfico de resultados

  • Canvas próprio para plot de simulação (polylines + eixos).

Gate desta rodada

  • Chromium real: 33 verificações aprovadas, sem exceções JavaScript ou erros de console antes do teste negativo controlado.
  • O módulo pesado do engine não é solicitado ao abrir a página; ele só aparece na rede após a primeira simulação.
  • Presets .op, .tran e .ac, propriedades, zoom/pan, fiação ortogonal, tela cheia, persistência das preferências e viewport mobile validados.
  • TypeScript estrito dos módulos do editor sem erros e build de produção concluído.

Fora do escopo do gate

  • Testes de usabilidade prolongados com turmas e operadores reais.
  • Deploy em infraestrutura pública.

Anterior: 00 — Introdução · Índice: 00 — Introdução · Próximo: 02 — Arquitetura e fluxo