diff --git a/demos/demo_DTW01.m b/demos/demo_DTW01.m
index bb5332a0529344d9ab72cd09005103bab7297e4b..cda375306eeab739ad91f695faec327054a41c21 100644
--- a/demos/demo_DTW01.m
+++ b/demos/demo_DTW01.m
@@ -33,7 +33,7 @@ addpath('./m_fcts/');
 nbData = 200; %Length of each trajectory
 wMax = 50; %Warping time window 
 nbSamples = 5; %Number of demonstrations
-nbVar = 2; %Number of dimensions (max 2 for AMARSI data)
+nbVar = 2; %Number of dimensions (max 2 for 2Dletters dataset)
 
 
 %% Load handwriting data
diff --git a/demos/demo_Riemannian_S3_infHorLQR01.m b/demos/demo_Riemannian_S3_infHorLQR01.m
index 7db97495a6d0398cb504adbe30e59fc5e9aa35f8..c3f2521a8e5af9d288a9e0dfd4cdf0f6d05424ee 100644
--- a/demos/demo_Riemannian_S3_infHorLQR01.m
+++ b/demos/demo_Riemannian_S3_infHorLQR01.m
@@ -55,9 +55,7 @@ xTar = xTar / norm(xTar);
 % uCov = Ar * diag([1E0,1E0,1E6]) * Ar' * 1E-3;
 
 % S0 = diag([1E0,1E0,1E6]) * 1E-3;
-% q = Quaternion(xTar); 
-% uCov = q.R * S0 * q.R'
-%uCov = q.R' * S0 * q.R
+% uCov = quat2rotm(xTar') * S0 * quat2rotm(xTar')'
 uCov = diag([1,1,1]) * 1E-3;
 
 % %Eigendecomposition 
@@ -160,17 +158,15 @@ figure('PaperPosition',[0 0 6 8],'position',[670,10,650,650],'name','timeline da
 colormap([.9 .9 .9]);
 [X,Y,Z] = sphere(20);
 mesh(X,Y,Z,'facealpha',.3,'edgealpha',.3);
-q = Quaternion(xTar);
+Rq = quat2rotm(xTar');
 
-Rq = quat2rotm(double(q));
 plot3Dframe(Rq, zeros(3,1), eye(3)*.3);
 view(3); axis equal; axis tight; axis vis3d;  
 h=[];
 for n=1:min(nbRepros,1)
 	for t=1:nbData
 		delete(h);
-		q = Quaternion(r(n).x(:,t));
-		Rq = quat2rotm(double(q));
+		Rq = quat2rotm(r(n).x(:,t)');
 		h = plot3Dframe(Rq, zeros(3,1));
 		drawnow;
 		if t==1
diff --git a/demos/demo_Riemannian_S3_vecTransp01.m b/demos/demo_Riemannian_S3_vecTransp01.m
index aac8be06c1476122de115a5f735c0f85524cd5d0..10dedf539f92a05ee7f6cbb6563c5506c86579d7 100644
--- a/demos/demo_Riemannian_S3_vecTransp01.m
+++ b/demos/demo_Riemannian_S3_vecTransp01.m
@@ -119,9 +119,6 @@ function Exp = expfct(u)
 	Exp = real([cos(normv) ; u(1,:).*sin(normv)./normv ; u(2,:).*sin(normv)./normv ; u(3,:).*sin(normv)./normv]);
 	Exp(:,normv < 1e-16) = repmat([1;0;0;0],1,sum(normv < 1e-16));
 end
-% v1 = cos(norm(u)/2);
-%	v2 = sin(norm(u)/2) * u/norm(u);
-%	q = Quaternion([v1 v2]);
 	
 function Log = logfct(x)
 % 	scale = acos(x(3,:)) ./ sqrt(1-x(3,:).^2);
diff --git a/demos/demo_Riemannian_Sd_MPC_infHor01.m b/demos/demo_Riemannian_Sd_MPC_infHor01.m
index 02c4e6b8069f7836603feabd3a1cc7617abe1188..808e4b39bf6251be13e5da7a5535ca2b7c407970 100644
--- a/demos/demo_Riemannian_Sd_MPC_infHor01.m
+++ b/demos/demo_Riemannian_Sd_MPC_infHor01.m
@@ -2,9 +2,6 @@ function demo_Riemannian_Sd_MPC_infHor01
 % Linear quadratic regulation on S^d by relying on Riemannian manifold and infinite-horizon LQR.
 % (formulation with tangent space of the same dimension as the dimension of the manifold)
 %
-% This demo requires the robotics toolbox RTB10 (http://petercorke.com/wordpress/toolboxes/robotics-toolbox).
-% First run 'startup_rvc' from the robotics toolbox.
-%
 % If this code is useful for your research, please cite the related publication:
 % @article{Calinon19,
 % 	author="Calinon, S. and Jaquier, N.",
@@ -32,7 +29,6 @@ function demo_Riemannian_Sd_MPC_infHor01
 % along with PbDlib. If not, see <http://www.gnu.org/licenses/>.
 
 addpath('./m_fcts/');
-disp('This demo requires the robotics toolbox RTB10 (http://petercorke.com/wordpress/toolboxes/robotics-toolbox).');
 
 
 %% Parameters
@@ -58,9 +54,7 @@ xTar = xTar / norm(xTar);
 %[Ar,~] = qr(randn(model.nbVarPos));
 % uCov = Ar * diag([1E0,1E0,1E6]) * Ar' * 1E-3;
 % S0 = diag([1E0,1E0,1E6]) * 1E-3;
-% q = Quaternion(xTar); 
-% uCov = q.R * S0 * q.R
-%uCov = q.R' * S0 * q.R
+% uCov = quat2rotm(xTar') * S0 * quat2rotm(xTar')'
 uCov = eye(model.nbVarPos) * 1E-2;
 
 
@@ -151,18 +145,13 @@ figure('PaperPosition',[0 0 6 8],'position',[670,10,650,650],'name','timeline da
 colormap([.9 .9 .9]);
 [X,Y,Z] = sphere(20);
 mesh(X,Y,Z,'facealpha',.3,'edgealpha',.3);
-q = UnitQuaternion(xTar);
-
-Rq = quat2rotm(double(q));
-plot3Dframe(Rq, zeros(3,1), eye(3)*.3);
+plot3Dframe(quat2rotm(xTar'), zeros(3,1), eye(3)*.3);
 view(3); axis equal; axis tight; axis vis3d;  
 h=[];
 for n=1:min(nbRepros,1)
 	for t=1:nbData
 		delete(h);
-		q = UnitQuaternion(r(n).x(:,t));
-		Rq = quat2rotm(double(q));
-		h = plot3Dframe(Rq, zeros(3,1));
+		h = plot3Dframe(quat2rotm(r(n).x(:,t)'), zeros(3,1));
 		drawnow;
 		if t==1
 			%pause;