diff --git a/script/scenarios/demos/darpa_hyq.py b/script/scenarios/demos/darpa_hyq.py
index eab116f7868f6e5fe15afc81bda3978c6aeee3f9..e0fe2666240ae56aa5384030286cf4d907e4a6d2 100644
--- a/script/scenarios/demos/darpa_hyq.py
+++ b/script/scenarios/demos/darpa_hyq.py
@@ -1,5 +1,5 @@
 #Importing helper class for RBPRM
-from hpp.corbaserver.rbprm.hyq import Robot
+from hpp.corbaserver.rbprm.hyq_contact6D import Robot
 from hpp.corbaserver.problem_solver import ProblemSolver
 from hpp.gepetto import Viewer
 
@@ -23,10 +23,10 @@ fullBody.setJointBounds ("root_joint", [-2,5, -1, 1, 0.3, 4])
 nbSamples = 10000
 
 ps = tp.ProblemSolver(fullBody)
-r = tp.Viewer (ps, viewerClient=tp.r.client)
+v = tp.Viewer (ps, viewerClient=tp.v.client)
 
 rootName = 'base_joint_xyz'
-cType = "_3_DOF"
+cType = "_6_DOF"
 
 def addLimbDb(limbId, heuristicName, loadValues = True, disableEffectorCollision = False):
 	fullBody.addLimbDatabase(str(db_dir+limbId+'.db'), limbId, heuristicName,loadValues, disableEffectorCollision)
