Science Workflow

Graphics and Rendering

Terminal-native scientific visuals plus real raster renders generated by the checked JIT artifact.

Back to Science Hub

Gráficos y Renderizado

Sounio actualmente tiene dos familias de gráficos reales en esta instantánea del repositorio: los displayes científicos basados en terminal nativo ubicados en examples/graphics/ y la salida de imágenes rasterizada por software ubicada en examples/render/. Las vistas previas rasterizadas a continuación se generan del mismo stdout de la versión revisada del artefacto JIT, luego se cometen como recursos SVG para el sitio web. Esta página ahora envía cinco vistas previas rasterizadas en lugar de dos muestras aisladas.

Salida Raster Real

Un triángulo rasterizado por software con esquinas interpoladas en rojo, verde y azul sobre un fondo oscuro.
Triángulo Rasterizado

Este ejemplo es un rasterizador barycentríco real. La imagen de la página pública se genera a partir de la salida del compilador, no de un dibujo a mano.

Source: examples/render/triangle_basic.sio

bin/souc run examples/render/triangle_basic.sio > triangle_basic.ppm
Un cubo de contorno en perspectiva con líneas ejes rojas, verdes y azules en un fondo oscuro.
Cubo de Contorno

Este ejemplo proyecta un cubo rotado, sombra los bordes por la profundidad y emite un marco portable PPM directamente desde el código Sounio.

Source: examples/render/cube_wireframe.sio

bin/souc run examples/render/cube_wireframe.sio > cube_wireframe.ppm
Un mapa de calor de 16 por 16 celdas de incertidumbre que van desde cuadrados oscuros fríos hasta cuadrados cálidos brillantes.
Campo de Incertidumbre

Este preview convierte la incertidumbre orientada por tipo en un verdadero campo epistémico: el valor se extiende por x, epsilon se extiende por y, y el brillo disminuye a medida que aumenta la incertidumbre.

Source: examples/render/uncertainty_field.sio

bin/souc run examples/render/uncertainty_field.sio > uncertainty_field.ppm
Un grafo causal con un nodo de intervención rojo X, nodos observados azules M y Y, y un nodo latente gris U conectado por flechas.
DAG Causal

Este renderiza codifica directamente en píxeles un diagrama estilo front-door, incluyendo el estilo de coloración de intervención do(X) y un latente explícito mediador.

Source: examples/render/causal_dag.sio

bin/souc run examples/render/causal_dag.sio > causal_dag.ppm
Una tetrahedron en esquema de alambre muestra una posición original parda, una posición rotada brillante y líneas de guía conectantes en un fondo oscuro.
Rotación por Quaterniones

Esta escena rota una tetrahedron con matemáticas de quaterniones, proyecta ambas poses en el espacio de pantalla y superpone líneas de correspondencia entre los vértices originales y rotados.

Source: examples/render/quaternion_rotation.sio

bin/souc run examples/render/quaternion_rotation.sio > quaternion_rotation.ppm

Por Qué Esta Pila Gráfica?

  • Salida del compilador real: La sección de raster superior se genera a partir de la salida verificada de souc run, no de capturas de pantalla
  • Formatos de salida portátiles: Las demostraciones de terminal utilizan Unicode/ANSI; las demostraciones de raster emiten solo PPM
  • Sin dependencia de ventanas: No se requiere X11, OpenGL o un motor de interfaz gráfica para los ejemplos actuales
  • Amigable con SSH: La renderización por terminal y por archivos funcionan en sistemas remotos también

Galería de Terminales

Tabla de Multiplicación de Octoniones

La joya de la corona: una visualización completamente colorizada de la álgebra 8D donde la estructura del plan Fano se ve de inmediato a través de patrones de colores.

06_octonion_color_table.sio
╔══════════════════════════════════════════════════════════════════════════╗
            TABLA DE MULTIPLICACIÓN DE OCTONIÓNES - Edición en Colores              
╚══════════════════════════════════════════════════════════════════════════╝

    ×  1    i    j    k    l   il   jl   kl
  ────┼────────────────────────────────────────────────
 11    i    j    k    l   il   jl   kl
 ii   -1    k   -j   il   -l  -kl   jl
 jj   -k   -1    i   jl   kl   -l  -il
 kk    j   -i   -1   kl  -jl   il   -l
 ll  -il  -jl  -kl  -1    i    j    k
ilil    l  -kl   jl  -i   -1   -k    j
jljl   kl    l  -il  -j    k   -1   -i
klkl  -jl   il    l  -k   -j    i   -1

Légenda: 1=real  ijk=cuaternión  liljlkl=octonio  dim=negativo

