anchor.diff:                  
               quad |> Sg.ofIndexedGeometry
   
  -        let sg =
  -            quadSg 
  -                |> Sg.effect [
  -                    DefaultSurfaces.trafo                 |> toEffect
  -                    DefaultSurfaces.constantColor C4f.Red |> toEffect
  -                    DefaultSurfaces.simpleLighting        |> toEffect
  -                  ]
  -               |> Sg.viewTrafo (viewTrafo   |> Mod.map CameraView.viewTrafo )
  -               |> Sg.projTrafo (perspective |> Mod.map Frustum.projTrafo    )
  +        quadSg 
  +            |> Sg.effect [
  +                DefaultSurfaces.trafo                 |> toEffect
  +                DefaultSurfaces.constantColor C4f.Red |> toEffect
  +                DefaultSurfaces.simpleLighting        |> toEffect
  +                ]
  +            |> Sg.viewTrafo (viewTrafo   |> Mod.map CameraView.viewTrafo )
  +            |> Sg.projTrafo (perspective |> Mod.map Frustum.projTrafo    )
   
  -        let task = ctrl.Runtime.CompileRender(ctrl.FramebufferSignature, BackendConfiguration.ManagedOptimized, sg.RenderObjects())
  +    let run argv  =
  +        ChromiumUtilities.unpackCef()
  +        Chromium.init argv
   
  -        ctrl.RenderTask <- task
  +        Ag.initialize()
  +        Aardvark.Init()
  +
  +        use glApp  = new OpenGlApplication()
  +        use leftCtrl   = new Aardvark.Application.WinForms.RenderControl()
  +        let leftGlCtrl = new Aardvark.Application.WinForms.OpenGlRenderControl(glApp.Runtime)
  +        leftCtrl.Implementation <- leftGlCtrl
  +
  +        use rightCtrl   = new Aardvark.Application.WinForms.RenderControl()
  +        let rightGlCtrl = new Aardvark.Application.WinForms.OpenGlRenderControl(glApp.Runtime)
  +        rightCtrl.Implementation <- rightGlCtrl
  +
  +        leftCtrl.RenderTask <- 
  +            RenderTask.ofList [
  +                    leftCtrl.Runtime.CompileClear(leftCtrl.FramebufferSignature,Mod.constant C4f.DarkBlue)
  +                    leftCtrl.Runtime.CompileRender(leftCtrl.FramebufferSignature, createScene leftCtrl)
  +            ]
  +
  +
  +        rightCtrl.RenderTask <- 
  +            RenderTask.ofList [
  +                    leftCtrl.Runtime.CompileClear(rightCtrl.FramebufferSignature,Mod.constant C4f.DarkRed)
  +                    leftCtrl.Runtime.CompileRender(rightCtrl.FramebufferSignature, createScene rightCtrl)
  +            ]
   
           use w = new Form()
  -        let desiredSize = V2i(1280,960)
  +        let desiredSize = V2i(1024,768)
           let mutable initialized = false
           w.Width <- desiredSize.X
           w.Height <- desiredSize.Y
   
  -        let changeViewport (c : Fablish.JavascriptInterop.ClientRect) =
  +        let changeViewport (ctrl : RenderControl) (c : Fablish.JavascriptInterop.ClientRect) =
               let change () = 
                   ctrl.set_Location(Drawing.Point(int c.left, int c.top))
                   ctrl.Size <- Drawing.Size(int c.width,int c.height)
   
               ctrl.Invoke(Action(change)) |> ignore
   
  +
           let onRendered model view =
               {
                   clientSide = """() => { 
  -                    var rect = document.getElementById("renderControl").getBoundingClientRect();
  -                    return { bottom : rect.bottom.toFixed(), height : rect.height.toFixed(), left : rect.left.toFixed(), right : rect.right.toFixed(), top : rect.top.toFixed(), width : rect.width.toFixed() }; 
  +                    var leftRect = document.getElementById("left_renderControl").getBoundingClientRect();
  +                    var rightRect = document.getElementById("right_renderControl").getBoundingClientRect();
  +                    var leftRect_Fixed = { bottom : leftRect.bottom.toFixed(), height : leftRect.height.toFixed(), left : leftRect.left.toFixed(), right : leftRect.right.toFixed(), top : leftRect.top.toFixed(), width : leftRect.width.toFixed() }; 
  +                    var rightRect_Fixed = { bottom : rightRect.bottom.toFixed(), height : rightRect.height.toFixed(), left : rightRect.left.toFixed(), right : rightRect.right.toFixed(), top : rightRect.top.toFixed(), width : rightRect.width.toFixed() }; 
  +                    return JSON.stringify(leftRect_Fixed) + "+" + JSON.stringify(rightRect_Fixed);
                   } """   
                   serverSide = fun (s : string) -> 
  -                    let rect = ClientRect.ofString s
  -                    printfn "clientRect: %A" rect
  -                    changeViewport rect
  -                    None
  +                    match s.Split([|"+"|], StringSplitOptions.RemoveEmptyEntries) with
  +                        | [|leftStr;rightStr|] -> 
  +                            let left = ClientRect.ofString (leftStr.Substring(1,leftStr.Length-1).Replace("\\",""))
  +                            let t =  (rightStr.Substring(0,rightStr.Length-1).Replace("\\",""))
  +                            let right = ClientRect.ofString t
  +                            printfn "clientRect: %A" (left,right)
  +                            changeViewport leftCtrl left
  +                            changeViewport rightCtrl right
  +                            None
  +                        | _ -> failwithf "strange result from js: %A" s
               }
   
           let app = 
  
positive.code: 
          use panel = new Panel()
          panel.Controls.Add browser
          panel.Size <- Drawing.Size(200,200)
          panel.Dock <- DockStyle.Fill
  
          w.Controls.Add ctrl
          w.Controls.Add panel
          w.Width <- desiredSize.X
          w.Height <- desiredSize.Y
          ctrl.BringToFront()
  
          Application.Run(w) 
          0
  
negative.code: 
          let update m a = m
          let view m : DomNode<Action> = 
              div [attribute "class" "container"; Style ["diplay","inline-block"]] [
                  div [ attribute "id" "left_renderControl"; Style [ "height", "600px"; "width", "300px"; "float", "left" ]] [text "render control"]
                  div [ attribute "id" "right_renderControl"; Style [ "height", "600px"; "width", "300px" ; "float", "right"]] [text "render control"]
                  div [] [ button [] [text "abc"]; button [] [text "cde"]]
              ]
  
      let createScene (ctrl : IRenderControl) =
  
          let view = CameraView.LookAt(V3d(2.0,2.0,2.0), V3d.Zero, V3d.OOI)
          let perspective = 
  