Tutorial: 10:15–11:45 (English)
Functional 3D graphics for the browser in scheme
In this tutorial we will learn how to write advanced 3d graphics pipelines for the browser using the sacr3d library for guile scheme. We will go from a simple point to astonishing interactive fractals !
sacr3d is something between a rendering engine toolbox and a creative coding environment. It was born out of the need of mathematicians to take control over the computer graphics pipeline to visualize unconventional geometric objects; things like fractals generated by Moebius transformations in non-Euclidean geometry or doing ray-tracing in hyperbolic space. We call this “mathematical computer graphics”.
In the process we developed a software that makes it easy for any scheme/lisp developer to write almost any graphical pipeline. The core of the software is an embedded domain specific language (eDSL) that ressembles typed scheme and compiles both to shader and scheme code. On top of it we provide an abstraction that allows to connect rendering pipelines in a functional way. This allows one to write shaders, graphics pipelines and user interaction all in one unified language (scheme).
sacr3d relies on guile-hoot, a scheme to WebAssembly compiler and got inspiration from different related projects:
- shader editors: ShaderToy, ShaderFrog
- embedded shader/GPU DLS in Lisp: varjo / 3bgl
- node user interface: Blender nodes / vvvv / cable.js
Théo Tyburn
https://mathstodon.xyz/@theotyburn
Théo Tyburn is a Master student in Mathematics at the TU Berlin. He is very interested in functional programming, geometry, computer graphics and theorem proving. He did his Bachelor at the Geometry and Mathematical Physics Group of the TU Berlin and currently works at the Fraunhofer Heinrich-Hertz-Institut in Explainable AI.