One thing that this work requires is some from of symbolic differentiation. Basically, given some expression e, you have to compute, via a symbolic analysis on e's structure, a derivative for e, e'. e' can then be used to compute normals used for shading, replacing the need for a hand crafted normal map (you can also approximate normals via sampling, but if you have a functional definition of a surface, why not just use derivatives!).
This definitely requires some compiler support, but the purity of Elm should be helpful in that regard.
This definitely requires some compiler support, but the purity of Elm should be helpful in that regard.