BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//pretalx.com//pyconde-pydata-2026//speaker//KFMB83
BEGIN:VTIMEZONE
TZID:CET
BEGIN:STANDARD
DTSTART:20001029T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000326T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:pretalx-pyconde-pydata-2026-B8GQ9Z@pretalx.com
DTSTART;TZID=CET:20260415T165500
DTEND;TZID=CET:20260415T172500
DESCRIPTION:Discover how to build a GPU shader generator in pure Python\, w
 ithout having to write a compiler.\n\nWe start by discussing how Pythonic 
 embedded domain-specific languages (EDSLs) can help address the common cha
 llenges of shader programming.\n\nWe then examine the architectural decisi
 ons shared by popular frameworks like Warp and Taichi and outline their li
 mitations. In particular\, their reliance on introspection means supportin
 g only a subset of Python - a language within a language - while compiler-
 like backends necessitate complex implementations in languages like C++.\n
 \nThe talk introduces an alternative architecture making it possible to ov
 ercome these limitations. Instead of introspection\, we capture the progra
 m's logic by tracing execution with proxy objects at Python runtime\, simi
 lar to JAX and PyTorch. Instead of building an IR\, we emit target code ea
 gerly\, line-by-line\, similar to how PyTorch Eager Mode launches computat
 ions. And because we don't implement a compiler\, the implementation remai
 ns 100% Python.\n\nAttendees will leave with a toolbox of Python metaprogr
 amming patterns empowering them to write a code generator in Python withou
 t having to implement a compiler.
DTSTAMP:20260412T141726Z
LOCATION:Palladium [2nd Floor]
SUMMARY:Metashade: Compilerless Immediate-Mode Shader Generation in Pure Py
 thon - Pavlo Penenko
URL:https://pretalx.com/pyconde-pydata-2026/talk/B8GQ9Z/
END:VEVENT
END:VCALENDAR
