anchor.diff:  
       let win = openWindow()
   
  -    let shadowMapSize = Mod.init (V2i(1024, 1024))
  +    let shadowMapSize = Mod.init (V2i(4096, 4096))
   
       let shadowCam = CameraView.lookAt (V3d.III * 2.5) V3d.Zero V3d.OOI
       let shadowProj = Frustum.perspective 60.0 0.1 10.0 1.0
  
positive.code:     let shadowDepth =
          sceneSg [ DefaultSurfaces.vertexColor |> toEffect ]
              |> Sg.uniform "ViewportSize" (Mod.constant (V2i(1024,1024)))
              |> Sg.viewTrafo (shadowCam |> CameraView.viewTrafo |> Mod.constant)
              |> Sg.projTrafo (shadowProj |> Frustum.projTrafo |> Mod.constant)
              |> Sg.compile win.Runtime signature   
              |> RenderTask.renderToDepth shadowMapSize
  
negative.code:     let rotation =
          controller {
              let! dt = differentiate Mod.time
              return fun f -> f + dt.TotalSeconds * 0.6
          }
      let angle = AFun.integrate rotation 0.0
      let lightSpaceView =
  