Aleksey Milovidov, co-founder of the ClickHouse DBMS, with the assistance of the AI assistant Claude, published a ray tracing system entirely implemented in SQL. Rendering with lighting simulation based on path tracing is implemented as a single SQL query without user-defined functions (UDF) and without external code integration. The ClickHouse DBMS's ability to save query results in PNG format is used for graphics output. The project works effectively when run in ClickHouse, but with certain errors, it can operate in CedarDB at 33 times slower speed. The project is distributed under the Creative Commons BY-NC-SA license.
Cada píxel representa una fila en una tabla que contiene columnas con coordenadas (X, Y) y representación del color (R, G, B). Las operaciones matemáticas necesarias para los cálculos 3D están construidas sobre tuplas: un vector se codifica como Tuple(Float64, Float64, Float64).
El ciclo para simular múltiples reflejos de luz en superficies se implementa a través de la función SQL arrayFold y se ejecuta dentro de cada fila para paralelizar el renderizado. Se soportan cilindros, toros, esferas y paralelepípedos orientados como primitivas geométricas, sobre los cuales se realizan operaciones de unión y diferencia (eliminación de intersecciones). El paisaje se genera matemáticamente.

Anteriormente, los desarrolladores de la DBMS ClickHouse prepararon un juego tipo Doom escrito en SQL, un emulador RISC-V y un sintetizador de música.
Fuente: opennet.ru
