Presentation on theme: "Functional Image Synthesis. Pan An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable."— Presentation transcript:
Functional Image Synthesis
Pan An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable optimizing compiler
What’s an image? Assignment of color to points: R 2 Color Infinite, but color may be transparent Useful generalization: R 2
Expressing functions Use -calculus (Church, Curry, etc): Or, non-anonymously: Currying isomorphism: ( ) Good for partial application
Higher-order functions Apply filter “about” a point:
Implementation An “embedded language”, but compiled. Programs manipulate expression trees. Almost transparent, via overloading. Automatic full inlining. Simplification via smart constructors. First-order CSE and loop hoisting. Easy to reuse for new “language”.
Conclusions Modular & efficient image synthesis DSL design & implementation technique: –Simple, computable semantics –Embed in functional host language –Reusable optimizer & code generator To try: sound, 3D, … Freely available – try it out: http://research.microsoft.com/~conal/pan