@@ -61,8 +61,8 @@ q_init = [-2.0,
  -0.9577096766517215,
  0.9384602821326071]
 """
-q_init=fullBody.referenceConfig[::]; q_init[0:7] = tp.q_init[0:7]; q_init[2]=fullBody.referenceConfig[2]+0.02
-q_goal = fullBody.referenceConfig[::]; q_goal[0:7] = tp.q_goal[0:7]; q_goal[2]=fullBody.referenceConfig[2]+0.02
+q_init=fullBody.referenceConfig[::]; q_init[0:7] = tp.q_init[0:7]; q_init[2]=fullBody.referenceConfig[2]
+q_goal = fullBody.referenceConfig[::]; q_goal[0:7] = tp.q_goal[0:7]; q_goal[2]=fullBody.referenceConfig[2]
 
 
 q_init = fullBody.generateContacts(q_init, [0,0,1])
@@ -73,12 +73,12 @@ fullBody.setStartState(q_init,[fullBody.rLegId,fullBody.lArmId,fullBody.lLegId,f
 fullBody.setEndState(q_goal,[fullBody.rLegId,fullBody.lArmId,fullBody.lLegId,fullBody.rArmId])
 
 
-r(q_init)
+v(q_init)
 configs = []
 
 
 from hpp.gepetto import PathPlayer
-pp = PathPlayer (fullBody.client, r)
+pp = PathPlayer (fullBody.client, v)
 
 
 import time
@@ -86,36 +86,36 @@ import time
 #DEMO METHODS
 
 def initConfig():
-	r.client.gui.setVisibility("hyq", "ON")
+	v.client.gui.setVisibility("hyq", "ON")
 	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "OFF")
-	r(q_init)
+	tp.v.client.gui.setVisibility("toto", "OFF")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "OFF")
+	v(q_init)
 	
 def endConfig():
-	r.client.gui.setVisibility("hyq", "ON")
+	v.client.gui.setVisibility("hyq", "ON")
 	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "OFF")
-	r(q_goal)
+	tp.v.client.gui.setVisibility("toto", "OFF")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "OFF")
+	v(q_goal)
 	
 
 def rootPath():
-	r.client.gui.setVisibility("hyq", "OFF")
+	v.client.gui.setVisibility("hyq", "OFF")
 	tp.cl.problem.selectProblem("rbprm_path")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	r.client.gui.setVisibility("hyq", "OFF")
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "ON")
+	tp.v.client.gui.setVisibility("toto", "OFF")
+	v.client.gui.setVisibility("hyq", "OFF")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "ON")
 	tp.pp(0)
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "OFF")
-	r.client.gui.setVisibility("hyq", "ON")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "OFF")
+	v.client.gui.setVisibility("hyq", "ON")
 	tp.cl.problem.selectProblem("default")
 	
 def genPlan(stepsize=0.06):
 	tp.cl.problem.selectProblem("default")
-	r.client.gui.setVisibility("hyq", "ON")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "OFF")
+	v.client.gui.setVisibility("hyq", "ON")
+	tp.v.client.gui.setVisibility("toto", "OFF")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "OFF")
 	global configs
 	start = time.clock() 
 	configs = fullBody.interpolate(stepsize, 8, 0, filterStates = False, testReachability=False, quasiStatic=True)
@@ -123,12 +123,12 @@ def genPlan(stepsize=0.06):
 	print "Contact plan generated in " + str(end-start) + "seconds"
 	
 def contactPlan(step = 0.5):
-	r.client.gui.setVisibility("hyq", "ON")
+	v.client.gui.setVisibility("hyq", "ON")
 	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hyq_trunk_large", "OFF")
+	tp.v.client.gui.setVisibility("toto", "OFF")
+	tp.v.client.gui.setVisibility("hyq_trunk_large", "OFF")
 	for i in range(0,len(configs)):
-		r(configs[i]);
+		v(configs[i]);
 		time.sleep(step)
                 		
 		
diff --git a/script/scenarios/demos/darpa_hyq_path.py b/script/scenarios/demos/darpa_hyq_path.py
index 984461592a7ff6f6b078e56e85e6b1e2c94b9fab..25541b07e053e29ee158fdc156f8eaf1e7673087 100644
--- a/script/scenarios/demos/darpa_hyq_path.py
+++ b/script/scenarios/demos/darpa_hyq_path.py
@@ -21,13 +21,24 @@ rbprmBuilder.boundSO3([-0.4,0.4,-0.3,0.3,-0.3,0.3])
 # Creating an instance of HPP problem solver and the viewer
 from hpp.corbaserver.problem_solver import ProblemSolver
 ps = ProblemSolver( rbprmBuilder )
-r = Viewer (ps)
+from hpp.gepetto import ViewerFactory
+vf = ViewerFactory (ps)
+
+
+from hpp.corbaserver.affordance.affordance import AffordanceTool
+afftool = AffordanceTool ()
+#~ afftool.loadObstacleModel (packageName, "darpa", "planning", r, reduceSizes=[0.05,0.,0.])
+afftool.loadObstacleModel ("hpp-rbprm-corba", "darpa", "planning", vf,reduceSizes=[0.1,0,0])
+v = vf.createViewer()
+#afftool.visualiseAffordances('Support', v, [0.25, 0.5, 0.5])
+
+
 
 # Setting initial and goal configurations
 q_init = rbprmBuilder.getCurrentConfig ();
-q_init [0:3] = [-2, 0, 0.63]; rbprmBuilder.setCurrentConfig (q_init); r (q_init)
+q_init [0:3] = [-2, 0, 0.63]; rbprmBuilder.setCurrentConfig (q_init); v (q_init)
 q_goal = q_init [::]
-q_goal [0:3] = [3, 0, 0.63]; r (q_goal)
+q_goal [0:3] = [3, 0, 0.63]; v (q_goal)
 #~ q_goal [0:3] = [-1.5, 0, 0.75]; r (q_goal)
 
 # Choosing a path optimizer
@@ -35,12 +46,6 @@ ps.addPathOptimizer("RandomShortcut")
 ps.setInitialConfig (q_init)
 ps.addGoalConfig (q_goal)
 
-from hpp.corbaserver.affordance.affordance import AffordanceTool
-afftool = AffordanceTool ()
-#~ afftool.loadObstacleModel (packageName, "darpa", "planning", r, reduceSizes=[0.05,0.,0.])
-afftool.loadObstacleModel ("hpp-rbprm-corba", "darpa", "planning", r)
-afftool.visualiseAffordances('Support', r, [0.25, 0.5, 0.5])
-
 # Choosing RBPRM shooter and path validation methods.
 # Note that the standard RRT algorithm is used.
 ps.client.problem.selectConfigurationShooter("RbprmShooter")
@@ -56,11 +61,11 @@ print "computation time for root path ", t
 
 # Playing the computed path
 from hpp.gepetto import PathPlayer
-pp = PathPlayer (r)
+pp = PathPlayer (v)
 
 q_far = q_init [::]
 q_far [0:3] = [-2, -3, 0.63]; 
-r(q_far)
+v(q_far)
 
 for i in range(1,10):
 	rbprmBuilder.client.problem.optimizePath(i)
@@ -76,6 +81,6 @@ rbprmBuilder2 = Robot ("toto")
 ps2 = ProblemSolver( rbprmBuilder2 )
 cl.problem.selectProblem("default")
 cl.problem.movePathToProblem(8,"rbprm_path",rbprmBuilder.getAllJointNames()[1:])
-r2 = Viewer (ps2, viewerClient=r.client)
+r2 = Viewer (ps2, viewerClient=v.client)
 r2(q_far)