Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Functional Image Synthesis Pan • • • • • An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable optimizing compiler Examples What’s an image? • Assignment of color to points: R2 Color • Infinite, but color may be transparent • Useful generalization: R2 a Expressing functions • Use l-calculus (Church, Curry, etc): • Or, non-anonymously: • Currying isomorphism: (ab) g a (b g ) Good for partial application Spatial transforms Images Higher-order functions Apply filter “about” a point: Examples Programming example Another Some details Another 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”. More examples 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