Mapa de Activación Cerebral por RMf

Visualización de un trozo de cerebro de 32×32 con intensidad de grádiente utilizando caracteres Unicode de bloques.

02_fmri_octonion_activation.sio
╔═══════════════════════════════════════════════════╗
     ACTIVACIÓN CEREBRAL POR FMRI - Corta z=32           
╚═══════════════════════════════════════════════════╝

Anterior
       ░░░░░░░░░░░░░░░░░░░
     ░░░░░░▒▒▒▒▒▒▒▒░░░░░░░░
    ░░░░▒▒████████▒▒░░░░
   ░░░▒▒██████████████▒▒░░░
  ░░░▒▒███████████████████▒▒░░░
 L ░░▒▒███████░░░░███████▒▒░░ R
  ░░▒▒███████░░░░░░███████▒▒░░
  ░░▒▒████████░░████████▒▒░░
   ░░░▒▒███████████████▒▒░░░
    ░░░░▒▒▒███████▒▒▒░░░░
     ░░░░░░▒▒▒▒▒▒▒▒░░░░░░░░
       ░░░░░░░░░░░░░░░░░░░
            Posterior

(continuado desde la sección anterior)

Intensidad: ░=0.0  =0.3  =0.6  =1.0
Regiones: Visual  Motores  Frontal

Cubo de cuadro en 3D

Rotación de un cubo con proyección isométrica y indicadores de ejes.

phase3_showcase.sio - Rotación de Cubo
╔═══════════════════════════════════════════════════╗
          CUBO DE LÍNEAS 3D - Cuadro 42           
╚═══════════════════════════════════════════════════╝

Y
                  
              ┌───────────┐
             ╱│          ╱│
                       
                       
          ┌───────────┐   
                       
             └───────│───┘
                      
                     
          │╱          │╱
          └───────────┘──────X
         
        Z

Proyección: Isómetrica (30°)
Ejes: X=rojo  Y=verde  Z=azul

Animación del Sistema de Partículas

Fuente de partículas basada en la física con fuerzas de gravedad y arrastre.

phase5_showcase.sio - Fountain de Partículas
╔═══════════════════════════════════════════════════╗
       FUENTE DE PARTÍculas - Cuadro 120              
╚═══════════════════════════════════════════════════╝

(continuado desde la sección anterior)


                     
                ·       ·
              ·         ·
            ·               ·
               ·   ·     
        ·                     ·
                       
    ·                          ·
  ·                              ·
·                                  ·
════════════════════════════════════════

Partículas: 847 activas
Física: gravedad=0.1, resistencia=0.99, viento=0.02
Vida Útil: =nuevo ·=medio ·=viejo

Dinámica de Fluidos (Navier-Stokes)

Simulación de humo basada en el algoritmo “Fluidos Estables” de Jos Stam.

phase5_showcase.sio - Dinámica de Fluidos
╔═══════════════════════════════════════════════════╗
         DINÁMICA DE FLUIDOS - Humo Alzando           
╚═══════════════════════════════════════════════════╝

░░░░░░
          ░░░░▒▒░░░░
        ░░▒▒▓▓▒▒░░░░
      ░░░▒▒██▓▓▒▒░░░░
    ░░░░▒▒▓▓██▓▓▒▒░░░░░
      ░░▒▒▓▓████▓▓▒▒░░
        ░░▒▒████▒▒░░
          ▒▒████▒▒
            ▓▓██▓▓
            ████
            ████
            ▓▓▓▓
           ██
            ▀▀
═══════════════════════════════════════════

Algoritmo: Fluidos Estables (Stam 1999)
Grid: 64×64, viscosidad=0.0001

Diagrama de Bifurcación

Mapa logístico mostrando el cascada de duplicación de períodos hacia el caos.

phase6_showcase.sio - Bifurcación
╔═══════════════════════════════════════════════════╗
    BIFURCACIÓN DE MAPA LOGÍSTICO - Doble de Período    
╚═══════════════════════════════════════════════════╝

x
1│                                    ░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒░░░░▒▒████████▒▒▒▒▒▒████████▒▒▒▒▒▒  ████████▒▒▒▒      ████████▒▒▒▒            ░░░                   ░░░░░░░░░░░░
0│░░░░░
└──────────────────────────────────────────────→r
 2.5                3.0                3.5   4.0

x_{n+1} = r × x_n × (1 - x_n)
Muestra: punto fijoperíodo 2período 4caos

/>


Visualización de Redes Sociales con Algoritmo de Force-Directed

Visualización de redes sociales con el algoritmo de Fruchterman-Reingold.

