Gráficos e Renderização
Sounio possui, no momento, duas famílias de gráficos reais neste repositório de snapshot:
visualizações científicas nativas do terminal em examples/graphics/ e imagens rasterizadas por software sob examples/render/.
As visualizações rasterizadas a seguir são geradas a partir do exato stdout do artefato verificado JIT, então commitadas como assets SVG para o site.
Essa página agora envia cinco visualizações rasterizadas reais em vez de dois amostras isoladas.
Saída de Raster Real
Este exemplo é um rasterizador barycentrico real. A imagem da página pública é gerada do output do compilador, não de um desenho manual.
Source: examples/render/triangle_basic.sio
bin/souc run examples/render/triangle_basic.sio > triangle_basic.ppm Este exemplo projecta um cubo girado, esfrega os bordas por profundidade e emite um frame PPM portátil diretamente a partir do código Sounio.
Source: examples/render/cube_wireframe.sio
bin/souc run examples/render/cube_wireframe.sio > cube_wireframe.ppm Este preview transforma a incerteza orientada pelo tipo em um campo epistêmico real: o valor rola em x, epsilon rola em y, e a luminosidade diminui conforme a incerteza aumenta.
Source: examples/render/uncertainty_field.sio
bin/souc run examples/render/uncertainty_field.sio > uncertainty_field.ppm Este render codifica um diagrama de estilo front-door diretamente em pixels, incluindo a coração do(X) e um latente explícito mediador.
Source: examples/render/causal_dag.sio
bin/souc run examples/render/causal_dag.sio > causal_dag.ppm Essa cena rotaciona um tetrahedro usando matemática de quaterniônio, projecta ambas as posições para o espaço da tela e sobrepõe linhas de correspondência entre os vértices originais e rotados.
Source: examples/render/quaternion_rotation.sio
bin/souc run examples/render/quaternion_rotation.sio > quaternion_rotation.ppm Por que esta pilha gráfica?
- Saída de compilador real: A seção de raster acima é gerada a partir da saída verificada do
souc run, não de capturas de tela - Formatos de saída portáveis: Os demos de terminal utilizam Unicode/ANSI; os demos de raster emitem PPM puro
- Sem dependência de janelhamento: Não é necessário X11, OpenGL ou um kit de ferramentas gráficas para os exemplos atuais
- Amigável para SSH: A renderização por terminal e arquivos funcionam tanto em sistemas remotos
Galeria de Terminals
Tabela de Multiplicação de Octônios
O tesouro das pedras pretas - uma visualização de 8D completamente colorizada onde a estrutura do plano de Fano se torna imediatamente visível através de padrões de cores.
╔══════════════════════════════════════════════════════════════════════════╗ ║ TABELA DE MULTIPLICAÇÃO DE OCTÔNIOS - Edição de Cor ║ ╚══════════════════════════════════════════════════════════════════════════╝ × │ 1 i j k l il jl kl ────┼──────────────────────────────────────────────── 1 │ 1 i j k l il jl kl i │ i -1 k -j il -l -kl jl j │ j -k -1 i jl kl -l -il k │ k j -i -1 kl -jl il -l l │ l -il -jl -kl -1 i j k il │ il l -kl jl -i -1 -k j jl │ jl kl l -il -j k -1 -i kl │ kl -jl il l -k -j i -1 Legend: 1=real ijk=quaternion liljlkl=octonion dim=negative
Mapa de Ativação de Cérebro por fMRI
Visualização de fatia de cérebro de 32x32 com intensidade de gradiente usando caracteres Unicode de bloco.
╔═══════════════════════════════════════════════════╗ ║ ATIVAÇÃO CEREBRAL POR fMRI - Folha z=32 ║ ╚═══════════════════════════════════════════════════╝ Anterior ░░░░░░░░░░░░░░░░░░░ ░░░░░░▒▒▒▒▒▒▒▒░░░░░░░░ ░░░░▒▒████████▒▒░░░░ ░░░▒▒██████████████▒▒░░░ ░░░▒▒███████████████████▒▒░░░ L ░░▒▒███████░░░░███████▒▒░░ R ░░▒▒███████░░░░░░███████▒▒░░ ░░▒▒████████░░████████▒▒░░ ░░░▒▒███████████████▒▒░░░ ░░░░▒▒▒███████▒▒▒░░░░ ░░░░░░▒▒▒▒▒▒▒▒░░░░░░░░ ░░░░░░░░░░░░░░░░░░░ Posterior Intensidade: ░=0.0 ▒=0.3 █=0.6 █=1.0 Regiões: Visual Motor Frontal
Cubo de Linhas de Contorno 3D
Roteio de um cubo com uma projeção isómetrica e indicações de eixos.
╔═══════════════════════════════════════════════════╗ ║ CUBO DE LINHAS DE CONTORNO 3D - Frame 42 ║ ╚═══════════════════════════════════════════════════╝ Y │ ┌───────────┐ ╱│ ╱│ ╱ │ ╱ │ ╱ │ ╱ │ ┌───────────┐ │ │ │ │ │ │ └───────│───┘ │ ╱ │ ╱ │ ╱ │ ╱ │╱ │╱ └───────────┘──────X ╱ Z Projetoção: Isómetria (30°) Eixos: X=vermelho Y=verde Z=azul
Animación do Sistema de Partículas
Fountain de partículas baseado em física com forças de gravedade e arrastre.
╔═══════════════════════════════════════════════════╗ ║ FONTE DE PARTÍculas - Frame 120 ║ ╚═══════════════════════════════════════════════════╝ ★ ★ ★ · · · ★ ★ · · · ○ · · ○ · · ○ ○ ○ ○ · │ · · │ · · │ · ════════════════════█════════════════════ Partículas: 847 ativas Física: gravity=0.1, drag=0.99, wind=0.02 Vida Útil: ★=new ·=meio ·=velho
Dinâmica dos Fluidos (Navier-Stokes)
Simulação de fumo baseada no algoritmo “Fluidos Estáveis” de Jos Stam.
╔═══════════════════════════════════════════════════╗ ║ DINÂMICA DOS FLUIDOS - Fumo Ascendente ║ ╚═══════════════════════════════════════════════════╝ ░░░░░░ ░░░░▒▒░░░░ ░░▒▒▓▓▒▒░░░░ ░░░▒▒██▓▓▒▒░░░░ ░░░░▒▒▓▓██▓▓▒▒░░░░ ░░▒▒▓▓███▓▓▒▒░░ ░░▒▒███▒▒░░ ▒▒███▒▒ ▓▓██▓▓ ████ ████ ▓▓▓▓ ░██░ ▀▀ ═══════════════════════════════════════════ Algoritmo: Fluidos Estáveis (Stam 1999) Grade: 64×64, viscosidade=0.0001
Diagrama de Bifurcação
Mapa logístico mostrando a cascada de duplicação de períodos para a caos.
╔═══════════════════════════════════════════════════╗ ║ BIFURCAÇÃO DE MÁPAS LOGÍSTICAS - DOBRAR PERÍODO ║ ╚═══════════════════════════════════════════════════╝ x↑ 1│ ░░░░░░░░░░░░ │ ░░▒▒▒▒▒▒▒▒░░ │ ░░▒▒████████▒▒ │ ▒▒▒▒████████▒▒░ │ ▒▒▒▒ ████████ │ ▒▒▒▒ ████████ │ ▒▒▒▒ █ █ │ ░░░ █ █ │ ░░░░ │ ░░░░ │ ░░░░ 0│░░░░░ └──────────────────────────────────────────────→r 2.5 3.0 3.5 4.0 x_{n+1} = r × x_n × (1 - x_n) Mostra: ponto fixo → período-2 → período-4 → caos
Layout de Grafo Força-Direcionado
Visualização de rede social com o algoritmo Fruchterman-Reingold.
╔═══════════════════════════════════════════════════╗ ║ GRAFO FORÇA-DIRECIONADO - Rede Social ║ ╚═══════════════════════════════════════════════════╝ (Bob)─────────(Eve) │╲ ╱│ │ ╲ ╱ │ │ ╲ ╱ │ │ ╲ ╱ │ │ ╲ ╱ │ │ ╲ ╱ │ │ ╲ ╱ │ (Alice)───(Carol) │ ╱ ╲ │ │ ╱ ╲ │ │ ╱ ╲ │ │ ╱ ╲ │ │ ╱ ╲ │ │ ╱ ╲ │ │╱ ╲│ (Dave)─────────(Frank) Nós: 6 Arestas: 12 Algoritmo: Fruchterman-Reingold Temperatura: 0.05 (convergido)
Filtro de Kalman Incerteza
Atualizações de crença sequenciais bayesianas com níveis de confiança codificados em cores.
╔═══════════════════════════════════════════════════╗ ║ FILTRO DE KALMAN - Fusão de sensores ║ ╚═══════════════════════════════════════════════════╝ Redução da Incertezão através da Fusão de Sensores: Antes (σ=10,0m): ███████████████████████████████████████ ALTO Após GPS (σ=4,5m): ████████████████ MEDIANIO Após IMU (σ=0,5m): █ BAIXO Após Lidar (σ=0,1m): ▏ Muito BAIXO Crescimento da Precisão (1/σ²): Antes: ▏ +GPS: █ +IMU: █████████ +Lidar: ████████████████████████████████ Redução total de incerteza: 99% Ganho de precisão: 10.405×
╔═══════════════════════════════════════════════════╗ ║ PROJEÇÕES CLIMÁTICAS CMIP6 - SSP2-4.5 ║ ╚═══════════════════════════════════════════════════╝ Alteração Média de Temperatura Global (2100 vs 1850-1900): GFDL-ESM4: ██████████████████│ 1.8°C ± 0.2 HadGEM3: ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ Média do Ensemble: ████████████████████│ 2.02°C ± 0.18 ⚠️ Objetivo de 1.5°C de Paris: 12% de probabilidade de permanecer abaixo ⚠️ Objetivo de 2.0°C de Paris: 47% de probabilidade de permanecer abaixo
Executando os Exemplos
SOUC_BIN=bin/souc
# Renderizações rasterizadas (PPM em saída padrão)
"$SOUC_BIN" run examples/render/triangle_basic.sio > triangle_basic.ppm
"$SOUC_BIN" run examples/render/cube_wireframe.sio > cube_wireframe.ppm
# Visualizações científicas
"$SOUC_BIN" run examples/visual/06_octonion_color_table.sio
"$SOUC_BIN" run examples/visual/10_kalman_filter_color.sio
"$SOUC_BIN" run examples/visual/12_animated_diffusion.sio
# Demonstrações da biblioteca gráfica
"$SOUC_BIN" run examples/graphics/demos/phase3_showcase.sio # 3D
"$SOUC_BIN" run examples/graphics/demos/phase5_showcase.sio # Animacao
"$SOUC_BIN" run examples/graphics/demos/phase7_showcase.sio # Redes
# Atualiza as visualizações rasterizadas do site a partir da saída exata do compilador
npm --prefix website run generate:render-assets
Estrutura da Biblioteca
| Fase | Módulos | Capacidades |
|---|---|---|
| Fase 1 | canvas, colors, drawing, text | Primitivos básicos, cores ANSI, formas |
| Fase 2 | axes, scatter, line_plot, bar_chart, histogram, heatmap | Gráficos bidimensionais |
| Fase 3 | projection, wireframe, scatter3d | Visualização tridimensional |
| Fase 4 | input, interactive_plot | Zoom, rolagem, mouse/teclado |
| Fase 5 | animation, particle_system, fluid_sim | Animação, física |
| Fase 6 | phase_diagram, bifurcation, poincare, streamlines | Gráficos científicos |
| Fase 7 | graph, force_directed, tree_layout, graph_render | Visualização de rede |
Começar
# Executar uma das demonstrações de fase
bin/souc executar exemplos/gráficos/demos/phase1_showcase.sio