Science Workflow

Graphics and Rendering

Visualizações científicas no terminal e imagens raster produzidas pela execução nativa de exemplos Sounio.

Back to Science Hub

Gráficos e Renderização

Esta página reúne visualizações científicas no terminal de examples/graphics/ e cinco imagens raster de examples/render/.

As imagens vêm da execução nativa dos programas de exemplo Sounio, seguida da conversão de sua saída PPM para SVG. O registro de proveniência identifica os commits de origem, o pacote do compilador e os resultados da comparação de pixels. A comparação verifica a reprodução da saída dos exemplos; a precisão matemática e a validação de provas históricas ficam fora de seu escopo.

Saída de Raster Real

Um triângulo rasterizado por software com cantos interpolados de vermelho, verde e azul em um fundo escura.
Triângulo Rasterizado

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
Um cubo de perspectiva com linhas de eixo vermelho, verde e azul em um fundo escura.
Cubo Wireframe

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
Uma mapeamento de 16 por 16 de células de incerteza que varia de quadrados frios e escurvos para quadrados brilhantes e quentes.
Campo de Incerteza

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
Um gráfico causal com um nó de intervenção vermelho X, nós observados azuis M e Y, e um nó latente cinza conectados por setas.
Grafico DAG Causal

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
Uma esfera de esboço de lixo mostrando uma posição original dimensão e uma posição rotada brilhante, com linhas de orientação conectantes em um fundo escurro.
Rotação por Quaterniônio

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.

06_octonion_color_table.sio
╔══════════════════════════════════════════════════════════════════════════╗
║           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.

02_fmri_octonion_activation.sio
╔═══════════════════════════════════════════════════╗
║     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.

phase3_showcase.sio - Roteio de Cubo
╔═══════════════════════════════════════════════════╗
║          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.

phase5_showcase.sio - Fountain de Partículas
╔═══════════════════════════════════════════════════╗
║        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.

phase5_showcase.sio - Dinâmica dos Fluidos
╔═══════════════════════════════════════════════════╗
║         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.

phase6_showcase.sio - Bifurcação
╔═══════════════════════════════════════════════════╗
║    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.

phase7_showcase.sio - Grafo de Rede
╔═══════════════════════════════════════════════════╗
║      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.

10_kalman_filter_color.sio
╔═══════════════════════════════════════════════════╗
║      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×
08_climate_ensemble_color.sio
╔═══════════════════════════════════════════════════╗
║    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

FaseMódulosCapacidades
Fase 1canvas, colors, drawing, textPrimitivos básicos, cores ANSI, formas
Fase 2axes, scatter, line_plot, bar_chart, histogram, heatmapGráficos bidimensionais
Fase 3projection, wireframe, scatter3dVisualização tridimensional
Fase 4input, interactive_plotZoom, rolagem, mouse/teclado
Fase 5animation, particle_system, fluid_simAnimação, física
Fase 6phase_diagram, bifurcation, poincare, streamlinesGráficos científicos
Fase 7graph, force_directed, tree_layout, graph_renderVisualização de rede

Começar

# Executar uma das demonstrações de fase
bin/souc executar exemplos/gráficos/demos/phase1_showcase.sio