From 04c7be10c993f39902a0768c7a82469e65248e87 Mon Sep 17 00:00:00 2001
From: alice grosch <a.grosch@fz-juelich.de>
Date: Thu, 1 Oct 2020 14:19:59 +0200
Subject: [PATCH] Create base image

---
 CatalystEnabledSimulation/coprocessor.py      |   88 --
 CatalystEnabledSimulation/cpscript.py         |   93 --
 CatalystEnabledSimulation/fedatastructures.py |   44 -
 CatalystEnabledSimulation/fedriver.py         |   47 -
 Dockerfile                                    |   13 +-
 data/waveletElevation.vti                     |  Bin 75276 -> 0 bytes
 data/waveletMaterial.vti                      | 1346 -----------------
 files/pv_server.py                            |   58 -
 notebooks/basic_usage.ipynb                   |  396 -----
 notebooks/catalyst.ipynb                      |  383 -----
 notebooks/custom_protocol.ipynb               |  109 --
 notebooks/large_dataset.ipynb                 |  577 -------
 notebooks/minimal_example.ipynb               |  157 --
 13 files changed, 1 insertion(+), 3310 deletions(-)
 delete mode 100644 CatalystEnabledSimulation/coprocessor.py
 delete mode 100644 CatalystEnabledSimulation/cpscript.py
 delete mode 100644 CatalystEnabledSimulation/fedatastructures.py
 delete mode 100644 CatalystEnabledSimulation/fedriver.py
 delete mode 100644 data/waveletElevation.vti
 delete mode 100644 data/waveletMaterial.vti
 delete mode 100644 files/pv_server.py
 delete mode 100644 notebooks/basic_usage.ipynb
 delete mode 100644 notebooks/catalyst.ipynb
 delete mode 100644 notebooks/custom_protocol.ipynb
 delete mode 100644 notebooks/large_dataset.ipynb
 delete mode 100644 notebooks/minimal_example.ipynb

diff --git a/CatalystEnabledSimulation/coprocessor.py b/CatalystEnabledSimulation/coprocessor.py
deleted file mode 100644
index c8c5d07..0000000
--- a/CatalystEnabledSimulation/coprocessor.py
+++ /dev/null
@@ -1,88 +0,0 @@
-coProcessor = None
-
-def initialize():
-    global coProcessor
-    import paraview
-    from vtk import vtkParallelCore
-    import paraview.servermanager as pvsm
-    import vtk
-    from mpi4py import MPI
-    import os, sys
-
-    paraview.options.batch = True
-    paraview.options.symmetric = True
-    from paraview.modules import vtkRemotingServerManager as CorePython
-    from paraview.modules.vtkRemotingApplication import vtkInitializationHelper
-
-    if not pvsm.vtkProcessModule.GetProcessModule():
-        pvoptions = None
-        if paraview.options.batch:
-            pvoptions = CorePython.vtkPVOptions();
-            pvoptions.SetProcessType(CorePython.vtkPVOptions.PVBATCH)
-            if paraview.options.symmetric:
-                pvoptions.SetSymmetricMPIMode(True)
-        vtkInitializationHelper.Initialize(sys.executable, pvsm.vtkProcessModule.PROCESS_BATCH, pvoptions)
-
-    
-    # we need ParaView 4.2 since ParaView 4.1 doesn't properly wrap
-    # vtkPVPythonCatalyst
-    if pvsm.vtkSMProxyManager.GetVersionMajor() < 4 or (pvsm.vtkSMProxyManager.GetVersionMajor() == 4 and pvsm.vtkSMProxyManager.GetVersionMinor() < 2):
-        print('Must use ParaView v4.2 or greater')
-        sys.exit(0)
-
-    import numpy
-    from paraview.modules import vtkPVCatalyst as catalyst
-    from paraview.modules import vtkPVPythonCatalyst as pythoncatalyst
-    import paraview.simple
-    import paraview.vtk as vtk
-    from paraview.vtk.util import numpy_support
-    paraview.options.batch = True
-    paraview.options.symmetric = True
-
-    coProcessor = catalyst.vtkCPProcessor()
-    pm = paraview.servermanager.vtkProcessModule.GetProcessModule()
-    from mpi4py import MPI
-
-def finalize():
-    global coProcessor
-    coProcessor.Finalize()
-    # if we are running through Python we need to finalize extra stuff
-    # to avoid memory leak messages.
-    import sys, ntpath
-    if ntpath.basename(sys.executable) == 'python':
-        from paraview.modules.vtkRemotingApplication import vtkInitializationHelper
-        vtkInitializationHelper.Finalize()
-
-def addscript(name):
-    global coProcessor
-    from paraview.modules import vtkPVPythonCatalyst as pythoncatalyst
-    pipeline = pythoncatalyst.vtkCPPythonScriptPipeline()
-    pipeline.Initialize(name)
-    coProcessor.AddPipeline(pipeline)
-
-def coprocess(time, timeStep, grid, attributes):
-    global coProcessor
-    import vtk
-    from paraview.modules import vtkPVCatalyst as catalyst
-    import paraview
-    from paraview.vtk.util import numpy_support
-    dataDescription = catalyst.vtkCPDataDescription()
-    dataDescription.SetTimeData(time, timeStep)
-    dataDescription.AddInput("input")
-
-    if coProcessor.RequestDataDescription(dataDescription):
-        import fedatastructures
-        imageData = vtk.vtkImageData()
-        imageData.SetExtent(grid.XStartPoint, grid.XEndPoint, 0, grid.NumberOfYPoints-1, 0, grid.NumberOfZPoints-1)
-        imageData.SetSpacing(grid.Spacing)
-
-        velocity = numpy_support.numpy_to_vtk(attributes.Velocity)
-        velocity.SetName("velocity")
-        imageData.GetPointData().AddArray(velocity)
-
-        pressure = numpy_support.numpy_to_vtk(attributes.Pressure)
-        pressure.SetName("pressure")
-        imageData.GetCellData().AddArray(pressure)
-        dataDescription.GetInputDescriptionByName("input").SetGrid(imageData)
-        dataDescription.GetInputDescriptionByName("input").SetWholeExtent(0, grid.NumberOfGlobalXPoints-1, 0, grid.NumberOfYPoints-1, 0, grid.NumberOfZPoints-1)
-        coProcessor.CoProcess(dataDescription)
diff --git a/CatalystEnabledSimulation/cpscript.py b/CatalystEnabledSimulation/cpscript.py
deleted file mode 100644
index b115bf4..0000000
--- a/CatalystEnabledSimulation/cpscript.py
+++ /dev/null
@@ -1,93 +0,0 @@
-from paraview.simple import *
-from paraview import coprocessing
-
-#--------------------------------------------------------------
-# Code generated from cpstate.py to create the CoProcessor.
-
-
-# ----------------------- CoProcessor definition -----------------------
-
-def CreateCoProcessor():
-  def _CreatePipeline(coprocessor, datadescription):
-    class Pipeline:
-      filename_6_pvti = coprocessor.CreateProducer( datadescription, "input" )
-
-      # create a new 'Parallel ImageData Writer'
-      imageDataWriter1 = servermanager.writers.XMLPImageDataWriter(Input=filename_6_pvti)
-
-      # register the writer with coprocessor
-      # and provide it with information such as the filename to use,
-      # how frequently to write the data, etc.
-      coprocessor.RegisterWriter(imageDataWriter1, filename="fullgrid_%t.pvti", freq=10000)
-
-      Slice1 = Slice( Input=filename_6_pvti, guiName="Slice1", Crinkleslice=0, SliceOffsetValues=[0.0], Triangulatetheslice=1, SliceType="Plane" )
-      Slice1.SliceType.Offset = 0.0
-      Slice1.SliceType.Origin = [9.0, 11.0, 9.0]
-      Slice1.SliceType.Normal = [1.0, 0.0, 0.0]
-
-      # create a new 'Parallel PolyData Writer'
-      parallelPolyDataWriter1 = servermanager.writers.XMLPPolyDataWriter(Input=Slice1)
-
-      # register the writer with coprocessor
-      # and provide it with information such as the filename to use,
-      # how frequently to write the data, etc.
-      coprocessor.RegisterWriter(parallelPolyDataWriter1, filename='slice_%t.pvtp', freq=1000)
-
-    return Pipeline()
-
-  class CoProcessor(coprocessing.CoProcessor):
-    def CreatePipeline(self, datadescription):
-      self.Pipeline = _CreatePipeline(self, datadescription)
-
-  coprocessor = CoProcessor()
-  freqs = {'input': [10, 100]}
-  coprocessor.SetUpdateFrequencies(freqs)
-  return coprocessor
-
-#--------------------------------------------------------------
-# Global variables that will hold the pipeline for each timestep
-# Creating the CoProcessor object, doesn't actually create the ParaView pipeline.
-# It will be automatically setup when coprocessor.UpdateProducers() is called the
-# first time.
-coprocessor = CreateCoProcessor()
-
-#--------------------------------------------------------------
-# Enable Live-Visualizaton with ParaView
-coprocessor.EnableLiveVisualization(True, 1)
-
-
-# ---------------------- Data Selection method ----------------------
-
-def RequestDataDescription(datadescription):
-    "Callback to populate the request for current timestep"
-    global coprocessor
-    if datadescription.GetForceOutput() == True:
-        # We are just going to request all fields and meshes from the simulation
-        # code/adaptor.
-        for i in range(datadescription.GetNumberOfInputDescriptions()):
-            datadescription.GetInputDescription(i).AllFieldsOn()
-            datadescription.GetInputDescription(i).GenerateMeshOn()
-        return
-
-    # setup requests for all inputs based on the requirements of the
-    # pipeline.
-    coprocessor.LoadRequestedData(datadescription)
-
-# ------------------------ Processing method ------------------------
-
-def DoCoProcessing(datadescription):
-    "Callback to do co-processing for current timestep"
-    global coprocessor
-
-    # Update the coprocessor by providing it the newly generated simulation data.
-    # If the pipeline hasn't been setup yet, this will setup the pipeline.
-    coprocessor.UpdateProducers(datadescription)
-
-    # Write output data, if appropriate.
-    coprocessor.WriteData(datadescription);
-
-    # Write image capture (Last arg: rescale lookup table), if appropriate.
-    coprocessor.WriteImages(datadescription, rescale_lookuptable=False)
-
-    # Live Visualization, if enabled.
-    coprocessor.DoLiveVisualization(datadescription, "localhost", 22222)
diff --git a/CatalystEnabledSimulation/fedatastructures.py b/CatalystEnabledSimulation/fedatastructures.py
deleted file mode 100644
index b4b2424..0000000
--- a/CatalystEnabledSimulation/fedatastructures.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import numpy
-
-class GridClass:
-    """
-    We are working with a uniform grid which will be
-    represented as a vtkImageData in Catalyst. It is partitioned
-    in the x-direction only.
-    """
-    def __init__(self, pointDimensions, spacing):
-        from mpi4py import MPI
-        comm = MPI.COMM_WORLD
-        rank = comm.Get_rank()
-        size = comm.Get_size()
-
-        self.XStartPoint = int(pointDimensions[0]*rank/size)
-        self.XEndPoint = int(pointDimensions[0]*(rank+1)/size)
-        if rank+1 != size:
-            self.XEndPoint += 1
-        else:
-            self.XEndPoint = pointDimensions[0]-1
-        self.NumberOfYPoints = pointDimensions[1]
-        self.NumberOfZPoints = pointDimensions[2]
-        self.NumberOfGlobalXPoints = pointDimensions[0]
-
-        self.PointDimensions = pointDimensions
-        self.Spacing = spacing
-
-    def GetNumberOfPoints(self):
-        return (self.XEndPoint-self.XStartPoint+1)*self.PointDimensions[1]*self.PointDimensions[2]
-
-    def GetNumberOfCells(self):
-        return (self.XEndPoint-self.XStartPoint)*(self.PointDimensions[1]-1)*(self.PointDimensions[2]-1)
-
-class AttributesClass:
-    """
-    We have velocity point data and pressure cell data.
-    """
-    def __init__(self, grid):
-        self.Grid = grid
-
-    def Update(self, time):
-        self.Velocity = numpy.zeros((self.Grid.GetNumberOfPoints(), 3))
-        self.Velocity = self.Velocity + time
-        self.Pressure = numpy.random.rand(self.Grid.GetNumberOfCells())
diff --git a/CatalystEnabledSimulation/fedriver.py b/CatalystEnabledSimulation/fedriver.py
deleted file mode 100644
index 78deb07..0000000
--- a/CatalystEnabledSimulation/fedriver.py
+++ /dev/null
@@ -1,47 +0,0 @@
-"""
-A simple example of a Python simulation code working with Catalyst.
-It depends on numpy and mpi4py being available. The environment
-variables need to be set up properly to find Catalyst when running directly
-from python. For Linux
-and Mac machines they should be:
-export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<Catalyst build dir>/lib
-export PYTHONPATH=<Catalyst build dir>/lib:<Catalyst build dir>/lib/site-packages
-
-Alternatively, pvbatch or pvpython can be used which will automatically set up
-system paths for using Catalyst.
-
-When running, Catalyst scripts must be added in on the command line. For example:
-</path/to/pvpython> fedriver.py cpscript.py
-mpirun -np 4 </path/to/pvbatch> -sym fedriver.py cpscript.py
-"""
-from time import sleep
-
-import numpy
-import sys
-from mpi4py import MPI
-
-comm = MPI.COMM_WORLD
-rank = comm.Get_rank()
-
-import fedatastructures
-
-grid = fedatastructures.GridClass([5, 6, 5], [4, 4, 4])
-attributes = fedatastructures.AttributesClass(grid)
-doCoprocessing = True
-
-if doCoprocessing:
-    import coprocessor
-    coprocessor.initialize()
-    for i in sys.argv[1:]:
-        if rank == 0:
-            print('Using Catalyst script', i)
-        coprocessor.addscript(i)
-
-for i in range(10000):
-    sleep(0.5)
-    attributes.Update(i)
-    if doCoprocessing:
-        coprocessor.coprocess(i, i, grid, attributes)
-
-if doCoprocessing:
-    coprocessor.finalize()
diff --git a/Dockerfile b/Dockerfile
index 4f493cf..8ebcb58 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -138,15 +138,4 @@ RUN pip install jupyter-server-proxy \
     && npm cache clean --force \
     && rm -rf $CONDA_DIR/share/jupyter/lab/staging \
     && rm -rf /home/$NB_USER/.cache/yarn \
