+require "Vector"
+local V = Vector
+
+require "Primitives"
+local P = Primitives
+
+require "Operations"
+local O = Operations
+
+require "Textures"
+local T = Textures
+
+require "Render"
+
+local lights = {V.new{1,-1,1}}
+
+local plane_normal = V.normalize(V.new{0.0,-1,0.0})
+local texture_y = V.normalize(V.cross(plane_normal,V.x))
+local texture_x = V.cross(texture_y,plane_normal)
+
+local scene = {
+ sdf = P.make_plane(V.new{0,0,0}, plane_normal,
+ T.make_phong_texture(lights,
+ T.map_rectangular(
+ T.make_rainbow_pigment(0.1),
+ texture_x, texture_y),
+ 0.2, 1.0, 0, 1)),
+
+ camera = {location = V.new{-0.5,-5,0},
+ point_at = V.new{-0.5,0,0},
+ right = V.x,
+ fov = 1}}
+
+Render.render(scene, 320, 200, "out/rainbow_wall.ppm")