anchor.diff:  
           use panel = new Panel()
           panel.Controls.Add browser
  -        panel.Size <- Drawing.Size(200,200)
  +        panel.Size <- Drawing.Size(640,480)
           panel.Dock <- DockStyle.Fill
   
  -        w.Controls.Add ctrl
  +        w.Controls.Add leftCtrl
  +        w.Controls.Add rightCtrl
           w.Controls.Add panel
           w.Width <- desiredSize.X
           w.Height <- desiredSize.Y
  -        ctrl.BringToFront()
  +        leftCtrl.BringToFront()
  +        rightCtrl.BringToFront()
   
           Application.Run(w) 
           0
  
positive.code:                 
              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    )
  
          let task = ctrl.Runtime.CompileRender(ctrl.FramebufferSignature, BackendConfiguration.ManagedOptimized, sg.RenderObjects())
  
          ctrl.RenderTask <- task
  
          use w = new Form()
          let desiredSize = V2i(1280,960)
          let mutable initialized = false
          w.Width <- desiredSize.X
          w.Height <- desiredSize.Y
  
          let changeViewport (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() }; 
                  } """   
                  serverSide = fun (s : string) -> 
                      let rect = ClientRect.ofString s
                      printfn "clientRect: %A" rect
                      changeViewport rect
                      None
              }
  
          let app = 
  
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 = 
  