-    && rm -rf /home/$NB_USER/.node-gyp \
-    && mkdir logs
-
-ENV JUPYTER_LOG_DIR "/home/jovyan/work/logs"
-
-COPY --chown=$NB_UID:$NB_GID notebooks/*.ipynb /home/$NB_USER/work/
-COPY --chown=$NB_UID:$NB_GID files/pv_server.py /home/$NB_USER/work/
-COPY --chown=$NB_UID:$NB_GID data /home/$NB_USER/work/data
-COPY --chown=$NB_UID:$NB_GID CatalystEnabledSimulation  /home/$NB_USER/work/CatalystEnabledSimulation
-
-# Turn off warnings in Python 3.8
-ENV PYTHONWARNINGS "ignore"
+    && rm -rf /home/$NB_USER/.node-gyp
diff --git a/data/waveletElevation.vti b/data/waveletElevation.vti
deleted file mode 100644
index e5544635914944fe21a254e82e88db72bf36da76..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 75276
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
Dn1;ap

diff --git a/data/waveletMaterial.vti b/data/waveletMaterial.vti
deleted file mode 100644
index 010518c..0000000
--- a/data/waveletMaterial.vti
+++ /dev/null
@@ -1,1346 +0,0 @@
-<VTKFile type="ImageData" version="1.0" byte_order="LittleEndian" header_type="UInt64">
-  <ImageData WholeExtent="-10 10 -10 10 -10 10" Origin="0 0 0" Spacing="1 1 1">
-  <Piece Extent="-10 10 -10 10 -10 10">
-    <PointData>
-    </PointData>
-    <CellData Scalars="Material">
-      <DataArray type="Float64" Name="Material" format="ascii" RangeMin="0" RangeMax="5">
-        5 5 5 5 5 5
-        5 5 5 4 4 4
-        4 4 4 3 3 3
-        3 3 5 5 5 5
-        5 5 5 5 4 4
-        4 4 4 4 3 3
-        3 3 3 3 5 5
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        5 5 5 5 5 5
-        5 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 5 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 5 5
-        5 5 5 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        5 5 5 5 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 5 5 5 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 5 4
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 4 3
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 5 5
-        5 5 5 5 5 5
-        5 4 4 4 4 4
-        4 3 3 3 3 3
-        5 5 5 5 5 5
-        5 5 4 4 4 4
-        4 4 3 3 3 3
-        3 3 5 5 5 5
-        5 5 5 4 4 4
-        4 4 4 4 3 3
-        3 3 3 2 5 5
-        5 5 5 5 5 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 5 5
-        5 5 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 2 2
-        5 5 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 5 4 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 1
-        4 4 4 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 4 3 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 5 5 5 5
-        5 5 5 5 4 4
-        4 4 4 4 3 3
-        3 3 3 3 5 5
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        5 5 5 5 5 5
-        5 4 4 4 4 4
-        4 4 3 3 3 3
-        3 2 5 5 5 5
-        5 5 5 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 5 5
-        5 5 5 5 4 4
-        4 4 4 4 4 3
-        3 3 3 3 2 2
-        5 5 5 5 5 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 5 5
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        4 4 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 1 4 4
-        4 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 3 3
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        5 5 5 5 5 5
-        5 5 4 4 4 4
-        4 4 3 3 3 3
-        3 3 5 5 5 5
-        5 5 5 4 4 4
-        4 4 4 4 3 3
-        3 3 3 2 5 5
-        5 5 5 5 5 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 5 5
-        5 5 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        5 5 5 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 5 4 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 4 4 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 2 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 5 5
-        5 5 5 5 5 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        5 5 5 5 5 5
-        5 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 5 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 5 5
-        5 5 5 5 4 4
-        4 4 4 4 4 3
-        3 3 3 3 2 2
-        5 5 5 5 5 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 5 5
-        4 4 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 2 2
-        4 4 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 1
-        4 3 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 2 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 5 5 5 5
-        5 5 5 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 5 5
-        5 5 5 5 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 5 5
-        5 5 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        5 5 5 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 5 4 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 1 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 3 3
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        5 5 5 5 5 5
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 5 5 5 5
-        5 5 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 5 5
-        5 5 5 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        5 5 5 5 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 5 5 5 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 5 5
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        4 4 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 1
-        4 4 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 0 5 5
-        5 5 5 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        5 5 5 5 5 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 5 5 5 5
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 5 5
-        5 4 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 2 2 2
-        5 5 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 4 4 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 1 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 5 5 5 5
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 5 5
-        5 5 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        5 5 5 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 5 5 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 2 2 2 4 4
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 1 4 4
-        4 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 1
-        4 3 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 0 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 0 0
-        5 5 5 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 2
-        2 2 5 5 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 5 4
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        4 4 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 4 4 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 0 0 5 4
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        4 4 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 2 2
-        2 2 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 2 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 4 4
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 2 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 0 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 0 0
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 0
-        0 0 4 4 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 4 4
-        4 4 4 4 4 4
-        4 3 3 3 3 3
-        3 3 2 2 2 2
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 1
-        4 4 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 3 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 0
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 1 0 0 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        4 4 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 4 4 4 4
-        4 4 4 4 3 3
-        3 3 3 3 3 2
-        2 2 2 2 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 4 4
-        4 4 4 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 4 4 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 3 3
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 0 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 0 0
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 4 4
-        4 4 4 4 4 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        4 4 4 4 4 4
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 4 4 4 4
-        4 4 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 4 4
-        4 4 4 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 4 3
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        3 3 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 3 3 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 0
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        0 0 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 0 0 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        0 0 4 4 4 4
-        4 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 4 4
-        4 4 4 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 4 4
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        3 3 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 1 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 3 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 0 0 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 0 0
-        4 4 4 4 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 4 4 4 3
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 1 4 4
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        4 3 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 3 3
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 0 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 0 0
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 0
-        0 0 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        1 0 0 0 0 0
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        0 0 2 1 1 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        0 0 0 0 4 3
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        3 3 3 3 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        1 1 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 0
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        0 0 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 0 0 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        0 0 2 2 2 1
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 0 0 2 1
-        1 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 0 0
-        1 1 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 0 0
-        0 0 3 3 3 3
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 1 1 3 3
-        3 3 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 1 1 1
-        3 3 3 3 3 3
-        3 3 3 2 2 2
-        2 2 2 2 2 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        3 3 3 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 2 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 0
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 0 0 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 0 0
-        2 1 1 1 1 1
-        1 1 1 1 1 1
-        1 0 0 0 0 0
-        0 0 1 1 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        0 0 0 0 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        0 0 0 0 0 0
-        3 3 3 3 3 3
-        3 3 2 2 2 2
-        2 2 2 2 1 1
-        1 1 3 3 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        1 1 1 1 3 3
-        3 3 3 3 3 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 3 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 3 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 0 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 0 0 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 1
-        1 0 0 0 0 0
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        0 0 1 1 1 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        0 0 0 0 1 1
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 0 0 0 0
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 0 0 0 0
-        0 0 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 0 0
-        0 0 0 0 3 3
-        3 3 3 3 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        3 3 3 3 3 3
-        2 2 2 2 2 2
-        2 2 2 1 1 1
-        1 1 3 3 3 3
-        3 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 3 3
-        3 3 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        3 3 3 2 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 3 3 2 2
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 2 2
-        2 2 2 2 2 2
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        2 2 2 2 2 2
-        2 2 2 2 2 1
-        1 1 1 1 1 1
-        1 1 2 2 2 2
-        2 2 2 2 2 2
-        1 1 1 1 1 1
-        1 1 1 0 2 2
-        2 2 2 2 2 2
-        2 1 1 1 1 1
-        1 1 1 1 0 0
-        2 2 2 2 2 2
-        2 2 1 1 1 1
-        1 1 1 1 1 0
-        0 0 2 2 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 2 2
-        2 2 2 1 1 1
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        2 2 2 2 1 1
-        1 1 1 1 1 1
-        1 1 1 0 0 0
-        0 0 2 2 1 1
-        1 1 1 1 1 1
-        1 1 1 1 0 0
-        0 0 0 0 1 1
-        1 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 0 0
-        1 1 1 1 1 1
-        1 1 1 1 1 0
-        0 0 0 0 0 0
-        0 0 1 1 1 1
-        1 1 1 1 1 1
-        0 0 0 0 0 0
-        0 0 0 0 1 1
-        1 1 1 1 1 1
-        1 0 0 0 0 0
-        0 0 0 0 0 0
-        1 1 1 1 1 1
-        1 1 0 0 0 0
-        0 0 0 0 0 0
-        0 0
-      </DataArray>
-    </CellData>
-  </Piece>
-  </ImageData>
-</VTKFile>
diff --git a/files/pv_server.py b/files/pv_server.py
deleted file mode 100644
index 01fd358..0000000
--- a/files/pv_server.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# import to process args
-import os
-
-# import paraview modules.
-from paraview.web import pv_wslink
-from paraview.web import protocols as pv_protocols
-
-from paraview import simple
-from wslink import server
-
-try:
-    import argparse
-except ImportError:
-    # since  Python 2.6 and earlier don't have argparse, we simply provide
-    # the source for the same as _argparse and we use it instead.
-    from vtk.util import _argparse as argparse
-
-# =============================================================================
-# Create custom PVServerProtocol class to handle clients requests
-# =============================================================================
-
-class _DemoServer(pv_wslink.PVServerProtocol):
-    authKey = "wslink-secret"
-    def initialize(self):
-        # Bring used components
-        self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler())
-        self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort())
-        self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery())
-        self.updateSecret(_DemoServer.authKey)
-
-        # Disable interactor-based render calls
-        simple.GetRenderView().EnableRenderOnInteraction = 0
-        simple.GetRenderView().Background = [0,0,0]
-        cone = simple.Cone()
-        simple.Show(cone)
-        simple.Render()
-
-        # Update interaction mode
-        pxm = simple.servermanager.ProxyManager()
-        interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings')
-        interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom']
-
-# =============================================================================
-# Main: Parse args and start server
-# =============================================================================
-
-if __name__ == "__main__":
-    # Create argument parser
-    parser = argparse.ArgumentParser(description="ParaViewWeb Demo")
-
-    # Add default arguments
-    server.add_arguments(parser)
-
-    # Extract arguments
-    args = parser.parse_args()
-
-    # Start server
-    server.start_webserver(options=args, protocol=_DemoServer)
\ No newline at end of file
diff --git a/notebooks/basic_usage.ipynb b/notebooks/basic_usage.ipynb
deleted file mode 100644
index 1878334..0000000
--- a/notebooks/basic_usage.ipynb
+++ /dev/null
@@ -1,396 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<img src=\"https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/raw/JupyterCon2020/img/logo.png\"\n",
-    "     style=\"float:right; width:25%; height:25%; margin-top:25px;\">\n",
-    "\n",
-    "# Jupyter for interactive In-Situ Visualization with ParaView/Catalyst\n",
-    "\n",
-    "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.version.fz-juelich.de%2Fgrosch1%2Fpvlink_demo_for_jupytercon/JupyterCon2020)  \n",
-    "Try out the *pvlink* extension and the example notebooks in binder."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Behind the Scenes\n",
-    "\n",
-    "To checkout how *pvlink* works and what happens behind the scenes, [click here](https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/blob/JupyterCon2020/BehindTheScenes.md)."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Basic Usage"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "> If you are trying this notebook out on Binder, you need to use [jupyter server proxy](#Using-jupyter-server-proxy)."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## SimpleRenderer"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Start a ParaViewWeb server on the command line, for example using the code from the [official ParaView example](https://kitware.github.io/paraviewweb/examples/RemoteRenderer.html#Using-ParaView-as-server)."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%script bash --bg\n",
-    "pvpython pv_server.py --port 1234 --authKey wslink-secret"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "You can then connect to the ParaViewWeb Server using a `SimpleRenderer`, passing the session URL and the authentication key."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from pvlink import SimpleRenderer\n",
-    "\n",
-    "simple = SimpleRenderer(sessionURL='ws://localhost:1234/ws', authKey='wslink-secret')\n",
-    "display(simple)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "> If you are trying this notebook out on Binder, you need to use [jupyter server proxy](#Using-jupyter-server-proxy)."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Note that in this setup, it is not possible to change the content to be rendered from within the notebook. The content is determined only at the start of the ParaViewWeb server."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## RemoteRenderer"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Most likely you *do* want to be able to make changes to the displayed source. In this case you should use the `RemoteRenderer`, which handles the ParaViewWeb server for you. You can still pass all arguments of the webserver as python arguments, in both short and long form."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from pvlink import RemoteRenderer"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "print(RemoteRenderer.webserver_arguments_help())"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "For example, `active_renderer = RemoteRenderer(port=8080)` and `active_renderer = RemoteRenderer(p=8080)` would both set the server to start on port 8080.\n",
-    "\n",
-    "You can also pass no arguments. In that case, the next free port starting from 8080 will be chosen and a random authKey will be generated for you."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Using RemoteRenderer"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "> If you are trying this notebook out on Binder, you need to use [jupyter server proxy](#Using-jupyter-server-proxy)."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "renderer = RemoteRenderer()\n",
-    "display(renderer)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "print('renderer port:\\t', renderer.port)\n",
-    "print('renderer authKey:', renderer.authKey)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "The window that appears will be blank since there are no views or sources. These can be created using ParaView's python module."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from paraview import simple\n",
-    "from pvlink.utility import SetRecommendedRenderSettings\n",
-    "\n",
-    "# Create a view and...\n",
-    "view1 = simple.CreateView('RenderView', 'view1')\n",
-    "# ...disable interactor-based render calls and\n",
-    "# ensure pvserver-side rendering (if applicable)\n",
-    "SetRecommendedRenderSettings(view1)\n",
-    "# Create and show a source\n",
-    "source1 = simple.Cone()\n",
-    "simple.Show(source1, view1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Update the renderer widget to display the changes\n",
-    "renderer.update_render()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Multiple views"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "You can create more than one view in ParaView. Per default, a `RemoteRenderer`will show the active view."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "print(renderer.viewID) # viewID = -1 will always show active view"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Create a second view\n",
-    "view2 = simple.CreateView('RenderView', 'view2')\n",
-    "view2.Background = [0,0,0]\n",
-    "SetRecommendedRenderSettings(view2)\n",
-    "# And show a different source in it\n",
-    "source2 = simple.Sphere()\n",
-    "simple.Show(source2, view2)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "The renderer will now show the second view, since it is the currently active one."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "renderer.update_render()\n",
-    "display(renderer)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "If you want a `RemoteRenderer` to show a fixed view, regardless of which view is active, you can do so by setting its viewID."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "renderer.viewID = view2.GetGlobalIDAsString()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Changing the active view will now not change the view in the `RemoteRenderer` anymore."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "simple.SetActiveView(view1)\n",
-    "renderer.update_render()\n",
-    "display(renderer)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Using jupyter server proxy"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "`pvlink` supports the usage of [jupyter server proxy](https://github.com/jupyterhub/jupyter-server-proxy). If your notebook is not running locally and you cannot or do not want to tunnel the ParaViewWeb server to your local workstation, you should use *jupyter server proxy*.\n",
-    "\n",
-    "To do so, you need to specify the baseURL behind which your notebook is running in the baseURL initialization argument of your `RemoteRenderer`.\n",
-    "> *Example:* If your notebook is running at http://localhost:8888 and you would access a process running on port 1234 via http://localhost:8888/proxy/1234, the baseURL would be the part before \"proxy\", localhost:8888.\n",
-    "\n",
-    "If your notebook is running on HTTPS, set `useJupyterServerProxyHttps=True` to use the HTTPS certificates of the notebook server. This is necessary and keeps the connection between the client browser and the (jupyter server) proxy encrypted.\n",
-    "You also need to set `disableExternalPort=True` in order to disable port checking during the WebSocket opening handshake. Otherwise, the connection will fail with a port mismatch error as the notebook and the webserver do not run on the same port."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "For example, for a notebook running on https://jupyter-jsc.fz-juelich.de, the `RemoteRenderer` would be setup like this:\n",
-    "```proxied_renderer = RemoteRenderer(baseURL='jupyter-jsc.fz-juelich.de/user/<user>/<workspace>', \n",
-    "                                  disableExternalPort=True,\n",
-    "                                  useJupyterServerProxyHttps=True)```"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# You will most likely have to change the baseURL to the URL at which your notebook server is running\n",
-    "proxied_renderer = RemoteRenderer(baseURL='localhost:8888', \n",
-    "                                  disableExternalPort=True,\n",
-    "                                  useJupyterServerProxy=True) # useJupyterServerProxyHttps if https"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "For more information on how to use the `RemoteRenderer`, see the [RemoteRenderer section](#RemoteRenderer) of this notebook."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from paraview import simple\n",
-    "from pvlink.utility import SetRecommendedRenderSettings\n",
-    "\n",
-    "# Create a view and...\n",
-    "view3 = simple.CreateView('RenderView', 'view3')\n",
-    "# ...disable interactor-based render calls and\n",
-    "# ensure pvserver-side rendering (if applicable)\n",
-    "SetRecommendedRenderSettings(view3)\n",
-    "# Create and show a source\n",
-    "source3 = simple.Box()\n",
-    "simple.Show(source3, view3)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "proxied_renderer.viewID = view3.GetGlobalIDAsString()\n",
-    "display(proxied_renderer)"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "PyParaView-5.8",
-   "language": "python",
-   "name": "pyparaview-5.8"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.8"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/catalyst.ipynb b/notebooks/catalyst.ipynb
deleted file mode 100644
index f5f0966..0000000
--- a/notebooks/catalyst.ipynb
+++ /dev/null
@@ -1,383 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<img src=\"https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/raw/JupyterCon2020/img/logo.png\"\n",
-    "     style=\"float:right; width:25%; height:25%; margin-top:25px;\">\n",
-    "\n",
-    "# Jupyter for interactive In-Situ Visualization with ParaView/Catalyst\n",
-    "\n",
-    "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.version.fz-juelich.de%2Fgrosch1%2Fpvlink_demo_for_jupytercon/JupyterCon2020)  \n",
-    "Try out the *pvlink* extension and the example notebooks in binder."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Catalyst example"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import os\n",
-    "import ipywidgets as widgets\n",
-    "\n",
-    "from paraview import simple\n",
-    "from pvlink import RemoteRenderer\n",
-    "from pvlink.utility import SetRecommendedRenderSettings, ResetCamera"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Start a pvserver"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%bash --bg --proc server_process\n",
-    "export OMP_NUM_THREADS=1\n",
-    "pkill -f pvserver",
-    "pvserver --server-port=11223 > ${JUPYTER_LOG_DIR}/pvserver.log 2>&1"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Start the Catalyst enabled simulation"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%bash --bg --proc catalyst_process\n",
-    "export OMP_NUM_THREADS=1\n",
-    "pkill -f pvpython",
-    "cd CatalystEnabledSimulation\n",
-    "pvpython ./fedriver.py ./cpscript.py > ${JUPYTER_LOG_DIR}/simulation.log 2>&1"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Setup the RemoteRenderer"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "jupyter_url = 'jupyter-jsc.fz-juelich.de' + os.environ.get('JUPYTERHUB_SERVICE_PREFIX', '/')\n",
-    "renderer = RemoteRenderer(pvserverHost='localhost', pvserverPort = 11223, \n",
-    "                          baseURL=jupyter_url, \n",
-    "                          useJupyterServerProxyHttps=True, disableExternalPort=True)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Create a view\n",
-    "view1 = simple.FindViewOrCreate('view1', 'RenderView')\n",
-    "SetRecommendedRenderSettings(view1)\n",
-    "view1.Background = [0, 0, 0]\n",
-    "view1.ShowAnnotation = 1\n",
-    "renderer.viewID = view1.GetGlobalIDAsString()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Establish a Catalyst connection"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "> Currently, this uses a custom python library patched into ParaView to enable establishing Catayst connections with python without a GUI interface.  \n",
-    "> Starting from ParaView 5.9, a Catalyst python library capable of such a thing should be included by default."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "catalyst = simple.CatalystConnection()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# open port for catalyst connection\n",
-    "catalyst.Start()\n",
-    "catalyst.AddUpdateFunction(renderer.update_render)\n",
-    "catalyst.BlockTillConnected();"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# wait till simulation connected\n",
-    "catalyst.BlockTillConnected()\n",
-    "# extract data from simulation\n",
-    "# supplying a source name, that can be used to find the ParaView source.\n",
-    "# In case of different named input, or multiple input ports, alows to choose the desired input, that should be extracted\n",
-    "extract = catalyst.Extract('extract')\n",
-    "# block till there is an update for the simulation data\n",
-    "catalyst.BlockTillNextUpdate()\n",
-    "# display simulation data\n",
-    "simple.SetActiveSource(extract)\n",
-    "extractDisplay = simple.Show(extract, view1)\n",
-    "\n",
-    "ResetCamera(view1, renderer)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Handle data with ParaView"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# set scalar coloring\n",
-    "simple.ColorBy(extractDisplay, ('CELLS', 'pressure'))\n",
-    "\n",
-    "# rescale color and/or opacity maps used to include current data range\n",
-    "extractDisplay.RescaleTransferFunctionToDataRange(True, False)\n",
-    "\n",
-    "# show color bar/color legend\n",
-    "extractDisplay.SetScalarBarVisibility(view1, True)\n",
-    "\n",
-    "# get color transfer function/color map for 'pressure'\n",
-    "pressureLUT = simple.GetColorTransferFunction('pressure')\n",
-    "pressureLUT.RescaleTransferFunction(0.0, 1.0)\n",
-    "pressureLUT.ApplyPreset('Rainbow Desaturated', True)\n",
-    "\n",
-    "# get opacity transfer function/opacity map for 'pressure'\n",
-    "pressurePWF = simple.GetOpacityTransferFunction('pressure')\n",
-    "pressurePWF.RescaleTransferFunction(0.0, 1.0)\n",
-    "\n",
-    "# change representation type, for example wireframe or volume rendering\n",
-    "extractDisplay.SetRepresentationType('Wireframe');\n",
-    "# extractDisplay.SetRepresentationType('Volume');"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Setup interacts with ipywidgets"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "#### Set representation"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "dropdown = widgets.Dropdown(\n",
-    "    options=['Wireframe', 'Volume'],\n",
-    "#     value='Wireframe',\n",
-    "    description='Representation:',\n",
-    "    style={'description_width': '100pt'}\n",
-    ")\n",
-    "\n",
-    "def change_representation(change):\n",
-    "    if change['new'] == 'Wireframe':\n",
-    "        extractDisplay.SetRepresentationType('Wireframe')\n",
-    "    elif change['new'] == 'Volume':\n",
-    "        extractDisplay.SetRepresentationType('Volume')\n",
-    "        \n",
-    "dropdown.observe(change_representation, 'value')"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "#### Pause/unpause"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "pause_button = widgets.Button(\n",
-    "    description='Pause',\n",
-    "    button_style='warning',\n",
-    "    tooltip='Pause catalyst simulation',\n",
-    "    icon='pause',\n",
-    "    disabled=False\n",
-    ")\n",
-    "unpause_button = widgets.Button(\n",
-    "    description='Unpause',\n",
-    "    button_style='success', \n",
-    "    tooltip='Unpause catalyst simulation',\n",
-    "    icon='play',\n",
-    "    disabled=True\n",
-    ")\n",
-    "\n",
-    "def pause(button):\n",
-    "    pause_button.disabled = True\n",
-    "    unpause_button.disabled = False\n",
-    "    catalyst.SetPauseSimulation(True)\n",
-    "\n",
-    "def unpause(button):\n",
-    "    pause_button.disabled = False\n",
-    "    unpause_button.disabled = True\n",
-    "    catalyst.SetPauseSimulation(False)\n",
-    "\n",
-    "pause_button.on_click(pause)\n",
-    "unpause_button.on_click(unpause)\n",
-    "\n",
-    "buttons = widgets.HBox([unpause_button, pause_button])"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "#### Show timestep"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from threading import Thread\n",
-    "from time import sleep\n",
-    "\n",
-    "timestep = widgets.Label(\n",
-    "    value=\"timestep: 0\"\n",
-    ")\n",
-    "\n",
-    "def show_timestep(widget):\n",
-    "    while True:\n",
-    "        step = catalyst.GetTimeStep()\n",
-    "        widget.value = \"timestep: {}\".format(step)\n",
-    "        sleep(0.5)\n",
-    "    \n",
-    "thread = Thread(target=show_timestep, args=(timestep,))\n",
-    "thread.start()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Display widgets and renderer"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "widget_layout = widgets.HBox(children=[dropdown, buttons, timestep],\n",
-    "                             layout={'margin': '4px', 'justify_content': 'space-between'})\n",
-    "renderer.layout.height = '100%'"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "26cddb46ff914ff7ac23810181efc442",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "VBox(children=(HBox(children=(Dropdown(description='Representation:', options=('Wireframe', 'Volume'), style=D…"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "widgets.VBox(children=[widget_layout, renderer], layout={'height': '800px'}) "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "PyParaView-5.8",
-   "language": "python",
-   "name": "pyparaview-5.8"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.8"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/custom_protocol.ipynb b/notebooks/custom_protocol.ipynb
deleted file mode 100644
index 74bd680..0000000
--- a/notebooks/custom_protocol.ipynb
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<img src=\"https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/raw/JupyterCon2020/img/logo.png\"\n",
-    "     style=\"float:right; width:25%; height:25%; margin-top:25px;\">\n",
-    "\n",
-    "# Jupyter for interactive In-Situ Visualization with ParaView/Catalyst\n",
-    "\n",
-    "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.version.fz-juelich.de%2Fgrosch1%2Fpvlink_demo_for_jupytercon/JupyterCon2020)  \n",
-    "Try out the *pvlink* extension and the example notebooks in binder."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Using custom protocols"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "You can define your own pipeline which should be run on server start. It will then automically run when the  ParaViewWeb server starts up.  \n",
-    "This is equivalent to defining a pipeline in an external pv_server.py file (see the [SimpleRenderer](basic_usage.ipynb#SimpleRenderer))."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "To define your custom pipeline, first you need define a class which inherits from `pv_wslink.PVServerProtocol` and add your pipeline there. Per default, the `RemoteRenderer` shows the active view. To ensure that the view you created in the pipeline is the one shown in the rendering widget and does not get replaced by a new active view, we need to make it available to the outside and later on bind the viewID to the rendering widget."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from paraview import simple\n",
-    "from paraview.web import pv_wslink\n",
-    "from paraview.web import protocols as pv_protocols\n",
-    "\n",
-    "from pvlink.utility import SetRecommendedRenderSettings\n",
-    "\n",
-    "\n",
-    "class CustomServer(pv_wslink.PVServerProtocol):\n",
-    "    authKey = 'wslink-secret'\n",
-    "\n",
-    "    def initialize(self):\n",
-    "        # Bring used components\n",
-    "        self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler())\n",
-    "        self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort())\n",
-    "        self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery())\n",
-    "        # Update authentication key to use\n",
-    "        self.updateSecret(CustomServer.authKey)\n",
-    "\n",
-    "        # Your pipeline\n",
-    "        custom_view = simple.CreateView('RenderView', 'SphereView')\n",
-    "        SetRecommendedRenderSettings(custom_view)\n",
-    "        custom_viewID = custom_view.GetGlobalIDAsString()\n",
-    "        # Make the viewID available so we can bind our widget to the correct view\n",
-    "        self.setSharedObject('viewID', custom_viewID)\n",
-    "        sphere = simple.Sphere()\n",
-    "        simple.Show(sphere, custom_view)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from pvlink import RemoteRenderer\n",
-    "\n",
-    "custom_renderer = RemoteRenderer(protocol=CustomServer, a='mysecretkey')\n",
-    "# Bind the viewID to the widget to avoid it showing a different view\n",
-    "# when a different view is set to the active view\n",
-    "custom_renderer.viewID = custom_renderer.protocol.getSharedObject('viewID')\n",
-    "display(custom_renderer)"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.8"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/large_dataset.ipynb b/notebooks/large_dataset.ipynb
deleted file mode 100644
index 2479482..0000000
--- a/notebooks/large_dataset.ipynb
+++ /dev/null
@@ -1,577 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<img src=\"https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/raw/JupyterCon2020/img/logo.png\"\n",
-    "     style=\"float:right; width:25%; height:25%; margin-top:25px;\">\n",
-    "\n",
-    "# Jupyter for interactive In-Situ Visualization with ParaView/Catalyst\n",
-    "\n",
-    "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.version.fz-juelich.de%2Fgrosch1%2Fpvlink_demo_for_jupytercon/JupyterCon2020)  \n",
-    "Try out the *pvlink* extension and the example notebooks in binder."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Large dataset with a parallel `pvserver`"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Start a parallel ParaView server on the command line, for example via `$ mpirun -np <numberOfProc> ./pvserver`.\n",
-    "\n",
-    "In this example, 64 compute nodes were used for a dataset of approximatly 1.2TB.\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import ipywidgets as widgets\n",
-    "import os\n",
-    "import pvlink\n",
-    "\n",
-    "from paraview.simple import *"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Setup pvlink renderer\n",
-    "We are using *jupyter server proxy* to access our ParaViewWeb server since it is running on the HPC system."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "renderer = pvlink.RemoteRenderer(\n",
-    "    baseURL='jupyter-jsc.fz-juelich.de'+os.environ['JUPYTERHUB_SERVICE_PREFIX'], \n",
-    "    disableExternalPort=True, useJupyterServerProxyHttps=True,\n",
-    "    pvserverHost=\"localhost\", pvserverPort=11111,\n",
-    "    timeout=\"0\"\n",
-    ")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Setup paraview pipeline"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Setup RenderView"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "renderView = CreateView('RenderView', 'view')\n",
-    "pvlink.utility.SetRecommendedRenderSettings(renderView)\n",
-    "\n",
-    "renderView.Background = [0, 0, 0]\n",
-    "renderView.OrientationAxesVisibility = 0\n",
-    "renderView.ShowAnnotation = 1"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Read .xmf file"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "box2xmf = XDMFReader(FileNames=['./visu/box2c.xmf'])\n",
-    "box2xmf.GridStatus = ['Structured Grid']\n",
-    "box2xmf.UpdatePipeline()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# box2xmfDisplay = Show(box2xmf, renderView)\n",
-    "# box2xmfDisplay.SetRepresentationType('Volume')"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Hide(box2xmf, renderView)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Apply filters"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "contour = Contour(Input=box2xmf)\n",
-    "contour.Isosurfaces = [0.3]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "contourDisplay = Show(contour, renderView, 'GeometryRepresentation')\n",
-    "contourDisplay.SetRepresentationType('Surface')\n",
-    "contourDisplay.RescaleTransferFunctionToDataRange(True, False)\n",
-    "contourDisplay.SetScalarBarVisibility(renderView, True);"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "ColorBy(contourDisplay, ('POINTS', 'PS'))\n",
-    "psLUT = GetColorTransferFunction('PS')\n",
-    "psLUT.ApplyPreset('Blue Orange (divergent)', True);"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### Reset camera and focal point and display renderer"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "pvlink.utility.ResetCamera(renderView, renderer)\n",
-    "renderer.update_render()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "9b848c6e88764ef3b4ee04b406a3e7a1",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "Box(children=(RemoteRenderer(authKey='1da0ea24ad20daada608fc5de87325fb709b07fb8816cb7e', sessionURL='wss://jup…"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "renderContainer = widgets.Box(children=[renderer], layout={'height': '800px'})\n",
-    "display(renderContainer)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Print memory usage information"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "dataInfo = box2xmf.GetDataInformation()\n",
-    "\n",
-    "memory_size = dataInfo.DataInformation.GetMemorySize()\n",
-    "number_points = dataInfo.DataInformation.GetNumberOfPoints()\n",
-    "number_cells = dataInfo.DataInformation.GetNumberOfCells()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from paraview import benchmark\n",
-    "memuse = benchmark.logbase.get_memuse()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Number of points:\t 77976270099\n",
-      "Number of cells:\t 77629109375\n",
-      "Memory size:\t\t 1218379428\n"
-     ]
-    }
-   ],
-   "source": [
-    "print(\"Number of points:\\t\", number_points)\n",
-    "print(\"Number of cells:\\t\", number_cells)\n",
-    "print(\"Memory size:\\t\\t\", memory_size)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "CL[0] 252244 / 52058712\n",
-      "DS_RS[0] 9798604 / 52058712\n",
-      "DS_RS[1] 9676520 / 52058712\n",
-      "DS_RS[2] 9675744 / 52058712\n",
-      "DS_RS[3] 9698376 / 52058712\n",
-      "DS_RS[4] 9674232 / 51420436\n",
-      "DS_RS[5] 9698396 / 51420436\n",
-      "DS_RS[6] 9698368 / 51420420\n",
-      "DS_RS[7] 9720144 / 51420420\n",
-      "DS_RS[8] 9677052 / 49780008\n",
-      "DS_RS[9] 9698408 / 49780008\n",
-      "DS_RS[10] 9698244 / 49780008\n",
-      "DS_RS[11] 9720116 / 49780008\n",
-      "DS_RS[12] 9677580 / 52932288\n",
-      "DS_RS[13] 9698372 / 52932288\n",
-      "DS_RS[14] 10184256 / 52932288\n",
-      "DS_RS[15] 9720208 / 52932288\n",
-      "DS_RS[16] 9675208 / 51310944\n",
-      "DS_RS[17] 9698412 / 51310944\n",
-      "DS_RS[18] 9698252 / 51310944\n",
-      "DS_RS[19] 9720132 / 51310944\n",
-      "DS_RS[20] 9676176 / 50058232\n",
-      "DS_RS[21] 9698400 / 50058232\n",
-      "DS_RS[22] 9698252 / 50058232\n",
-      "DS_RS[23] 9720176 / 50058232\n",
-      "DS_RS[24] 9698896 / 51642404\n",
-      "DS_RS[25] 9719724 / 51642404\n",
-      "DS_RS[26] 9694356 / 51642404\n",
-      "DS_RS[27] 9717364 / 51642404\n",
-      "DS_RS[28] 9696288 / 49589292\n",
-      "DS_RS[29] 9717012 / 49589292\n",
-      "DS_RS[30] 9698384 / 49589292\n",
-      "DS_RS[31] 9720068 / 49589292\n",
-      "DS_RS[32] 9674236 / 51590984\n",
-      "DS_RS[33] 9697320 / 51590984\n",
-      "DS_RS[34] 9695640 / 51590984\n",
-      "DS_RS[35] 9720200 / 51590984\n",
-      "DS_RS[36] 9669292 / 51414880\n",
-      "DS_RS[37] 9690744 / 51414880\n",
-      "DS_RS[38] 9690856 / 51414880\n",
-      "DS_RS[39] 9712580 / 51414880\n",
-      "DS_RS[40] 9698872 / 51644772\n",
-      "DS_RS[41] 9721652 / 51644772\n",
-      "DS_RS[42] 9698368 / 51644772\n",
-      "DS_RS[43] 9720204 / 51644772\n",
-      "DS_RS[44] 9691768 / 51275920\n",
-      "DS_RS[45] 9712468 / 51275920\n",
-      "DS_RS[46] 9691184 / 51275920\n",
-      "DS_RS[47] 9713080 / 51275920\n",
-      "DS_RS[48] 9698792 / 49737408\n",
-      "DS_RS[49] 9719596 / 49737408\n",
-      "DS_RS[50] 9695728 / 49737408\n",
-      "DS_RS[51] 9720204 / 49737408\n",
-      "DS_RS[52] 9691736 / 49641216\n",
-      "DS_RS[53] 9709584 / 49641216\n",
-      "DS_RS[54] 9690940 / 49641216\n",
-      "DS_RS[55] 9713032 / 49641216\n",
-      "DS_RS[56] 9717404 / 49663596\n",
-      "DS_RS[57] 9719620 / 49663596\n",
-      "DS_RS[58] 9719616 / 49663596\n",
-      "DS_RS[59] 9720208 / 49663596\n",
-      "DS_RS[60] 9713104 / 51323968\n",
-      "DS_RS[61] 9712532 / 51323968\n",
-      "DS_RS[62] 9712552 / 51323968\n",
-      "DS_RS[63] 9712944 / 51323968\n",
-      "DS_RS[64] 9672880 / 51159524\n",
-      "DS_RS[65] 9698396 / 51159524\n",
-      "DS_RS[66] 9698324 / 51159524\n",
-      "DS_RS[67] 9720192 / 51159524\n",
-      "DS_RS[68] 9677648 / 51810388\n",
-      "DS_RS[69] 9698304 / 51810388\n",
-      "DS_RS[70] 9698244 / 51810388\n",
-      "DS_RS[71] 9720100 / 51810388\n",
-      "DS_RS[72] 9698928 / 51732124\n",
-      "DS_RS[73] 9719588 / 51732124\n",
-      "DS_RS[74] 9698388 / 51732124\n",
-      "DS_RS[75] 9720108 / 51732124\n",
-      "DS_RS[76] 9698844 / 51468060\n",
-      "DS_RS[77] 9716976 / 51468060\n",
-      "DS_RS[78] 9698264 / 51468060\n",
-      "DS_RS[79] 9720196 / 51468060\n",
-      "DS_RS[80] 9698884 / 51033504\n",
-      "DS_RS[81] 9719728 / 51033504\n",
-      "DS_RS[82] 9698376 / 51033504\n",
-      "DS_RS[83] 9720200 / 51033504\n",
-      "DS_RS[84] 9691768 / 51860072\n",
-      "DS_RS[85] 9710932 / 51860072\n",
-      "DS_RS[86] 9689360 / 51860072\n",
-      "DS_RS[87] 9713036 / 51860072\n",
-      "DS_RS[88] 9720236 / 51843416\n",
-      "DS_RS[89] 9719720 / 51843416\n",
-      "DS_RS[90] 9719712 / 51843416\n",
-      "DS_RS[91] 9720080 / 51843416\n",
-      "DS_RS[92] 9713016 / 48787168\n",
-      "DS_RS[93] 9710848 / 48787168\n",
-      "DS_RS[94] 9712500 / 48787168\n",
-      "DS_RS[95] 9713080 / 48787168\n",
-      "DS_RS[96] 9677500 / 48855676\n",
-      "DS_RS[97] 9698372 / 48855676\n",
-      "DS_RS[98] 9698340 / 48855676\n",
-      "DS_RS[99] 9718912 / 48855676\n",
-      "DS_RS[100] 9670576 / 49831920\n",
-      "DS_RS[101] 9691232 / 49831920\n",
-      "DS_RS[102] 9689340 / 49831920\n",
-      "DS_RS[103] 9713028 / 49831920\n",
-      "DS_RS[104] 9698844 / 49828244\n",
-      "DS_RS[105] 9719536 / 49828244\n",
-      "DS_RS[106] 9691128 / 49828244\n",
-      "DS_RS[107] 9711152 / 49828244\n",
-      "DS_RS[108] 9698784 / 51216260\n",
-      "DS_RS[109] 9719548 / 51216260\n",
-      "DS_RS[110] 9691236 / 51216260\n",
-      "DS_RS[111] 9712912 / 51216260\n",
-      "DS_RS[112] 9698804 / 51298720\n",
-      "DS_RS[113] 9719716 / 51298720\n",
-      "DS_RS[114] 9691280 / 51298720\n",
-      "DS_RS[115] 9713080 / 51298720\n",
-      "DS_RS[116] 9691680 / 48907260\n",
-      "DS_RS[117] 9708536 / 48907260\n",
-      "DS_RS[118] 9684196 / 48907260\n",
-      "DS_RS[119] 9704272 / 48907260\n",
-      "DS_RS[120] 9718600 / 49117340\n",
-      "DS_RS[121] 9711960 / 49117340\n",
-      "DS_RS[122] 9719612 / 49117340\n",
-      "DS_RS[123] 9713084 / 49117340\n",
-      "DS_RS[124] 9713076 / 48831116\n",
-      "DS_RS[125] 9705408 / 48831116\n",
-      "DS_RS[126] 9712460 / 48831116\n",
-      "DS_RS[127] 9705860 / 48831116\n",
-      "DS_RS[128] 9676884 / 50678972\n",
-      "DS_RS[129] 9698224 / 50678972\n",
-      "DS_RS[130] 9698328 / 50678972\n",
-      "DS_RS[131] 9720160 / 50678972\n",
-      "DS_RS[132] 9677420 / 51381432\n",
-      "DS_RS[133] 9698264 / 51381432\n",
-      "DS_RS[134] 9698276 / 51381432\n",
-      "DS_RS[135] 9720020 / 51381432\n",
-      "DS_RS[136] 9698736 / 51225928\n",
-      "DS_RS[137] 9719544 / 51225928\n",
-      "DS_RS[138] 9698232 / 51225928\n",
-      "DS_RS[139] 9720144 / 51225928\n",
-      "DS_RS[140] 9698872 / 51284324\n",
-      "DS_RS[141] 9719628 / 51284324\n",
-      "DS_RS[142] 9698204 / 51284324\n",
-      "DS_RS[143] 9720152 / 51284324\n",
-      "DS_RS[144] 9698776 / 50828104\n",
-      "DS_RS[145] 9719588 / 50828104\n",
-      "DS_RS[146] 9698244 / 50828104\n",
-      "DS_RS[147] 9720100 / 50828104\n",
-      "DS_RS[148] 9691396 / 49845004\n",
-      "DS_RS[149] 9712592 / 49845004\n",
-      "DS_RS[150] 9689492 / 49845004\n",
-      "DS_RS[151] 9712968 / 49845004\n",
-      "DS_RS[152] 9720144 / 51092756\n",
-      "DS_RS[153] 9719624 / 51092756\n",
-      "DS_RS[154] 9719644 / 51092756\n",
-      "DS_RS[155] 9718448 / 51092756\n",
-      "DS_RS[156] 9713048 / 51037760\n",
-      "DS_RS[157] 9712272 / 51037760\n",
-      "DS_RS[158] 9712520 / 51037760\n",
-      "DS_RS[159] 9713080 / 51037760\n",
-      "DS_RS[160] 9677612 / 51089532\n",
-      "DS_RS[161] 9698364 / 51089532\n",
-      "DS_RS[162] 9695624 / 51089532\n",
-      "DS_RS[163] 9720140 / 51089532\n",
-      "DS_RS[164] 9670500 / 48790088\n",
-      "DS_RS[165] 9691208 / 48790088\n",
-      "DS_RS[166] 9691220 / 48790088\n",
-      "DS_RS[167] 9713116 / 48790088\n",
-      "DS_RS[168] 9698808 / 48594688\n",
-      "DS_RS[169] 9716916 / 48594688\n",
-      "DS_RS[170] 9698248 / 48594688\n",
-      "DS_RS[171] 9720060 / 48594688\n",
-      "DS_RS[172] 9691672 / 50636688\n",
-      "DS_RS[173] 9709812 / 50636688\n",
-      "DS_RS[174] 9691236 / 50636688\n",
-      "DS_RS[175] 9713044 / 50636688\n",
-      "DS_RS[176] 9698924 / 50641724\n",
-      "DS_RS[177] 9719672 / 50641724\n",
-      "DS_RS[178] 9691148 / 50641724\n",
-      "DS_RS[179] 9713084 / 50641724\n",
-      "DS_RS[180] 9691624 / 50718188\n",
-      "DS_RS[181] 9712604 / 50718188\n",
-      "DS_RS[182] 9683772 / 50718188\n",
-      "DS_RS[183] 9705944 / 50718188\n",
-      "DS_RS[184] 9717532 / 50789876\n",
-      "DS_RS[185] 9719616 / 50789876\n",
-      "DS_RS[186] 9710864 / 50789876\n",
-      "DS_RS[187] 9713076 / 50789876\n",
-      "DS_RS[188] 9713056 / 51567720\n",
-      "DS_RS[189] 9712428 / 51567720\n",
-      "DS_RS[190] 9705416 / 51567720\n",
-      "DS_RS[191] 9705932 / 51567720\n",
-      "DS_RS[192] 9696144 / 50879132\n",
-      "DS_RS[193] 9719580 / 50879132\n",
-      "DS_RS[194] 9698316 / 50879132\n",
-      "DS_RS[195] 9720188 / 50879132\n",
-      "DS_RS[196] 9698836 / 50921564\n",
-      "DS_RS[197] 9719644 / 50921564\n",
-      "DS_RS[198] 9698328 / 50921564\n",
-      "DS_RS[199] 9720088 / 50921564\n",
-      "DS_RS[200] 9720240 / 51132636\n",
-      "DS_RS[201] 9718224 / 51132636\n",
-      "DS_RS[202] 9718364 / 51132636\n",
-      "DS_RS[203] 9720080 / 51132636\n",
-      "DS_RS[204] 9713048 / 51120284\n",
-      "DS_RS[205] 9712084 / 51120284\n",
-      "DS_RS[206] 9712548 / 51120284\n",
-      "DS_RS[207] 9711052 / 51120284\n",
-      "DS_RS[208] 9694848 / 51034020\n",
-      "DS_RS[209] 9716972 / 51034020\n",
-      "DS_RS[210] 9691272 / 51034020\n",
-      "DS_RS[211] 9712964 / 51034020\n",
-      "DS_RS[212] 9698800 / 50889524\n",
-      "DS_RS[213] 9719720 / 50889524\n",
-      "DS_RS[214] 9688496 / 50889524\n",
-      "DS_RS[215] 9713064 / 50889524\n",
-      "DS_RS[216] 9720192 / 50753808\n",
-      "DS_RS[217] 9712608 / 50753808\n",
-      "DS_RS[218] 9716992 / 50753808\n",
-      "DS_RS[219] 9713068 / 50753808\n",
-      "DS_RS[220] 9710132 / 50826220\n",
-      "DS_RS[221] 9705480 / 50826220\n",
-      "DS_RS[222] 9712432 / 50826220\n",
-      "DS_RS[223] 9705868 / 50826220\n",
-      "DS_RS[224] 9698164 / 50808660\n",
-      "DS_RS[225] 9718752 / 50808660\n",
-      "DS_RS[226] 9698192 / 50808660\n",
-      "DS_RS[227] 9718376 / 50808660\n",
-      "DS_RS[228] 9691588 / 51107600\n",
-      "DS_RS[229] 9712548 / 51107600\n",
-      "DS_RS[230] 9691088 / 51107600\n",
-      "DS_RS[231] 9713036 / 51107600\n",
-      "DS_RS[232] 9720056 / 50889936\n",
-      "DS_RS[233] 9718840 / 50889936\n",
-      "DS_RS[234] 9712396 / 50889936\n",
-      "DS_RS[235] 9713032 / 50889936\n",
-      "DS_RS[236] 9713040 / 50851668\n",
-      "DS_RS[237] 9712536 / 50851668\n",
-      "DS_RS[238] 9705040 / 50851668\n",
-      "DS_RS[239] 9703748 / 50851668\n",
-      "DS_RS[240] 9698196 / 50812000\n",
-      "DS_RS[241] 9719600 / 50812000\n",
-      "DS_RS[242] 9691052 / 50812000\n",
-      "DS_RS[243] 9712932 / 50812000\n",
-      "DS_RS[244] 9691684 / 50970684\n",
-      "DS_RS[245] 9712556 / 50970684\n",
-      "DS_RS[246] 9684000 / 50970684\n",
-      "DS_RS[247] 9705808 / 50970684\n",
-      "DS_RS[248] 9716764 / 51058112\n",
-      "DS_RS[249] 9710644 / 51058112\n",
-      "DS_RS[250] 9712504 / 51058112\n",
-      "DS_RS[251] 9705808 / 51058112\n",
-      "DS_RS[252] 9712396 / 51180408\n",
-      "DS_RS[253] 9705380 / 51180408\n",
-      "DS_RS[254] 9704824 / 51180408\n",
-      "DS_RS[255] 9695424 / 51180408\n"
-     ]
-    }
-   ],
-   "source": [
-    "for use in memuse:\n",
-    "    print(use)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Disconnect()"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "PyParaView-5.8",
-   "language": "python",
-   "name": "pyparaview-5.8"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.8"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/minimal_example.ipynb b/notebooks/minimal_example.ipynb
deleted file mode 100644
index af52b66..0000000
--- a/notebooks/minimal_example.ipynb
+++ /dev/null
@@ -1,157 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<img src=\"https://gitlab.version.fz-juelich.de/grosch1/pvlink_demo_for_jupytercon/-/raw/JupyterCon2020/img/logo.png\"\n",
-    "     style=\"float:right; width:25%; height:25%; margin-top:25px;\">\n",
-    "\n",
-    "# Jupyter for interactive In-Situ Visualization with ParaView/Catalyst\n",
-    "\n",
-    "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.version.fz-juelich.de%2Fgrosch1%2Fpvlink_demo_for_jupytercon/JupyterCon2020)  \n",
-    "Try out the *pvlink* extension and the example notebooks in binder."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Minimal example"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import pvlink\n",
-    "from paraview.simple import *\n",
-    "from pvlink.utility import SetRecommendedRenderSettings, ResetCamera"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "41063a5b5274476cb4ef2bfc580c5cd5",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "RemoteRenderer(authKey='afd24933b4abc600d381b4a99e07b7edfd1b5ab55731cef5', sessionURL='wss://jupyter-jsc.fz-ju…"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# Create a RemoteRenderer to capture a ParaView RenderView\n",
-    "renderer1 = pvlink.RemoteRenderer()\n",
-    "\n",
-    "# Paraview Pipeline\n",
-    "# Create a RenderView\n",
-    "renderView1 = CreateView('RenderView', 'view1')\n",
-    "renderView1.Background = [0,0,0]\n",
-    "SetRecommendedRenderSettings(renderView1)\n",
-    "\n",
-    "# Load and display data\n",
-    "waveletElevation = XMLImageDataReader(FileName=['./data/waveletElevation.vti'])\n",
-    "waveletElevationDisplay = Show(waveletElevation, renderView1)\n",
-    "waveletElevationDisplay.SetRepresentationType('Volume')\n",
-    "\n",
-    "# Edit data display\n",
-    "ColorBy(waveletElevationDisplay, ('POINTS', 'RDataWithElevation', 'Y'))\n",
-    "rDataWithElevationLUT = GetColorTransferFunction('RDataWithElevation')\n",
-    "rDataWithElevationLUT.ApplyPreset('Cool to Warm (Extended)', True)\n",
-    "\n",
-    "# Set pvlink renderer to show renderView1\n",
-    "renderer1.viewID = renderView1.GetGlobalIDAsString()\n",
-    "ResetCamera(renderView1, renderer1)\n",
-    "display(renderer1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "b2dd3f1af11746389fbfd728c020989d",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "RemoteRenderer(authKey='wslink-secret', sessionURL='ws://localhost:1234/ws', viewID='577')"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# Create a second RemoteRenderer to capture a second ParaView RenderView\n",
-    "renderer2 = pvlink.RemoteRenderer(port=1234, authKey='wslink-secret')\n",
-    "\n",
-    "# Paraview Pipeline\n",
-    "# Create a second RenderView\n",
-    "renderView2 = CreateView('RenderView', 'view2')\n",
-    "renderView2.Background = [0,0,0]\n",
-    "renderView2.ShowAnnotation = 1\n",
-    "SetRecommendedRenderSettings(renderView2)\n",
-    "\n",
-    "# Load and display data\n",
-    "waveletMaterial = XMLImageDataReader(FileName=['./data/waveletMaterial.vti'])\n",
-    "waveletMaterialDisplay = Show(waveletMaterial, renderView2)\n",
-    "waveletMaterialDisplay.SetRepresentationType('Volume')\n",
-    "\n",
-    "# Edit data display\n",
-    "materialLUT = GetColorTransferFunction('Material')\n",
-    "materialLUT.ApplyPreset('Cool to Warm (Extended)', True)\n",
-    "\n",
-    "# Set secon dpvlink renderer to show renderView2\n",
-    "renderer2.viewID = renderView2.GetGlobalIDAsString()\n",
-    "ResetCamera(renderView2, renderer2)\n",
-    "display(renderer2)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "PyParaView-5.8",
-   "language": "python",
-   "name": "pyparaview-5.8"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.8"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
-- 
GitLab