phase7_showcase.sio - Grafo de Red
╔═══════════════════════════════════════════════════╗
      GRAFO ORIENTADO POR Fuerza - Red Social       
╚═══════════════════════════════════════════════════╝

(Bob)─────────(Eve)
          │╲             ╱│
          │ ╲           ╱ │
          │  ╲         ╱  │
          │   ╲       ╱   │
          │    ╲     ╱    │
          │     ╲   ╱     │
          │      ╲ ╱      │
         (Alice)───(Carol)
          │      ╱ ╲      │
          │     ╱   ╲     │
          │    ╱     ╲    │
          │   ╱       ╲   │
          │  ╱         ╲  │
          │ ╱           ╲ │
          │╱             ╲│
        (Dave)─────────(Frank)

Nodos: 6  Arestas: 12
Algoritmo: Fruchterman-Reingold
Temperatura: 0.05 (convergido)

Incertidumbre del Filtro de Kalman

Actualizaciones crecientemente bayesianas secuenciales con niveles de confianza codificados en color.

10_kalman_filter_color.sio
╔═══════════════════════════════════════════════════╗
      FILTRO DE KALMÁN - Fusión de Sensors                
╚═══════════════════════════════════════════════════╝

Reducción de Incertidumbre Mediante Fusión de Sensors:

Anterior (σ=10,0m):
█████████████████████████████████████ ALTO

Después de GPS (σ=4,5m):
████████████████                      MEDIANIO

Después de IMU (σ=0,5m):
██                                       BAJO

Después de Lidar (σ=0,1m):
                                        MUYBAJO

Crecimiento de Precisión (1/σ²):
Anterior:  
+GPS:   
+IMU:   ████████
+Lidar: ████████████████████████████████

Reducción total de incertidumbre: 99%
Ganancia de precisión: 10.405×
08_climate_ensemble_color.sio
╔═══════════════════════════════════════════════════╗
    PROJECTIONS CLIMÁTICAS CMIP6 - SSP2-4.5         
╚═══════════════════════════════════════════════════╝

Cambio de Temperatura Global Media (2100 vs 1850-1900):

GFDL-ESM4:    █████████████████│         1.8°C ± 0.2
HadGEM3:      █████████████████████│        2.1°C ± 0.3
MIROC6:       ███████████████████│         1.9°C ± 0.25
IPSL-CM6A:    ███████████████████████│     2.3°C ± 0.4
MPI-ESM:      ████████████████████│       2.0°C ± 0.1
            ├─────────────────────────────────┤
            0                          1.5°C      3.0°C

Media de Ensemble:
            ████████████████████2.02°C ± 0.18

⚠ Obetivo de 1.5°C de París: 12% de probabilidad de permanecer por debajo
⚠ Obetivo de 2.0°C de París: 47% de probabilidad de permanecer por debajo

Ejecutando los Ejemplos

SOUC_BIN=bin/souc

Raster render (PPM en la salida estándar)

“$SOUC_BIN” run examples/render/triangle_basic.sio > triangle_basic.ppm “$SOUC_BIN” run examples/render/cube_wireframe.sio > cube_wireframe.ppm

Visualizaciones 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

Demostraciones de la biblioteca gráfica

“$SOUC_BIN” ejecuta ejemplos/gráficos/demos/phase3_showcase.sio # 3D “$SOUC_BIN” ejecuta ejemplos/gráficos/demos/phase5_showcase.sio # Animación “$SOUC_BIN” ejecuta ejemplos/gráficos/demos/phase7_showcase.sio # Redes

Actualiza las vistas en raster del sitio web a partir de la salida exacta del compilador

npm —prefix website ejecuta genera:render-assets

Estructura de la Librería

FaseMódulosCapacidades
Fase 1canvas, colores, dibujar, textoPrimitivos básicos, colores ANSI, formas
Fase 2ejes, scatter, grafico_lineal, grafico_barras, histograma, mapa_calorGráficos bidimensionales
Fase 3proyección, wireframe, scatter3dVisualización en 3D
Fase 4entrada, grafico_interativoAjuste de zoom, pán, mouse/tarjeta de teclado
Fase 5animación, sistema_de_partículas, simulación_fluidaAnimación, física
Fase 6diagrama_de_fases, bifurcación, poincare, líneas_de_flujoGráficos científicos
Fase 7gráfico, directed, layout_tree, render_graficoVisualización de redes

Comenzar con nosotros

Ejecuta uno de los presentaciones de fase

bin/souc ejecuta ejemplos/graphics/demos/phase1_showcase.sio