Browse Source

gin upload from sirota2

New files: 359
Nicholas Del Grosso 6 years ago
parent
commit
5f91d609e9
100 changed files with 25456 additions and 0 deletions
  1. 2 0
      Code/ObjectSpatialAnalyses/README.md
  2. 17 0
      Code/ObjectSpatialAnalyses/SmoothSpeed.m
  3. 16 0
      Code/ObjectSpatialAnalyses/StartEnding.m
  4. 161 0
      Code/ObjectSpatialAnalyses/StatePlot.m
  5. 129 0
      Code/ObjectSpatialAnalyses/VRSpatNovel.m
  6. 316 0
      Code/ObjectSpatialAnalyses/VRSpatNovelObj.m
  7. 351 0
      Code/ObjectSpatialAnalyses/VRSpatialNoveltyTrajV.m
  8. 226 0
      Code/ObjectSpatialAnalyses/VRobjdrafts.m
  9. 32 0
      Code/ObjectSpatialAnalyses/preVRnew.m
  10. 24 0
      Code/ObjectSpatialAnalyses/sumPlot.m
  11. 53 0
      Code/ObjectSpatialAnalyses/sumPlotSN.m
  12. 12926 0
      Code/SpatialNovelty/Bootstrapping+Area.html
  13. 202 0
      Code/SpatialNovelty/Bootstrapping+Area.ipynb
  14. BIN
      Code/SpatialNovelty/object_sham_diagram.png
  15. BIN
      Code/preprocessing/orientation_check.mp4
  16. BIN
      Data/Histology/Hippo5-2xDapi.tif
  17. 14 0
      Data/Histology/README.rst
  18. 13 0
      Data/Histology/README.rst~
  19. 1 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU-Camera 11136.mp4
  20. 1 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU.h5
  21. 0 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/event_log_added.txt
  22. 0 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/marker_softlink_added.txt
  23. 0 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/ori_added.txt
  24. 0 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/settings_log_added.txt
  25. 0 0
      Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/unrotated.txt
  26. BIN
      Figures/Final_Draft1/Figure-Legends-Round2-nd.docx
  27. 3719 0
      Figures/Final_Draft1/TempSpatialNovelty copy.pdf
  28. BIN
      Manuscript Drafts/DelGrosso_New_v1_UR_online_methods.docx
  29. BIN
      Methods/3D Objects/Object Name Guid.pdf
  30. 3938 0
      Methods/3D Objects/Object Name Guid.svg
  31. BIN
      Methods/Rplots.pdf
  32. BIN
      Methods/Surgery and Histology methods from Eduardo .docx
  33. BIN
      Methods/VR_Round2_Protocol_and_Troubleshooting_Guide.odt
  34. BIN
      Methods/placefield_analysis_methods.odt
  35. 1 0
      Stats/.~lock.updatedstat.ods#
  36. BIN
      Stats/updatedstat.ods
  37. BIN
      Text/DelGrosso_New_v1_UR.docx
  38. BIN
      Text/DelGrosso_New_v1_UR_online_methods.docx
  39. 1 0
      Videos/Final/experiment_cliff_avoidance.mpeg
  40. 1 0
      Videos/Final/experiment_obj_exploration.mpeg
  41. 1 0
      Videos/Final/experiment_spatial_novelty.mpeg
  42. 1 0
      Videos/Final/experiment_wall_exploration.mpeg
  43. 1 0
      Videos/Final/vr_algorithm_explained_long.mpeg
  44. 1 0
      Videos/Final/vr_perspective_cliff_demo.mpeg
  45. 1 0
      Videos/Final/vr_perspective_monkey_demo.mpeg
  46. 1 0
      Videos/Final/vr_perspective_monkey_in_glass.MP4
  47. 1 0
      Videos/Final/vr_perspective_wall.MP4
  48. 1 0
      Videos/old_submission_videos/supp_mov1.avi
  49. BIN
      Videos/old_submission_videos/supp_mov2.mp4
  50. 1 0
      Videos/old_submission_videos/supp_mov3.mp4
  51. 1 0
      Videos/old_submission_videos/supp_mov4.mp4
  52. 1 0
      Videos/old_submission_videos/supp_mov5.mp4
  53. 1 0
      Videos/old_submission_videos/titled_movies_through_wmm/object_exploration/object_exploration_experiment.mp4
  54. 291 0
      Videos/old_submission_videos/titled_movies_through_wmm/object_exploration/object_exploration_experiment.wlmp
  55. 1 0
      Videos/old_submission_videos/titled_movies_through_wmm/visCliff/virtual_cliff_experiment.mp4
  56. 354 0
      Videos/old_submission_videos/titled_movies_through_wmm/visCliff/virtual_cliff_experiment.wlmp
  57. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 1 (10-26-2016 6-24 PM).png
  58. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 2 (10-26-2016 6-34 PM).png
  59. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 3 (10-26-2016 6-35 PM).png
  60. 1805 0
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 3 (10-26-2016 6-35 PM).svg
  61. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 4 (10-26-2016 7-27 PM).png
  62. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 5 (10-26-2016 7-31 PM).png
  63. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/image3344.png
  64. BIN
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/vr_algorithm_explanation.mp4
  65. 461 0
      Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/vr_algorithm_explanation.wlmp
  66. 1 0
      Videos/old_submission_videos/titled_movies_through_wmm/wall_avoidance/wall_avoidance_experiment.mp4
  67. 356 0
      Videos/old_submission_videos/titled_movies_through_wmm/wall_avoidance/wall_avoidance_experiment.wlmp
  68. BIN
      Videos/original/IMG_1285.JPG
  69. 1 0
      Videos/original/MVI_1371.MP4
  70. 1 0
      Videos/original/MVI_1372.MP4
  71. 1 0
      Videos/original/MVI_1373.MP4
  72. 1 0
      Videos/original/MVI_1374.MP4
  73. 1 0
      Videos/original/MVI_1375.MP4
  74. 1 0
      Videos/original/MVI_1376.MP4
  75. 1 0
      Videos/original/MVI_1377.MP4
  76. 1 0
      Videos/original/MVI_1378.MP4
  77. 1 0
      Videos/original/MVI_1379.MP4
  78. 1 0
      Videos/original/MVI_1380.MP4
  79. 1 0
      Videos/original/MVI_1381.MP4
  80. 1 0
      Videos/original/MVI_1382.MP4
  81. 1 0
      Videos/original/MVI_1383.MP4
  82. 1 0
      Videos/original/MVI_1384.MP4
  83. 1 0
      Videos/original/MVI_1385.MP4
  84. 1 0
      Videos/original/MVI_1386.MP4
  85. 1 0
      Videos/original/MVI_1387.MP4
  86. 1 0
      Videos/original/MVI_1388.MP4
  87. 1 0
      Videos/original/MVI_1389.MP4
  88. 1 0
      Videos/original/MVI_1390.MP4
  89. 1 0
      Videos/original/MVI_1391.MP4
  90. 1 0
      Videos/original/MVI_1392.MP4
  91. 1 0
      Videos/original/MVI_1394.MP4
  92. 1 0
      Videos/original/MVI_1395.MP4
  93. 1 0
      Videos/original/MVI_1396.MP4
  94. 1 0
      Videos/original/MVI_1397.MP4
  95. 1 0
      Videos/original/MVI_1398.MP4
  96. 1 0
      Videos/original/MVI_1399.MP4
  97. 1 0
      Videos/original/MVI_1400.MP4
  98. 1 0
      Videos/original/MVI_1401.MP4
  99. 1 0
      Videos/original/MVI_1402.MP4
  100. 0 0
      Videos/original/MVI_1403.MP4

+ 2 - 0
Code/ObjectSpatialAnalyses/README.md

@@ -0,0 +1,2 @@
+# VRobject
+Code for VRobj and spatialnovelty experiments

+ 17 - 0
Code/ObjectSpatialAnalyses/SmoothSpeed.m

@@ -0,0 +1,17 @@
+function v = SmoothSpeed(x,t,lag)
+[s1, s2] = size(x);
+if s1<s2
+    x = x';
+    s2 = s1;
+end
+for k = 1:s2
+    x(:,k) = conv(x(:,k), ones(lag,1)/lag, 'same');
+end
+if length(t)>1
+samplingrate = ceil(1/diff(t(1:2)));
+v = bsxfun(@rdivide, -[zeros(lag,s2);x]+[x;zeros(lag,s2)], ...
+([t;t(end) + [1:lag]'/samplingrate] - [t(1) + ([1:lag]'-lag-1)/samplingrate;t]));
+else
+v = -[repmat(x(1,:),lag,1);x]+[x;repmat(x(end,:),lag,1)];
+end
+v = v([(lag+1):end]-floor(lag/2),:);% middle point speed.

+ 16 - 0
Code/ObjectSpatialAnalyses/StartEnding.m

@@ -0,0 +1,16 @@
+function prd = StartEnding(x)
+% x should be a vector, or in column
+[s1, s2] = size(x);
+if s2>s1
+    x=x';
+    s2 = s1;
+end
+prd = cell(s2, 1);
+x(end,:)=0;
+tmp = diff([zeros(1, s2); x],1,1);
+for k = 1:s2
+    prd{k} = [find(tmp(:,k)>0), find(tmp(:,k)<0)];
+end
+if s2 ==1
+    prd = cell2mat(prd);
+end

+ 161 - 0
Code/ObjectSpatialAnalyses/StatePlot.m

@@ -0,0 +1,161 @@
+function [p2, pg, pp]= StatePlot(bprd,ObjTypes, titleS, savepath,filename,AnimalN,varargin)%
+xx = [];
+c= [];
+x = [];
+L = [];
+p = zeros(1,3);
+thrP = 480; % thereshold of the period length in samples. 240 smaples/s
+clear g
+lb = {'pre','on','post'};
+klb = {'V:', 'R:'};
+p2 = nan(3);
+pp = zeros(2,3);
+% sAnimalN = AnimalN(AnimalN>0);
+uSAni = setdiff(unique(AnimalN),0);
+mAni = zeros(length(uSAni), length(AnimalN));
+for k = 1:length(uSAni)
+mAni(k, AnimalN == uSAni(k)) = 1;
+end
+pg = zeros(2,3);
+for k = 1:2
+    L = [L,sprintf('\n')];
+    L = [L , klb{k}];
+        ccc = [sq((bprd(:,1,1)- bprd(:,2,1))./sum(bprd(:,:,1),2)),...
+            sq((bprd(:,1,2)-bprd(:,2,2))./sum(bprd(:,:,2),2)),...
+            sq((bprd(:,1,3)-bprd(:,2,3))./sum(bprd(:,:,3),2))];
+        if strcmp(titleS,'traj')
+            dcc = [sum(bprd(:,:,1),2), sum(bprd(:,:,2),2), sum(bprd(:,:,3),2)];
+        else
+            dcc = [sum(bprd(:,:,1),2), sum(bprd(:,:,2),2), sum(bprd(:,:,3),2)];
+            figure(3);clf;% sum(sq(<720),2)<1  sum(<1,2)<1
+            for nnn = 1:3
+                subplot(3,1,nnn)
+                plot(dcc(:,nnn)/240, ccc(:,nnn),'.')
+                hold on
+                plot([1 1]*thrP/240, [-1 1], 'r--')
+            end
+            title(titleS)
+            pause(.01)
+        end
+        slc = ObjTypes==(k-1) & AnimalN>0 & sum(sum(dcc<thrP,2),2)<1;
+        % select sessions according to the Object, animal number and any
+        % period included should be larger than the thrP. 
+        ccc = ccc(slc,:);
+        tmpA = mAni(:,slc);
+        % ccc(AnimalN(ObjTypes==(k-1))==0,:)=[];% ccc(sum(~isnan(ccc),2)<1,:)=[];% 
+        ccc(isnan(ccc))=0;
+        if strcmp(filename(end), 'G') % "Grouped" by animals 
+            ccc = bsxfun(@rdivide,tmpA, sum(tmpA,2))*ccc;
+        end
+        if k ==2
+            for kk = 1:3
+                % compare real and VR
+                [pg(1,kk),~,stat] = ranksum(c(:,kk),ccc(:,kk));
+                pg(2,kk) = stat.zval;%ranksum;
+            end
+        end
+        c = [c;ccc];
+        for kk = 1:3
+            % test DR ? 0
+            [p(kk), ~, stat] = signrank(ccc(:,kk));
+            if isfield(stat, 'zval')
+            zz(k,kk) = stat.zval;
+            else
+            zz(k,kk) = nan;
+            end
+            L = [ L , sprintf(' %s: %.2f(z:%.3f,n:%d),', lb{kk}, p(kk), zz(k,kk),length(ccc(:,kk)))];
+            pp(k,kk) = p(kk);
+        end
+        xx = [xx; repmat({'1','2','3'},size(ccc,1),1)];
+        x = [x;ones(size(ccc))*k + 0*repmat([-.2 0 .2],size(ccc,1),1)];
+        if 0 % nargin<7 test difference between different periods. two sided. 
+            if k ==1
+                p2(1,2) = signrank(ccc(:,2) - ccc(:,1));
+                p2(1,3) = signrank(ccc(:,3) - ccc(:,1));
+                p2(2,3) = signrank(ccc(:,2) - ccc(:,3));
+            else
+                p2(2,1) = signrank(ccc(:,2) - ccc(:,1));
+                p2(3,1) = signrank(ccc(:,3) - ccc(:,1));
+                p2(3,2) = signrank(ccc(:,2) - ccc(:,3));
+            end
+        else
+            if k ==1
+                [p2(1,2), ~, stat] = signrank(ccc(:,2) - ccc(:,1), 0, 'tail','right');
+                
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                    z2(1,2) = stat.zval;
+                
+                [p2(1,3), ~, stat] = signrank(ccc(:,3) - ccc(:,1), 0, 'tail','right');
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                 z2(1,3)= stat.zval;
+                [p2(2,3), ~, stat] = signrank(ccc(:,2) - ccc(:,3), 0, 'tail','right');
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                 z2(2,3)= stat.zval;
+            else
+                [p2(2,1), ~, stat] = signrank(ccc(:,2) - ccc(:,1), 0, 'tail','right');
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                 z2(2,1)= stat.zval;
+                [p2(3,1), ~, stat] = signrank(ccc(:,3) - ccc(:,1), 0, 'tail','right');
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                 z2(3,1)= stat.zval;
+                [p2(3,2), ~, stat] = signrank(ccc(:,2) - ccc(:,3), 0, 'tail','right');
+                if ~isfield(stat, 'zval')
+                    stat.zval = nan;
+                end
+                 z2(3,2)= stat.zval;
+            end
+        end
+end
+if 1 % plot use gramm (ggplot). 
+    clear g
+    figure(1)
+    clf
+    g(1,1)=gramm('x',[x(:,1);x(:,2);x(:,3)],'y',c(:),'color',[xx(:,1);xx(:,2);xx(:,3)]);% ;, 'label',L(:)
+    %  g.geom_label('color','k','dodge',0.7,'VerticalAlignment','bottom','HorizontalAlignment','center');
+    g(1,2) = copy(g(1,1));
+    g(1,1).geom_jitter('width',0.4,'height',0);
+    g(1,1).stat_summary('geom',{'bar','black_errorbar'}, 'type', 'sem');% stat_boxplot();
+    g(1,2).stat_boxplot();
+    g(1,2).stat_violin('fill','transparent');
+    g.set_limit_extra([.1,.1], [.05 .05]);
+    % g.stat_boxplot('geom',{'bar','black_errorbar'});
+    g.set_names('color','Phase','x',[], 'y',[]);
+    g.set_title([titleS, ' pval:', L]);
+    g.draw();
+    pos = get(1,'Position');
+    kf = figure(1);
+    set(kf, 'Position',  [ pos(1:2)  960   420])
+    for k =1:2
+        subplot(2,2,2*k)
+        plot(repmat(1:3, sum(x(:,1) == k),1)', c(x(:,1) == k, :)', 'LineWidth', 2, 'Color',[.4, .4, .4])
+        hold on
+        plot(repmat(1:3, sum(x(:,1) == k),1)', c(x(:,1) == k, :)', 'k.', 'LineWidth', 5)
+        if k ==1
+            xlabel(sprintf('%s 1-2:%.3f, 2-3:%.3f, 1-3:%.3f\n z:1-2:%.3f, 2-3:%.3f, 1-3:%.3f', klb{k}, p2(1,2), p2(2,3), p2(1,3), z2(1,2), z2(2,3), z2(1,3)))
+        else
+            xlabel(sprintf('%s 1-2:%.3f, 2-3:%.3f, 1-3:%.3f\n z:1-2:%.3f, 2-3:%.3f, 1-3:%.3f', klb{k}, p2(2,1), p2(3,2), p2(3,1), z2(2,1), z2(3,2), z2(3,1)))
+            for nn = 1:3
+                if pg(nn)<.05
+                    plot(nn, 1, 'rx', 'LineWidth', 2)
+                    text(nn+.05,.9,[ sprintf(' %.3f', pg(nn))])% '\leftarrow',
+                end
+            end
+        end
+        xlim([.5 3.5])
+        ylim([-1 1])
+        grid on
+    end
+    print(1, [savepath, filename, '.eps'], '-depsc')
+    savefig(1,[savepath, filename, '.fig'])
+end
+save([savepath, filename,'.p2p.mat'], 'p2')

+ 129 - 0
Code/ObjectSpatialAnalyses/VRSpatNovel.m

@@ -0,0 +1,129 @@
+% VRSpatNovel
+preVRnew
+% VRObj:
+k =2;
+Names.([keyWords{k}, 'c']) = ones(size(Names.(keyWords{k})));
+for n = 1:length(Names.(keyWords{k}))
+    subDir = Names.(keyWords{k}){n};
+    addnum = 0;
+    if strcmp(subDir(16:20), 'Black')
+        Names.([keyWords{k}, 'c'])(n)= 2;
+        addnum = 11;
+    end
+    if subDir(22)=='6'
+        if str2num(subDir([24:25]+addnum))<27
+            Names.([keyWords{k}, 'c'])(n)= false;
+            continue
+        end
+    end
+    if ~strcmp(subDir([42:43]+addnum), '3D')
+            Names.([keyWords{k}, 'c'])(n)= false;
+            continue
+    end
+    try
+        xyz = h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+    catch
+        Names.([keyWords{k}, 'c'])(n)= 0;
+        fprintf('\n%s', subDir)
+    end
+end
+fprintf('\n\n the prs for %s is: %.2i', keyWords{k}, sum(Names.([keyWords{k}, 'c'])>0)/length(Names.([keyWords{k}, 'c'])))
+
+%%
+F_Pos = h5readatt([Workdir, subDir, '/', subDir, '.h5'], '/', 'VR_SPATIAL_FIXED_OBJECT_POSITIONS');
+N_Pos = h5readatt([Workdir, subDir, '/', subDir, '.h5'], '/', 'VR_SPATIAL_NOVELTY_OBJECT_POSITIONS');
+disP = @(x,y)(sqrt(sum(bsxfun(@minus, x, y).^2,2)));
+%  [nfile, nposition, nphase, nradium]
+nfile = length(Names.VRSpatNovelc);
+nposition = 3;
+nphase = 4;
+Dms = [3:15]/100;%.07+.05*[0:2];
+nradium = length(Dms);
+lPeriod = zeros(nfile, nposition, nphase, nradium);% low period 
+hPeriod = zeros(nfile, nposition, nphase, nradium);% high period
+lwPeriod = zeros(nfile, nposition, nphase, nradium);% lowwalk period
+hwPeriod = zeros(nfile, nposition, nphase, nradium);% highwalk period
+TCount = zeros(nfile, nposition, nphase, nradium);% lowwalk period
+AnimalN = zeros(length(Names.VRSpatNovelc),1);
+%% 
+% period extraction, similar to VRobj
+for n = 26:nfile %length(Names.VRSpatNovelc)% 24
+    if ~Names.VRSpatNovelc(n) || n==43 || n==91 || n==26
+        continue
+    elseif Names.VRSpatNovelc(n)==2
+        addnum = 11;
+    else
+        addnum = 0;
+    end
+    %% data loading
+    clear evs xyz
+    subDir = Names.VRSpatNovel{n};
+    xyz=h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+    samplingrate = ceil(1/diff(xyz.Time(1:2)));
+    evs.evlog=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventlog');
+    evs.evFram=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/phaseStartFrameNum');
+    evs.evName=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventNames');
+    evs.evArg=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventArguments');
+    
+    AnimalN(n) = find(strcmp(uniRatN, subDir([39:40]+addnum)));
+    ObjN = [str2num(subDir(45 +addnum)), str2num(subDir(47 +addnum)),str2num(subDir(49 +addnum))];
+    % init new fix
+    ObjP = [N_Pos(1,ObjN(1)), N_Pos(3,ObjN(1)); ...
+        N_Pos(1,ObjN(2)), N_Pos(3,ObjN(2));...
+        F_Pos(1,ObjN(3)), F_Pos(3,ObjN(3))];
+    
+    FR = 10; % 3;% lowpassed frequency
+    xyz.Time(isnan(xyz.X)) = [];
+    xyz.Frame(isnan(xyz.X)) = [];
+    
+    xyz.X = ButterFilter(xyz.X(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Y = ButterFilter(xyz.Y(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Z = ButterFilter(xyz.Z(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    
+    %% walking. 
+    %
+    
+    lprd = find(diff(evs.evlog.Frame,1,1)>10000);
+    Periods = zeros(length(lprd),2);
+    tmpY = xyz.Y;
+    
+    tmp_out = abs(xyz.X-F_Pos(3,2))>.5 | abs(xyz.Z-F_Pos(3,2))>.25;
+    nint = 40;
+    spd = SmoothSpeed([xyz.X, xyz.Z], 1, 40);
+    v = sqrt(sum(SmoothSpeed([xyz.X, xyz.Z.^2], xyz.Time, 40).^2,2));
+    disc = zeros(length(tmpY),size(ObjP,1));
+    headv = zeros(length(tmpY),size(ObjP,1));
+    for k = 1:size(ObjP,1)
+        disc(:,k) = disP([xyz.X xyz.Z],ObjP(k,:));
+        headv(:,k) = sum(bsxfun(@minus,ObjP(k,:), [xyz.X, xyz.Z]).*spd,2)>0;
+    end
+    disc(tmp_out,:) = 10;% exclude all at once
+      
+    for kk = 1:length(lprd)
+        Periods(kk,:) = [evs.evlog.Frame(lprd(kk)), evs.evlog.Frame(lprd(kk)+1)];
+        if kk == 1
+            Periods(kk,1) = Periods(kk,1) + fix((Periods(kk,2) - Periods(kk,1))/3*2);% took the last 2 min in phase 1
+        end
+        % I took only 'wait_duration' event for each event. 
+        tt = xyz.Frame>Periods(kk,1) & xyz.Frame<=Periods(kk,2);
+        tmp_t = xyz.Frame(tt);
+        tmp_v = v(tt);
+        tmp_l = tmpY(tt)<.15;
+        tmp_h = tmpY(tt)>=.15 ;% & tmpY(tt)<=.28;
+        for nn = 1:nradium % .5 + .5*nn
+            tmp_disc = disc(tt,:)<=Dms(nn);%(.03 + .05*(nn-1));
+            for k =1:3
+                TCount(n,k,kk, nn) = size(StartEnding(tmp_disc(:,k)),1);%<.15
+                lPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_v>.005 &tmp_l & tmp_disc(:,k))),1,2);%<.15
+                hPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_h & tmp_disc(:,k))),1,2);% .15~.28
+                
+                lwPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_v>.005 & headv(tt)>.03 & tmp_l & tmp_disc(:,k))),1,2);%<.15
+                hwPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_h & tmp_disc(:,k))),1,2);% .15~.28
+            end
+        end
+    end
+end
+%%
+save(sprintf('%sVRSpatialNovel.Occupancy.%d-%d.mat',Savedir, Dms([1 3])*100),'Dms', 'lPeriod','hPeriod','TCount', 'lwPeriod','hwPeriod','AnimalN')
+sumPlotSN
+return

+ 316 - 0
Code/ObjectSpatialAnalyses/VRSpatNovelObj.m

@@ -0,0 +1,316 @@
+% VRSpatNovel VR object comparison 
+preVRnew
+% VRObj:
+k =2;
+Names.([keyWords{k}, 'c']) = ones(size(Names.(keyWords{k})));
+for n = 1:length(Names.(keyWords{k}))
+    subDir = Names.(keyWords{k}){n};
+    addnum = 0;
+    if strcmp(subDir(16:20), 'Black')
+        Names.([keyWords{k}, 'c'])(n)= 2;
+        addnum = 11;
+    end
+    if subDir(22)=='6'
+        if str2num(subDir([24:25]+addnum))<27
+            Names.([keyWords{k}, 'c'])(n)= false;
+            continue
+        end
+    end
+    if ~strcmp(subDir([42:43]+addnum), '3D')
+            Names.([keyWords{k}, 'c'])(n)= false;
+            continue
+    end
+    try
+        xyz = h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+    catch
+        Names.([keyWords{k}, 'c'])(n)= 0;
+        fprintf('\n%s', subDir)
+    end
+end
+fprintf('\n\n the prs for %s is: %.2i', keyWords{k}, sum(Names.([keyWords{k}, 'c'])>0)/length(Names.([keyWords{k}, 'c'])))
+
+%%
+F_Pos = h5readatt([Workdir, subDir, '/', subDir, '.h5'], '/', 'VR_SPATIAL_FIXED_OBJECT_POSITIONS');
+N_Pos = h5readatt([Workdir, subDir, '/', subDir, '.h5'], '/', 'VR_SPATIAL_NOVELTY_OBJECT_POSITIONS');
+disP = @(x,y)(sqrt(sum(bsxfun(@minus, x, y).^2,2)));
+%  [nfile, nposition, nphase, nradium]
+nfile = length(Names.VRSpatNovelc);
+Onn = 11;
+nposition = Onn;
+nphase = 4;
+Dms = [3:15]/100;%.07+.05*[0:2];
+nradium = length(Dms);
+lPeriod = zeros(nfile, nposition, nphase, nradium);% low period 
+hPeriod = zeros(nfile, nposition, nphase, nradium);% high period
+lwPeriod = zeros(nfile, nposition, nphase, nradium);% lowwalk period
+hwPeriod = zeros(nfile, nposition, nphase, nradium);% highwalk period
+TCount = zeros(nfile, nposition, nphase);% lowwalk period
+AnimalN = zeros(length(Names.VRSpatNovelc),1);
+figure(224); clf;caxis([0 .3])
+Deflect = cell(nfile,nposition,2);
+NF_Pos = [-.3 0 .3;0 0 0; 0 0 0];
+ObjTypes = zeros(nfile,1);
+figure(224)
+nDefDis = 20;
+DefDis = cell(nfile,Onn,2);
+dDefDis = cell(nfile,Onn,2);
+hDefDis = cell(nfile,Onn,2);
+hdDefDis = cell(nfile,Onn,2);
+ObjSet = 1;%:2;
+%%
+for n = 26:nfile %length(Names.VRSpatNovelc)% 24
+    if ~Names.VRSpatNovelc(n) || n==43 || n==91 || n==26
+        continue
+    elseif Names.VRSpatNovelc(n)==2
+        addnum = 11;
+        ObjTypes = 1;
+    else
+        addnum = 0;
+        ObjTypes = 0;
+    end
+    %% data loading
+    clear evs xyz
+    subDir = Names.VRSpatNovel{n};
+    xyz=h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+    samplingrate = ceil(1/diff(xyz.Time(1:2)));
+    evs.evlog=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventlog');
+    evs.evFram=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/phaseStartFrameNum');
+    evs.evName=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventNames');
+    evs.evArg=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventArguments');
+    
+    AnimalN(n) = find(strcmp(uniRatN, subDir([39:40]+addnum)));
+    ObjN = [str2num(subDir(45 +addnum)), str2num(subDir(47 +addnum)),str2num(subDir(49 +addnum))];
+    ObjP = zeros(Onn,2);
+    ObjP(1,:) = F_Pos([1 3],  [ObjN(3)])';
+    if length(ObjSet)>1
+        ObjP(2,:) = N_Pos([1 3],  [ObjN(1)])';
+    end
+    
+    ObjAVO = [N_Pos([1 3],  ObjN(1)), F_Pos([1 3],  ObjN(3))]';
+    randcan = bsxfun(@times,rand(500,2)-.5, 2*[25 5])/100;
+    %   find enough random samples.
+    dd = @(x,y)(sqrt(sum(bsxfun(@minus, x, y).^2,2)));
+    drcan = find(dd(randcan, ObjAVO(1,:))>=.2 & dd(randcan, ObjAVO(2,:))>=.2);% , Onn-length(ObjSet),'first'
+    if length(drcan)< (Onn-length(ObjSet))
+        drcan = find(dd(randcan, ObjAVO(1,:))>=.15 & dd(randcan, ObjAVO(2,:))>=.15);
+    end
+    if length(drcan) > (Onn-length(ObjSet))
+        [~, dummy] = sort(randcan(drcan,1));
+        dummy = dummy(fix(linspace(1,length(drcan),(Onn-length(ObjSet)))));
+        drcan = drcan(dummy);
+    end
+    
+    ObjP((length(ObjSet)+1):end,:) = randcan(drcan,:);
+    FR = 10; %3;%  lowpassed frequency
+    xyz.Time(isnan(xyz.X)) = [];
+    xyz.Frame(isnan(xyz.X)) = [];
+    
+    xyz.X = ButterFilter(xyz.X(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Y = ButterFilter(xyz.Y(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Z = ButterFilter(xyz.Z(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    
+    %% walking. 
+    
+    lprd = find(diff(evs.evlog.Frame,1,1)>10000);
+    Periods = zeros(length(lprd),2);
+    tmpY = xyz.Y;
+    
+    tmp_out = abs(xyz.X-F_Pos(1,2))>.5 | abs(xyz.Z-F_Pos(3,2))>.25;
+    nint = 40;
+    spd = SmoothSpeed([xyz.X, xyz.Z], 1, 40);
+    v = sqrt(sum(SmoothSpeed([xyz.X, xyz.Z], xyz.Time, 40).^2,2));
+    dv = SmoothSpeed(v, 1, 2);
+    disc = zeros(length(tmpY),size(ObjP,1));
+    headv = zeros(length(tmpY),size(ObjP,1));
+    headang = zeros(length(tmpY),size(ObjP,1));
+    for k = 1:size(ObjP,1)
+        disc(:,k) = disP([xyz.X xyz.Z],ObjP(k,:));
+        headv(:,k) = sum(bsxfun(@minus,ObjP(k,:), [xyz.X, xyz.Z]).*spd,2)>0;
+        headang(:,k) = angle(sqrt(-1)*(-xyz.Z+ObjP(k,2))+(-xyz.X+ObjP(k,1)));
+    end
+    disc(tmp_out,:) = 10;% exclude all at once
+    for kk = 1:2%length(lprd)
+        Periods(kk,:) = [evs.evlog.Frame(lprd(kk)), evs.evlog.Frame(lprd(kk)+1)];
+        if kk == 1
+            Periods(kk,1) = Periods(kk,1) + fix((Periods(kk,2) - Periods(kk,1))/3*2);% took the last 2 min in phase 1
+        end
+        % I took only 'wait_duration' event for each event. 
+        tt = xyz.Frame>max(Periods(kk,1)-10,1) & xyz.Frame<=Periods(kk,2);
+        tmp_t = xyz.Frame(tt);
+        tmp_v = v(tt);
+        tmp_dv = dv(tt);
+        tmp_l = tmpY(tt)<.15;
+        tmp_h = tmpY(tt)>=.15 ;% & tmpY(tt)<=.28;
+        tmp_x = xyz.X(tt);
+        tmp_z = xyz.Z(tt);
+        % about trajectory
+        tmp_disc1 = disc(tt,:)<=.1;%(.03 + .05
+        disc_tmp = disc(tt,:);
+        ang_tmp = headang(tt,:);
+        for k =1:Onn
+            trajs = StartEnding(tmp_disc1(:,k));
+            if ~isempty(trajs)% && Names.VRSpatNovelc(n)==1
+                trajs((trajs(:,2)- trajs(:,1))<60,:) = [];
+                ntraj = size(trajs,1);
+                Deflect{n,k,kk} = zeros(ntraj, 5);% [closes_distance, angle]
+                DefDis{n,k,kk} = zeros(ntraj, nDefDis);
+                dDefDis{n,k,kk} = zeros(ntraj, nDefDis);
+                hDefDis{n,k,kk} = zeros(ntraj, nDefDis);
+                hdDefDis{n,k,kk} = zeros(ntraj, nDefDis);
+                for nn = 1:ntraj
+                    [dummy, dummyid] = min(disc_tmp(trajs(nn,1): trajs(nn,2),k));
+                   
+                    Deflect{n,k,kk}(nn,:) = [dummy, ...
+                        angle(exp(sqrt(-1)*(2*pi- ang_tmp(trajs(nn,2),k) + ang_tmp(trajs(nn,1),k)))), ...
+                        (trajs(nn,2)- trajs(nn,1)), ...
+                        mean(tmp_v(max(trajs(nn,1)-5,1):min(trajs(nn,1),length(tmp_v)))), ...( trajs(nn,1)+dummyid-1)
+                        mean(tmp_v(max(trajs(nn,1)+dummyid,1):min(trajs(nn,1)+dummyid+5,length(tmp_v))))];%end<[maxtime, ang_diff, duration]
+                    DefDis{n,k,kk}(nn,:) = tmp_v(floor(linspace(trajs(nn,1), trajs(nn,2), nDefDis)));% [min(disc_tmp(trajs(nn,1): trajs(nn,2),k)),angle(exp(sqrt(-1)*(2*pi- ang_tmp(trajs(nn,2),k) + ang_tmp(trajs(nn,1),k))))];%<
+                    dDefDis{n,k,kk}(nn,:) = tmp_dv(floor(linspace(trajs(nn,1), trajs(nn,2), nDefDis)));% [min(disc_tmp(trajs(nn,1): trajs(nn,2),k)),angle(exp(sqrt(-1)*(2*pi- ang_tmp(trajs(nn,2),k) + ang_tmp(trajs(nn,1),k))))];%<
+                    hDefDis{n,k,kk}(nn,:) = tmp_v(floor(linspace(trajs(nn,1), trajs(nn,1)+dummyid-1, nDefDis)));% [min(disc_tmp(trajs(nn,1): trajs(nn,2),k)),angle(exp(sqrt(-1)*(2*pi- ang_tmp(trajs(nn,2),k) + ang_tmp(trajs(nn,1),k))))];%<
+                    hdDefDis{n,k,kk}(nn,:) = tmp_dv(floor(linspace(trajs(nn,1), trajs(nn,1)+dummyid-1, nDefDis)));% [min(disc_tmp(trajs(nn,1): trajs(nn,2),k)),angle(exp(sqrt(-1)*(2*pi- ang_tmp(trajs(nn,2),k) + ang_tmp(trajs(nn,1),k))))];%<
+                    
+                end
+                TCount(n,k,kk) = ntraj;%<.15
+            else
+                TCount(n,k,kk) = 0;%<.15
+            end
+            for nn = 1:nradium % .5 + .5*nn
+                tmp_disc = disc(tt,:)<=Dms(nn);%(.03 + .05*(nn-1));
+                lPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_v>.03 &tmp_l & tmp_disc(:,k))),1,2);%<.15
+                hPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_h & tmp_disc(:,k))),1,2);% .15~.28
+                
+                lwPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(tmp_v>.03 & headv(tt)>.03 & tmp_l & tmp_disc(:,k))),1,2);%<.15
+                hwPeriod(n,k,kk, nn) = sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_h & tmp_disc(:,k))),1,2);% .15~.28
+            end
+        end
+%         pause
+%         figure(224);clf
+    end
+end
+fprintf('\n finish \n')
+VRSpatialNoveltyTrajV
+% return
+if 0
+%% statistics of deflection. 
+% I'd need to compare the statistics from sham location vs the statistics
+% from the acture object location. 
+% here I could compute the comparison of the obj/sham and distorted
+% obj/sham 
+limT = 4*240;
+limD = .03;
+for bgs = 1:2
+figure(218+bgs);clf
+for phs = 1:2;%1;
+    %
+AngComp = cell(2,1);
+token = Names.VRSpatNovelc==bgs;
+AngComp{1} = cell2mat(reshape(sq(Deflect(token,ObjSet,phs)),[],1));
+AngComp{1}(AngComp{1}(:,1)>limD |AngComp{1}(:,3)>limT ,:) = [];% 
+AngComp{1} = [AngComp{1}, ones(size(AngComp{1},1),1)];
+
+% AngComp{2} = cell2mat(reshape(sq(Deflect(:,:,1)),[],1));
+AngComp{2} = cell2mat(reshape(sq(Deflect(token,setdiff(1:Onn,ObjSet),phs)),[],1));
+AngComp{2}(AngComp{2}(:,1)>limD |AngComp{2}(:,3)>limT,:) = [];
+AngComp{2} = [AngComp{2}, 2*ones(size(AngComp{2},1),1)];
+sizeAngComp = [size(AngComp{1},1), size(AngComp{2},1)];
+sizeAngComp(3) = sum(sizeAngComp(1:2))
+AngComp = cell2mat(AngComp);
+nshuff = 1000;
+DefRatio = zeros(nshuff+1,1);
+Rconst = sizeAngComp(2)/sizeAngComp(1);
+AngComp(:,2) = abs(AngComp(:,2));
+for k = 1:nshuff
+    [~,rids] = sort(rand(sizeAngComp(3),1));
+    DefRatio(k) = Rconst*sum(AngComp(rids(1:sizeAngComp(1)), 2)<(pi/2))/ ...
+        sum(AngComp(rids((1+sizeAngComp(1)):end), 2)<(pi/2));
+%     DefRatio(k) = sum(AngComp(rids(1:sizeAngComp(1)), 2)<(pi/2));
+end
+DefRatio(end)=Rconst*sum(AngComp(1:sizeAngComp(1), 2)<(pi/2))/...
+    sum(AngComp((1+sizeAngComp(1)):end, 2)<(pi/2));
+DefRatio(isinf(DefRatio))=0;
+EmpiricalPval = sum(DefRatio(1:(end-1))>DefRatio(end))/nshuff
+figure(218+bgs);
+subplot(1,2,phs)
+hold on
+for k = 1:2
+    if k ==1
+        tokens =cell2mat(reshape(sq(Deflect(token,ObjSet,phs)),[],1));
+        tokens(tokens(:,3)>limT ,:) = [];% tokens(:,1)>.03 |
+    else
+        tokens =cell2mat(reshape(sq(Deflect(token,setdiff(1:Onn,ObjSet),phs)),[],1));
+        tokens(tokens(:,3)>limT ,:) = [];% tokens(:,1)>.03 |
+    end
+    plot(abs(tokens(:,2)), tokens(:,1),'o')
+end
+set(gca,'XTick', [0:.25:1]*pi, 'XTicklabel', [0:.25:1]*180)
+xlabel('theta (degree)')
+ylabel('closest distance (m)')
+grid on; axis tight
+legend('Obj', 'sham')
+title(sprintf('Phase %d: eP-Val is %.3f', phs, EmpiricalPval))
+end
+end
+end
+return
+
+%%
+save(sprintf('%sVRSpatialNovelObj.Obj.%d-%d.mat',Savedir, Dms([1 3])*100),'Dms','Deflect','DefDis', 'lPeriod','hPeriod','TCount', 'lwPeriod','hwPeriod','AnimalN')
+
+return
+%%
+spdist = zeros(nradium,2,2);% nrad, 2obj, phases, 2 behavior
+ figure(2);clf;hold on; 
+ 
+Sspdist = zeros(nradium,2,2);% nrad, 2obj, phases, 2 behavior
+ranksumSig = @(x,y)((median(x)-median(y)));
+ for n = 1:nradium
+     for m =1:2
+     spdist(n,:,m,1) = [ranksum(sq(lPeriod(Names.VRSpatNovelc==1, 1,m,n)), sq(lPeriod(Names.VRSpatNovelc==2, 1,m,n))), ...
+         ranksum(sq(sum(lPeriod(Names.VRSpatNovelc==1, 2:3,m,n),2)), sq(sum(lPeriod(Names.VRSpatNovelc==2, 2:3,m,n),2)))];
+     spdist(n,:,m,2) = [ranksum(sq(lwPeriod(Names.VRSpatNovelc==1, 1,m,n)), sq(lwPeriod(Names.VRSpatNovelc==2, 1,m,n))), ...
+         ranksum(sq(sum(lwPeriod(Names.VRSpatNovelc==1, 2:3,m,n),2)), sq(sum(lwPeriod(Names.VRSpatNovelc==2, 2:3,m,n),2)))];
+     Sspdist(n,:,m,1) = [ranksumSig(sq(lPeriod(Names.VRSpatNovelc==1, 1,m,n)), sq(lPeriod(Names.VRSpatNovelc==2, 1,m,n))), ...
+         ranksumSig(sq(sum(lPeriod(Names.VRSpatNovelc==1, 2:3,m,n),2)), sq(sum(lPeriod(Names.VRSpatNovelc==2, 2:3,m,n),2)))];
+     Sspdist(n,:,m,2) = [ranksumSig(sq(lwPeriod(Names.VRSpatNovelc==1, 1,m,n)), sq(lwPeriod(Names.VRSpatNovelc==2, 1,m,n))), ...
+         ranksumSig(sq(sum(lwPeriod(Names.VRSpatNovelc==1, 2:3,m,n),2)), sq(sum(lwPeriod(Names.VRSpatNovelc==2, 2:3,m,n),2)))];
+     end
+ for k = 1:2;
+     subplot(nradium,2,n*2-1);
+     plot(sq(sum(lPeriod(Names.VRSpatNovelc==k, :,1,n),2)), sq(sum(lPeriod(Names.VRSpatNovelc==k, :,2,n),2)), '.');hold on; 
+     grid on; axis tight
+%      xlabel('phase 1')
+     ylabel([num2str(Dms(n)*100),'cm'])% 'phase 2:', 
+%      title('low for all ')
+     subplot(nradium,2,n*2);
+     plot(sq(sum(lwPeriod(Names.VRSpatNovelc==k, :,1,n),2)), sq(sum(lwPeriod(Names.VRSpatNovelc==k, :,2,n),2)), '.');hold on; 
+     grid on; axis tight
+%      xlabel('phase 1')
+%      ylabel('phase 2')
+%      title('lowFacing for all')
+     
+ end
+ end
+ for k = 1:2;
+     figure(20+k);
+     for n =1:2;
+         subplot(2,2,n);
+         imagesc(Dms*100, [], sq(spdist(:,:,n,k))', [0 .1]);
+         xlabel(['phs.', num2str(n)]);
+         set(gca,'YTick',1:2,'YTicklabel', {'obj','sham'})
+         subplot(2,2,2+n);
+         imagesc(Dms*100, [], sq(Sspdist(:,:,n,k))', [-.1 .1]);
+         xlabel(['phs.', num2str(n)]);
+         ylabel('V-B')
+         set(gca,'YTick',1:2,'YTicklabel', {'obj','sham'})
+     end
+     colormap jet
+ end
+ savefig(2,'VRSN.explorationtime.F_Pos.VBcmp.fig')
+ savefig(21,'VRSN.explorationtime.F_Pos.VBcmp.lPeriod.fig')
+ savefig(22,'VRSN.explorationtime.F_Pos.VBcmp.lwPeriod.fig')
+print(21,'VRSN.explorationtime.F_Pos.VBcmp.lPeriod.jpg', '-djpeg')
+print(22,'VRSN.explorationtime.F_Pos.VBcmp.lwPeriod.jpg', '-djpeg')
+ 
+
+return

+ 351 - 0
Code/ObjectSpatialAnalyses/VRSpatialNoveltyTrajV.m

@@ -0,0 +1,351 @@
+% speed change w.r.t. geodisic distance. 
+figure(225);clf
+nn = {'obj','sham'};
+nbins = 20;%
+cdistance = .05;
+limT = 4*240;
+bg = 4;
+for m = 1:2 % two backgrounds
+    for n =1:2 % 2 phases
+        for k = 1:2 % objects
+            if k ==1
+                ll = (DefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll = cell2mat(ll(:));
+                ll2 = (dDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, ObjSet, n));
+                Dislb = cell2mat(Dislb(:));
+            else
+                ll = (DefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll = cell2mat(ll(:));
+                ll2 = (dDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                Dislb = cell2mat(Dislb(:));
+            end
+            xv = linspace(0,2,nbins);
+            crit = Dislb(:,1)<cdistance & Dislb(:,2)>=(pi/2) & Dislb(:,3)<limT;
+            h = histc(bsxfun(@rdivide, ll(crit,:), ll(crit,1)),xv);% (abs(Dislb(:,2))>(pi/2),:)
+            h = h(:,bg:end);
+            hy = linspace(0,1,nDefDis);
+            hy = hy(bg:end);
+            subplot(4,4,(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv,hy, bsxfun(@rdivide,h,sum(h,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            xv2 = linspace(-.015,.015,nbins);
+            h2 = histc(ll2(crit,:),xv2);% (abs(Dislb(:,2))>(pi/2),:)
+            subplot(4,4,8+(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv2,linspace(0,1,nDefDis), bsxfun(@rdivide,h2,sum(h2,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            hold on; plot( [0 0],[0 1],'r:')
+            plot(median(ll2(crit,:)),linspace(0,1,nDefDis),'k')
+            
+        end
+    end
+end
+subplot(4,4,1);ylabel('VR')
+subplot(4,4,5);ylabel('Black')
+subplot(4,4,9);ylabel('VR_d')
+subplot(4,4,13);ylabel('Black_d')
+xlabel('pass')
+colormap default
+savefig(225, 'VRSpatialNovel.Fix.traj.pass.fig')
+
+figure(226);clf
+nn = {'obj','sham'};
+for m = 1:2 % two backgrounds
+    for n =1:2 % 2 phases
+        for k = 1:2 % objects
+            if k ==1
+                ll = (DefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll = cell2mat(ll(:));
+                ll2 = (dDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, ObjSet, n));
+                Dislb = cell2mat(Dislb(:));
+            else
+                ll = (DefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll = cell2mat(ll(:));
+                ll2 = (dDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                Dislb = cell2mat(Dislb(:));
+            end
+            crit = Dislb(:,1)<cdistance  & Dislb(:,3)<limT;%& Dislb(:,2)<(pi/2)
+            h = histc(bsxfun(@rdivide, ll(crit,:), ll(crit,1)),xv);% (abs(Dislb(:,2))>(pi/2),:)
+            h = h(:,bg:end);
+            hy = linspace(0,1,nDefDis);
+            hy = hy(bg:end);
+            subplot(4,4,(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv,hy, bsxfun(@rdivide,h,sum(h,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            h2 = histc(ll2(crit,:),xv2);% (abs(Dislb(:,2))>(pi/2),:)
+            subplot(4,4,8+(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv2,linspace(0,1,nDefDis), bsxfun(@rdivide,h2,sum(h2,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            hold on; plot([0 0],[0 1], 'r:')
+            plot(median(ll2(crit,:)),linspace(0,1,nDefDis),'k')
+           
+        end
+    end
+end
+subplot(4,4,1);ylabel('VR')
+subplot(4,4,5);ylabel('Black')
+subplot(4,4,9);ylabel('VR_d')
+subplot(4,4,13);ylabel('Black_d')
+xlabel('close')
+colormap default
+savefig(226, 'VRSpatialNovel.Fix.traj.close.fig')
+
+
+
+
+figure(215);clf
+% nn = {'obj','sham'};
+% nbins = 20;%
+% cdistance = .04;
+% limT = 600;
+for m = 1:2 % two backgrounds
+    for n =1:2 % 2 phases
+        for k = 1:2 % objects
+            if k ==1
+                ll = (hDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll = cell2mat(ll(:));
+                ll2 = (hdDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, ObjSet, n));
+                Dislb = cell2mat(Dislb(:));
+            else
+                ll = (hDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll = cell2mat(ll(:));
+                ll2 = (hdDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                Dislb = cell2mat(Dislb(:));
+            end
+            crit = Dislb(:,1)<cdistance & Dislb(:,2)>=(pi/2) & Dislb(:,3)<limT;
+            h = histc(bsxfun(@rdivide, ll(crit,:), ll(crit,1)),xv);% (abs(Dislb(:,2))>(pi/2),:)
+            h = h(:,bg:end);
+            hy = linspace(0,1,nDefDis);
+            hy = hy(bg:end);
+            subplot(4,4,(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv,hy, bsxfun(@rdivide,h,sum(h,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            %         ll =
+%             xv2 = linspace(0,.3,nbins);
+            xv2 = linspace(-.015,.015,nbins);
+            h2 = histc(ll2(crit,:),xv2);% (abs(Dislb(:,2))>(pi/2),:)
+%             [h2, xv2] = hist(ll2(Dislb(:,1)<.03 & Dislb(:,2)>=(pi/2),:),nbins);% (abs(Dislb(:,2))>(pi/2),:)
+            subplot(4,4,8+(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv2,linspace(0,1,nDefDis), bsxfun(@rdivide,h2,sum(h2,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            hold on; plot( [0 0],[0 1],'r:')
+            plot(median(ll2(crit,:)),linspace(0,1,nDefDis),'k')
+            
+        end
+    end
+end
+subplot(4,4,1);ylabel('VR')
+subplot(4,4,5);ylabel('Black')
+subplot(4,4,9);ylabel('VR_d')
+subplot(4,4,13);ylabel('Black_d')
+xlabel('pass')
+colormap default
+savefig(215, 'VRSpatialNovel.Fix.traj.pass.ph.fig')
+
+figure(216);clf
+nn = {'obj','sham'};
+for m = 1:2 % two backgrounds
+    for n =1:2 % 2 phases
+        for k = 1:2 % objects
+            if k ==1
+                ll = (hDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll = cell2mat(ll(:));
+                ll2 = (hdDefDis(Names.VRSpatNovelc == m, ObjSet, n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, ObjSet, n));
+                Dislb = cell2mat(Dislb(:));
+            else
+                ll = (hDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll = cell2mat(ll(:));
+                ll2 = (hdDefDis(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                ll2 = cell2mat(ll2(:));
+                Dislb = (Deflect(Names.VRSpatNovelc == m, setdiff(1:Onn,ObjSet), n));
+                Dislb = cell2mat(Dislb(:));
+            end
+            crit = Dislb(:,1)<cdistance & Dislb(:,3)<limT; % & Dislb(:,2)<(pi/2)
+            h = histc(bsxfun(@rdivide, ll(crit,:), ll(crit,1)),xv);% (abs(Dislb(:,2))>(pi/2),:)
+            h = h(:,bg:end);
+            hy = linspace(0,1,nDefDis);
+            hy = hy(bg:end);
+            subplot(4,4,(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv,hy, bsxfun(@rdivide,h,sum(h,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            %         ll =
+            h2 = histc(ll2(crit,:),xv2);% (abs(Dislb(:,2))>(pi/2),:)
+%             [h2, xv2] = hist(ll2(Dislb(:,1)<.03 & Dislb(:,2)<(pi/2),:),nbins);% (abs(Dislb(:,2))>(pi/2),:)
+            subplot(4,4,8+(m-1)*4 + (n-1)*2 +k)
+            imagesc(xv2,linspace(0,1,nDefDis), bsxfun(@rdivide,h2,sum(h2,1))')
+            title(sprintf('%s in phase.%d', nn{k}, n))
+            hold on; plot([0 0],[0 1], 'r:')
+            plot(median(ll2(crit,:)),linspace(0,1,nDefDis),'k')
+           
+        end
+    end
+end
+subplot(4,4,1);ylabel('VR')
+subplot(4,4,5);ylabel('Black')
+subplot(4,4,9);ylabel('VR_d')
+subplot(4,4,13);ylabel('Black_d')
+xlabel('close')
+colormap default
+savefig(216, 'VRSpatialNovel.Fix.traj.close.ph.fig')
+%% 
+% assign labels
+SpeedCmp = [];
+lbDef = cell(size(Deflect));
+for k = 1:size(Deflect,1)
+    for n = 1:length(Deflect(k,:))
+    lbDef{k,n} = ones(size(Deflect{k,n},1),1)*k;
+    end
+end
+%
+bgn = 1;%[];
+SpeedCmpS = cell(2,1);
+for phs = 1:2
+for k = 1:Onn
+    if isempty(bgn)
+        tmp = [cell2mat(Deflect(:,k,phs)), cell2mat(lbDef(:,k,phs))];%
+    else
+        tmp = [cell2mat(Deflect(Names.VRSpatNovelc==bgn,k,phs)), cell2mat(lbDef(Names.VRSpatNovelc==bgn,k,phs))];%
+    end
+    tmp(tmp(:,1)>.05 |tmp(:,3)>limT ,:)=[];% tmp(:,1)>.06|tmp(:,2)<(pi/2)
+    SpeedCmp = [SpeedCmp; [tmp(:,[4 5]), ones(size(tmp,1),1)*k,tmp(:,6) ]];
+end
+token = SpeedCmp(:,3)==1;
+snum = [accumarray(SpeedCmp(token,4),1, [nfile,1]), accumarray(SpeedCmp(~token,4),1, [nfile,1])];
+SpeedCmpS{phs} = [accumarray(SpeedCmp(token,4), diff(SpeedCmp(token,1:2),1,2), [nfile,1]), accumarray(SpeedCmp(~token,4),diff(SpeedCmp(~token,1:2),1,2), [nfile,1])]./snum; 
+
+%%
+end
+%
+figure(221);clf
+clear g
+g = gramm('x',reshape(repmat({'obj', 'sham'}, 2*nfile,1),[],1), 'y', reshape(cell2mat(SpeedCmpS),[],1), 'color', reshape([ones(nfile,2);2*ones(nfile,2)],[],1));
+g.geom_jitter('width',0.4,'height',0);
+g.stat_violin('fill','transparent');%
+g.stat_boxplot('width',.2);
+[pp(1,1), ~, stat] = signrank(diff(SpeedCmpS{1},1,2));
+zz(1,1) = stat.zval;
+n(1,1) = sum(~isnan(diff(SpeedCmpS{1},1,2)));
+[pp(1,2), ~, stat] = signrank(diff(SpeedCmpS{2},1,2));
+zz(1,2) = stat.zval;
+n(1,2) = sum(~isnan(diff(SpeedCmpS{2},1,2)));
+
+[pp(2,1), ~, stat] = signrank(SpeedCmpS{1}(:,1));
+zz(2,1) = stat.zval;
+n(2,1) = sum(~isnan(SpeedCmpS{1}(:,1)));
+[pp(2,2), ~, stat] = signrank(SpeedCmpS{1}(:,2));
+zz(2,2) = stat.zval;
+n(2,2) = sum(~isnan(SpeedCmpS{1}(:,2)));
+[pp(3,1), ~, stat] = signrank(SpeedCmpS{2}(:,1));
+zz(3,1) = stat.zval;
+n(3,1) = sum(~isnan(SpeedCmpS{2}(:,1)));
+[pp(3,2), ~, stat] = signrank(SpeedCmpS{2}(:,2));
+zz(3,2) = stat.zval;
+n(3,2) = sum(~isnan(SpeedCmpS{2}(:,2)));
+g.set_title(sprintf('Speed Compare: obj vs sham: ph1: %.2f, ph2: %.2f\n ph1: obj: %.2f, sham: %.2f\n ph2: obj: %.2f, sham: %.2f', signrank(diff(SpeedCmpS{1},1,2)),signrank(diff(SpeedCmpS{2},1,2)), ...
+    signrank(SpeedCmpS{1}(:,1)),  signrank(SpeedCmpS{1}(:,2)), ...
+    signrank(SpeedCmpS{2}(:,1)),  signrank(SpeedCmpS{2}(:,2))))
+g.set_names('x', [],'y', 'speed difference (m/s)', 'color', 'phase')
+g.draw()
+drawnow
+figure(221);
+grid on
+return
+%% check the time spending 
+figure(220);clf
+clear g
+phn = {'ph.1', 'ph.2'};
+objn = {'Obj', 'sham'};
+for kk = 1:3:13
+    spdtime = cell(2,2);
+    for k = 1:2 % environment
+        for n = 1:2 % phase
+            spdtime{k,n} = [sq(lPeriod(Names.VRSpatNovelc==k, 1, n, kk)), ...
+                sq(mean(lPeriod(Names.VRSpatNovelc==k, 2:end, n, kk),2))];
+            spdtime{k,n} = [spdtime{k,n}, k*ones(size(spdtime{k,n},1),1), ...
+                n*ones(size(spdtime{k,n},1),1)];
+            
+        end
+    end
+    %  i take only3:3:15 cm
+    spdtime = cell2mat(spdtime(:));
+    spdtime(spdtime(:,1) ==0 |spdtime(:,2) ==0,:)=[];
+    for n = 1:2
+        g((kk-1)/3 +1,n) = gramm('x', phn(spdtime(:,4)), 'y', spdtime(:,n)/240, 'color', spdtime(:,3));
+        g((kk-1)/3 +1,n).stat_violin('fill','transparent');
+        g((kk-1)/3 +1,n).stat_boxplot('width',.2);
+        g((kk-1)/3 +1,n).set_title(sprintf('%d cm %s', fix(Dms(kk)*100), objn{n}));
+    end
+end
+g.set_names('color','env', 'x',[], 'y','time(sec)');
+g.draw();
+%%
+% close 220
+meantrajs  = zeros(20, nfile, Onn, 2);
+startSpeed = cell(nfile,Onn,2);
+tmp(:,1)>.05 |tmp(:,3)>limT
+for k =1:nfile
+    for n = 1:Onn
+        for m = 1:2
+            if isempty(DefDis{k,n,m})
+                continue
+            end
+            tmp = Deflect{k,n,m}(:,1)<.05 & Deflect{k,n,m}(:,3)<limT;
+            if isempty(tmp)
+                continue
+            end
+            startSpeed{k,n,m} = DefDis{k,n,m}(tmp,1);
+            meantrajs(:,k,n,m) = mean(bsxfun(@rdivide, DefDis{k,n,m}(tmp,:), startSpeed{k,n,m}),1);
+        end
+    end
+end
+%
+x = linspace(0, 1, 20);
+yo = sq(meantrajs(:,:,:,2));
+% yo(:,:,2) = mean(tmp(:,:,tmp()),3);
+y = cell(nfile,2);
+c = cell(nfile,2);
+% figure
+emptymats = false(nfile,1);
+for k = 1:nfile
+    if isempty(DefDis{k,1,2})
+        emptymats(k) = true;
+        continue
+    end
+    y{k,1} = yo(:,k,1);
+    y{k,2} = mean(yo(:,k,sq(yo(1,k,:)>0)),3);
+    c{k,1} = 'obj';
+    c{k,2} = 'sham';
+end
+y = y(Names.VRSpatNovelc==1 & ~emptymats,:);
+c = c(Names.VRSpatNovelc==1 & ~emptymats,:);
+g = gramm('x', x, 'y', y(:), 'color', c(:))
+g.stat_summary('type','std');
+g.set_title('speed compare');
+figure('Position',[100 100 800 550]);
+g.draw();
+%%
+c1 = cell2mat(startSpeed(Names.VRSpatNovelc==1,1,2));
+c2 = cell2mat(reshape(startSpeed(Names.VRSpatNovelc==1,2:end,2),[],1));
+clear g
+a = ['obj', 'shame']
+x = [repmat(1,length(c2),1);repmat(2, length(c2),1)];
+y = [c1;c2]
+g = gramm('x', x, 'y', y)
+g.geom_jitter();
+g.stat_boxplot()
+g.set_title(sprintf('init speed compare p = %.3f', ranksum(c1,c2)));
+figure
+g.draw()

+ 226 - 0
Code/ObjectSpatialAnalyses/VRobjdrafts.m

@@ -0,0 +1,226 @@
+preVRnew
+% VRObj:
+for k =1% 1 for VRobj, 2 for VRspatialNov
+    Names.([keyWords{k}, 'c']) = true(size(Names.(keyWords{k})));
+    for n = 1:length(Names.(keyWords{k}))
+        subDir = Names.(keyWords{k}){n};
+        try
+            xyz = h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+        catch
+            Names.([keyWords{k}, 'c'])(n)= false;
+            fprintf('\n%s', subDir)
+        end
+    end
+    fprintf('\n\n the utility for %s is: %.2i', keyWords{k}, sum(Names.([keyWords{k}, 'c']))/length(Names.([keyWords{k}, 'c'])))
+end
+
+%
+load('/storage/weiwei/data/VRnew/VRobjPos.mat')
+aa = ObjPos;
+% figure(1);clf;hold on for visualize results
+disP = @(x,y)(sqrt(sum(bsxfun(@minus, x, y).^2,2)));
+C_R = @(x,A,c)(bsxfun(@minus,x,c)*A');
+%  [nfile, nposition, nphase, nradium]
+nfile = length(Names.VRObjc);
+nposition = 2;
+nphase = 3;
+Dms = [6:15]/100;%.07+.05*[0:2]; size of the distance. 
+nradium = length(Dms);
+lPeriod = zeros(nfile, nposition, nphase, nradium);% low period 
+hPeriod = zeros(nfile, nposition, nphase, nradium);% high period
+lwPeriod = zeros(nfile, nposition, nphase, nradium);% lowwalk period
+hwPeriod = zeros(nfile, nposition, nphase, nradium);% highwalk period
+TCount = zeros(nfile, nposition, nphase, nradium);% lowwalk period
+% we used only the low or low  facing period in figures.  
+ObjTypes = zeros(length(Names.VRObjc),1);
+AnimalN = zeros(length(Names.VRObjc),1);
+figure(224);clf;hold on
+figure(225);clf;hold on
+collectTraj = cell(2,1);
+collectTraj2 = cell(2,1);
+isplottraj = false;% true;%
+spds = @(x,n)(sqrt(sum(([x((n+1):end,:);zeros(n,size(x,2))]- x).^2,2))/n);
+spdst  = @(x,n,t)(sqrt(sum(([x((n+1):end,:);zeros(n,size(x,2))]- x).^2,2))./([t((n+1):end);(t(end)+t(1:n))] - t));
+%%
+for n = 24:length(Names.VRObjc)% no proper data before session 24
+    if ~Names.VRObjc(n) || n==32 || n==71 ||n==75 || n==103 || n==92 || n==113 || n==132
+        continue
+    end
+    %%
+    subDir = Names.VRObj{n};
+    xyz=h5read([Workdir, subDir, '/', subDir, '.h5'], '/preprocessed/Rigid Body/Rat/Position');
+    samplingrate = ceil(1/diff(xyz.Time(1:2)));
+    evs.evlog=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventlog');
+    evs.evFram=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/phaseStartFrameNum');
+    evs.evName=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventNames');
+    evs.evArg=h5read([Workdir, subDir, '/', subDir, '.h5'], '/events/eventArguments');
+    evs.ObjType = h5readatt([Workdir, subDir, '/', subDir, '.h5'], '/','VR_OBJECT_TYPE');
+    
+    if strcmp(evs.ObjType, 'VR')
+        ObjTypes(n) = 0;
+    else
+        ObjTypes(n) = 1;
+    end
+    AnimalN(n) = find(strcmp(uniRatN, subDir(36:37)));
+%     figure(224);clf;
+    %% behavior segmentation
+    FR = 10; % lowpassed frequency3;%
+    xyz.Time(isnan(xyz.X)) = [];
+    xyz.Frame(isnan(xyz.X)) = [];
+    
+    xyz.X = ButterFilter(xyz.X(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Y = ButterFilter(xyz.Y(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    xyz.Z = ButterFilter(xyz.Z(~isnan(xyz.Z)), FR, samplingrate, 'low');
+    vz = spdst(xyz.Y,1,xyz.Time);% diff([0;xyz.Y],1,1)./diff([0;xyz.Time],1,1);
+    v2 = sqrt(sum(diff([0 0;[xyz.X xyz.Z]],1,1).^2,2))./diff([0;xyz.Time],1,1);
+    vxz = sqrt(sum(SmoothSpeed([xyz.X, xyz.Z],  xyz.Time, 40).^2,2));
+    %% climb-jump behavior 
+    % detect and then exclude. 
+    % Detected periods are stored for consistency. 
+    % idea: detect beginning by "center-crossing" event, then detect ending
+    % after the beginning as point when animal leave the cylinder. 
+    
+    if 0% ~exist([Savedir, '/', subDir, '.jumpPrd.mat'])
+        try
+            % jumping climbing periods prd
+            tmp_j = conv(1*(vz<-.3), [1 1 1 1]', 'same')>0;
+            prd = StartEnding(tmp_j(:));
+            stP = [xyz.X(prd(:,1)), xyz.Z(prd(:,1))];
+            [tmpD, tmpI]= min([disP(stP, aa(1,[1 3])), disP(stP, aa(2,[1 3]))],[],2);
+            zz = tmpD < .2 & tmpD >= .08;
+            PosE = prd(zz,:);% & v2(prd(:,1))>.25
+            tmpD = tmpD(zz,:);
+            tmpI = tmpI(zz,:);
+            stP = [xyz.X(prd(zz,2)), xyz.Z(prd(zz,2))];
+            tmpD2 = disP(stP, aa(tmpI,[1 3]));
+            %% center crossing as the begining
+            prdC = [StartEnding([0;disP([xyz.X, xyz.Z], aa(1,[1 3]))<.035]); ...
+                StartEnding([0;disP([xyz.X, xyz.Z], aa(2,[1 3]))<.035])]; 
+            % start and ending point of entering into the r = 3.5cm areas
+            % around the two objects, respectively.  
+            prdC(prdC(:,1)<200,:)=[];
+            % not at very first when rat just entered into the arena
+            cprdC = fix(mean(prdC,2));
+            % center of the crossing points. 
+            cprdC(cprdC>(length(xyz.X)-300)) = [];
+            dists =sqrt( (xyz.X(cprdC-240) - xyz.X(cprdC+240)).^2 + ...
+                (xyz.Z(cprdC-240) - xyz.Z(cprdC+240)).^2);
+            % also condition on the distance during this "crossing" event. 
+            % which should at least longer than 8 cm. 
+            % to makesure this is a proper "crossing", instead of a
+            % "rearing" when animal is sitting on the top. 
+            prdC = prdC(dists >= .08,:);
+            cprdC = cprdC(dists >= .08,:);
+            prdB = zeros(size(prdC,1),1);
+            prdE = zeros(size(prdC,1),1);
+            %%
+            ee = [];
+            for kk = 1:size(prdC,1)
+                try
+                    if sum(prdC(kk)>prdB & prdC(kk)<prdE)
+                        continue
+                    end
+                    tmp_center = [xyz.X(cprdC(kk)), xyz.Z(cprdC(kk))];
+                    [~, tmp_cid] = min(disP(aa(1:2,[1 3]),tmp_center));
+                    if (aa(tmp_cid,[1 3]) - [xyz.X(cprdC(kk)-60), xyz.Z(cprdC(kk)-60)])*(aa(tmp_cid,[1 3]) - [xyz.X(cprdC(kk)+60), xyz.Z(cprdC(kk)+60)])'>0
+                        continue
+                    end
+                    try
+                        prdB(kk) = prdC(kk,1) - find(vz(prdC(kk,1)-[0:600])>.15 & disP([xyz.X(prdC(kk,1)-[0:600]), xyz.Z(prdC(kk,1)-[0:600])],aa(tmp_cid,[1 3]))>=.05, 1,'first');
+                    catch
+                        prdB(kk) = prdC(kk,1) - find(vz(prdC(kk,1)-[0:900])>.15 & disP([xyz.X(prdC(kk,1)-[0:900]), xyz.Z(prdC(kk,1)-[0:900])],aa(tmp_cid,[1 3]))>=.05, 1,'first');
+                    end
+                    PosEid = find(PosE(:,1)>prdB(kk) & tmpD2>.15,1,'first');
+                    tmp2 = PosE(PosEid,2);
+                    tmp2 = min(tmp2, prdB(kk)+100+find(xyz.Y((prdB(kk)+100):tmp2)<.15, 1,'first'));
+                    prdE(kk) = tmp2 + find(vz(tmp2+[1:200])>-.1 ,1,'first');
+                    
+                    
+                    if isplottraj
+                        %%
+                        figure(224)
+                        hold on
+                        [traj, A]= CenterRotate([xyz.X(prdB(kk):10:prdE(kk)), xyz.Z(prdB(kk):10:prdE(kk))], aa(tmp_cid,[1 3]), .05); 
+                        plot(traj(1,1), traj(1,2),'rx')
+                        plot(traj(end,1), traj(end,2),'bx')
+                        jp = C_R(tmp_center, A, aa(tmp_cid,[1 3]));
+                        plot(jp(1),jp(2),'k.')
+                        jp = C_R([xyz.X(PosE(PosEid,1):10:PosE(PosEid,2)), xyz.Z(PosE(PosEid,1):10:PosE(PosEid,2))], A, aa(tmp_cid,[1 3]));
+                        plot(traj(:,1), traj(:,2),'Color', [.5 .5 .5])
+                        plot(jp(:,1), jp(:,2), 'r')
+                    end
+                catch
+                end
+            end
+            figure(224);         grid on; axis tight
+            %%
+            if sum(prdB>0)
+                prdE(prdB==0)=[];
+                prdB(prdB==0)=[];
+                jumpPrd = [xyz.Frame(prdB), xyz.Frame(prdE), sign(xyz.X(prdB))];
+                save([Savedir, '/', subDir, '.jumpPrd.mat'],'jumpPrd')
+            else
+                jumpPrd = [];
+            end
+        catch
+            jumpPrd = [];
+        end
+    else
+        if exist([Savedir, '/', subDir, '.jumpPrd.mat'])
+            load([Savedir, '/', subDir, '.jumpPrd.mat'])
+        else
+            jumpPrd = [];
+        end
+    end
+    %% walking. 
+    %
+    Periods = zeros(length(evs.evFram),2);
+    tmpY = xyz.Y;
+    nint = 40;
+    spd = [[zeros(nint,1);xyz.X]-[xyz.X;zeros(nint,1)], ...
+       [zeros(nint,1);xyz.Z]-[xyz.Z;zeros(nint,1)]];
+   spd = spd((nint+1):end,:);
+   if subDir(39) == 'L'
+       disc = [disP([xyz.X xyz.Z],aa(1,[1 3])), disP([xyz.X xyz.Z],aa(2,[1 3]))];
+       headv = [sum(bsxfun(@minus,aa(1,[1 3]), [xyz.X, xyz.Z]).*spd,2)>0, sum(bsxfun(@minus,aa(2,[1 3]), [xyz.X, xyz.Z]).*spd,2)>0];
+       
+       cpos = aa(1:2,[1 3]);
+       % object go first.
+   else
+       disc = [disP([xyz.X xyz.Z],aa(2,[1 3])), disP([xyz.X xyz.Z],aa(1,[1 3]))];
+       headv = [sum(bsxfun(@minus,aa(2,[1 3]), xyz.X).*spd,2)>0, sum(bsxfun(@minus,aa(1,[1 3]), xyz.X).*spd,2)>0];
+       cpos = aa([2 1],[1 3]);
+   end
+    for k = 1:size(jumpPrd,1)
+        tmpY(xyz.Frame>=jumpPrd(k,1) & xyz.Frame<=jumpPrd(k,2)) = 3;
+        disc(xyz.Frame>=jumpPrd(k,1) & xyz.Frame<=jumpPrd(k,2),:) = 10;
+        spd(xyz.Frame>=jumpPrd(k,1) & xyz.Frame<=jumpPrd(k,2)) = -1;
+        headv(xyz.Frame>=jumpPrd(k,1) & xyz.Frame<=jumpPrd(k,2),:) = false;
+        % exclude jumping periods. 
+    end
+    for kk = 1:length(evs.evFram)
+        nn = find(evs.evlog.Frame == evs.evFram(kk));
+        Periods(kk,:) = [evs.evlog.Frame(nn+2), evs.evlog.Frame(nn+3)];
+        % I took only 'wait_duration' event for each event. 
+        tt = xyz.Frame>Periods(kk,1) & xyz.Frame<=Periods(kk,2);
+        tmp_t = xyz.Frame(tt);
+        tmp_l = tmpY(tt)<.15 ;%& vxz(tt)>.01;
+        tmp_h = tmpY(tt)>=.15;% & tmpY(tt)<=.28;
+        
+        for nn = 1:nradium % .5 + .5*nn
+            tmp_disc = disc(tt,:)<=Dms(nn);% (.05 + .04*nn);
+            TCount(n,:,kk, nn) = [size(StartEnding(tmp_disc(:,1)),1), size(StartEnding( tmp_disc(:,2)),1)];%<.15
+            
+            lPeriod(n,:,kk, nn) = [sumdiff(tmp_t(StartEnding(tmp_l & tmp_disc(:,1))),1,2), sumdiff(tmp_t(StartEnding(tmp_l & tmp_disc(:,2))),1,2)];%<.15
+            hPeriod(n,:,kk, nn) = [sumdiff(tmp_t(StartEnding(tmp_h & tmp_disc(:,1))),1,2), sumdiff(tmp_t(StartEnding(tmp_h & tmp_disc(:,2))),1,2)];% .15~.28
+            
+            lwPeriod(n,:,kk, nn) = [sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_l & tmp_disc(:,1))),1,2), sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_l & tmp_disc(:,2))),1,2)];%<.15
+            hwPeriod(n,:,kk, nn) = [sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_h & tmp_disc(:,1))),1,2), sumdiff(tmp_t(StartEnding(headv(tt)>.03 & tmp_h & tmp_disc(:,2))),1,2)];% .15~.28
+        end
+    end
+    
+end
+%% 
+save([Savedir, 'VRObj.Occupancy.v.mat'], 'lPeriod','hPeriod','ObjTypes','TCount', 'lwPeriod','hwPeriod','AnimalN','Dms')
+sumPlot
+return

+ 32 - 0
Code/ObjectSpatialAnalyses/preVRnew.m

@@ -0,0 +1,32 @@
+
+Workdir ='/storage2/nickdg/data/VR_Experiments_Round_2/processed_data/';%
+%'/storage/share/Projects/VRExperiments_Round2/Data/motion_tracking/processed/';% '/storage/share/Projects/VRExperiments_Round2/Data/motion_tracking/processed/';
+% '/storage/share/Projects/VRExperiments_Round2/Data/motion_tracking/processed/';
+% '/storage/nickdg/data/VR_Experiments_Round_2/processed_data/';
+cd(Workdir)
+keyWords = {'VRObj', 'VRSpatNovel'};
+Names = [];
+% expdir = {'/storage/nickdg/data/VR_Experiments_Round_2/processed_data_by_experiment/VRObjectExp/';...
+%     '/storage/nickdg/data/VR_Experiments_Round_2/processed_data_by_experiment/VRSpatNovelExp/'};
+for kk = 1:2
+%     cd(expdir{kk})
+a = dir([keyWords{kk}, '*']);
+gg = false(size(a));
+for k =1:length(a)
+    gg(k)=exist([Workdir, a(k).name,'/', a(k).name, '.h5'],'file');
+end
+a = a(gg);
+FileB = cell(size(a));
+for k =1:length(a)
+    FileB{k} = a(k).name;
+end
+Names.(keyWords{kk})=FileB;
+end
+Savedir = '/storage/weiwei/data/VRnew/PreProcess/';
+cd(Savedir)
+%%
+RatNames = cell(length(Names.VRObj),1);
+for k = 1:length(Names.VRObj)
+    RatNames{k} = Names.VRObj{k}(36:37);
+end
+uniRatN = unique(RatNames);

+ 24 - 0
Code/ObjectSpatialAnalyses/sumPlot.m

@@ -0,0 +1,24 @@
+% load VRObj.Occupancy.mat
+nradium = length(Dms);
+clear g
+p2 = cell(5,nradium);
+p2g = cell(5,nradium);
+pp = zeros(2,3,5,nradium);
+ppg = zeros(2,3,5,nradium);
+pg = zeros(3,5,nradium);
+pgg = zeros(3,5,nradium);
+figure(2);clf
+colormap gray
+
+k = 4;
+bprd = lwPeriod;
+tk = 'Lfacing';
+
+% k = 1;
+% bprd = lPeriod;
+% tk = 'low';
+
+nn = 7; % select which radium
+Dm =  Dms(nn);% radium
+[p2{k,nn}, pg(:,k,nn), pp(:,:,k,nn)] = StatePlot(sq(bprd(:,:,:,nn)),ObjTypes, sprintf('%s at %d cm',tk, fix(Dm*100)), Savedir,['VRobj.statSum.', tk, '.', num2str( Dm*100)],AnimalN,1);
+[p2g{k,nn}, pgg(:,k,nn), ppg(:,:,k,nn)] = StatePlot(sq(bprd(:,:,:,nn)),ObjTypes, sprintf('%s at %d cm',tk, fix(Dm*100)), Savedir,['VRobj.statSum.', tk, '.', num2str( Dm*100), '.G'],AnimalN,1);

+ 53 - 0
Code/ObjectSpatialAnalyses/sumPlotSN.m

@@ -0,0 +1,53 @@
+% load VRSpatialNovel.Occupancy.3-5.mat
+clear g
+p2 = cell(2,1);
+p2g = cell(2,1);
+figure(2)
+colormap gray
+figure(3)
+colormap gray
+titleS = {'low';'high';'traj';'Lfacing';'Hfacing';};
+pp = zeros(2,2,5,nradium);
+pp2 = zeros(2,2,5,nradium);
+for k = 1:5
+    switch k
+        case 1
+            bprd = lPeriod;
+            tk = titleS{k};
+        case 2
+            bprd = hPeriod;
+            tk = titleS{k};
+            continue
+        case 3
+            bprd = TCount*100;
+            tk = titleS{k};
+            continue
+        case 4
+            bprd = lwPeriod;
+            tk = titleS{k};
+        case 5
+            bprd = hwPeriod;
+            tk = titleS{k};
+            continue
+    end
+    for nn = 1:nradium
+        Dm =  Dms(nn);%.05+ .04*nn; %
+        try
+            [p2{1}(k,nn), p2{2}(k,nn), pp(:,:,k,nn)] = StatePlotSN(sq(bprd(:,:,:,nn))/(Dm*10)^2,Names.VRSpatNovelc, sprintf('SN%s at %d cm',tk, fix(Dm*100)), Savedir,['VRSpatNovelExp.statSum.', tk, '.oneside.', num2str( Dm*100)],AnimalN,1);
+        catch
+            p2{1}(k,nn) = nan;
+            p2{2}(k,nn) = nan;
+        end
+        try
+        [p2g{1}(k,nn), p2g{2}(k,nn), pp2(:,:,k,nn)] = StatePlotSN(sq(bprd(:,:,:,nn))/(Dm*10)^2,Names.VRSpatNovelc, sprintf('SN%s at %d cm',tk, fix(Dm*100)), Savedir,['VRSpatNovelExp.statSum.', tk, '.oneside.', num2str( Dm*100), '.G'],AnimalN,1);
+        catch
+            p2g{1}(k,nn) = nan;
+            p2g{2}(k,nn) = nan;
+        end
+    end
+end
+return
+save('VRSpacialNovelty.p.oneside.mat', 'pp', 'pp2')
+save('VRSpacialNovelty.p2p.oneside.mat', 'p2', 'p2g')
+% save('VRSpacialNovelty.p.mat', 'pp', 'pp2')
+% save('VRSpacialNovelty.p2p.mat', 'p2', 'p2g')

File diff suppressed because it is too large
+ 12926 - 0
Code/SpatialNovelty/Bootstrapping+Area.html


File diff suppressed because it is too large
+ 202 - 0
Code/SpatialNovelty/Bootstrapping+Area.ipynb


BIN
Code/SpatialNovelty/object_sham_diagram.png


BIN
Code/preprocessing/orientation_check.mp4


BIN
Data/Histology/Hippo5-2xDapi.tif


+ 14 - 0
Data/Histology/README.rst

@@ -0,0 +1,14 @@
+Details From Dr. Eduardo Blanco Hernandez on Histology:
+
+  - the slice is stained just with DAPI, (nuclear marker).
+  - Rat Weight: 450g
+  - Rat Age: Unknown
+  - Probe implanted :  Buzsaki32 (4 shanks , 8 channels each)
+  - Coordinates of implantation from bregma:
+     - Antero-Posterior  -3.36mm
+     - Medio-Lateral  2.6mm
+     - 
+  - Anesthetic: 3-component (30 minute) with isofluorane (maintainance)
+  - Histology: According with it, the recordings where done in CA2 most likely
+
+

+ 13 - 0
Data/Histology/README.rst~

@@ -0,0 +1,13 @@
+Details From Dr. Eduardo Blanco Hernandez on Histology:
+
+  - the slice is stained just with DAPI, (nuclear marker).
+  - Rat Weight: 450g
+  - Rat Age: Unknown
+  - Probe implanted :  Buzsaki32 (4 shanks , 8 channels each)
+  - Coordinates of implantation from bregma:
+     - Antero-Posterior  -3.36mm
+     - Medio-Lateral  2.6mm
+     - 
+  - Histology: According with it, the recordings where done in CA2 most likely
+
+

+ 1 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU-Camera 11136.mp4

@@ -0,0 +1 @@
+../../../../../.git/annex/objects/MX/v2/MD5-s237040511--90ae3dde689a0b861590d8bf5f0520c0/MD5-s237040511--90ae3dde689a0b861590d8bf5f0520c0

+ 1 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU.h5

@@ -0,0 +1 @@
+../../../../../.git/annex/objects/Wj/54/MD5-s155019672--9281eb75e6722670dd6d87ade58418a3/MD5-s155019672--9281eb75e6722670dd6d87ade58418a3

+ 0 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/event_log_added.txt


+ 0 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/marker_softlink_added.txt


+ 0 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/ori_added.txt


+ 0 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/settings_log_added.txt


+ 0 - 0
Data/motion_tracking/processed/VRAcuityExp_2017-07-13_17-09-07_VR-5A_NIC/VRAcuityExp_2017-07-13_13-59-52_VR-4B_EDU/unrotated.txt


BIN
Figures/Final_Draft1/Figure-Legends-Round2-nd.docx


File diff suppressed because it is too large
+ 3719 - 0
Figures/Final_Draft1/TempSpatialNovelty copy.pdf


BIN
Manuscript Drafts/DelGrosso_New_v1_UR_online_methods.docx


BIN
Methods/3D Objects/Object Name Guid.pdf


File diff suppressed because it is too large
+ 3938 - 0
Methods/3D Objects/Object Name Guid.svg


BIN
Methods/Rplots.pdf


BIN
Methods/Surgery and Histology methods from Eduardo .docx


BIN
Methods/VR_Round2_Protocol_and_Troubleshooting_Guide.odt


BIN
Methods/placefield_analysis_methods.odt


+ 1 - 0
Stats/.~lock.updatedstat.ods#

@@ -0,0 +1 @@
+,weiwei,sirota1,19.02.2018 15:19,file:///home/weiwei/.config/libreoffice/4;

BIN
Stats/updatedstat.ods


BIN
Text/DelGrosso_New_v1_UR.docx


BIN
Text/DelGrosso_New_v1_UR_online_methods.docx


+ 1 - 0
Videos/Final/experiment_cliff_avoidance.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/Mz/wX/MD5-s54376448--a8c39d275b486a27b5c69ddef2dffc24/MD5-s54376448--a8c39d275b486a27b5c69ddef2dffc24

+ 1 - 0
Videos/Final/experiment_obj_exploration.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/xK/XM/MD5-s72312832--a2e7e67d110ca3738ea4ae9c67ca243d/MD5-s72312832--a2e7e67d110ca3738ea4ae9c67ca243d

+ 1 - 0
Videos/Final/experiment_spatial_novelty.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/qV/pG/MD5-s51890176--dbeb013cfa822a808a8c078b3201ccc3/MD5-s51890176--dbeb013cfa822a808a8c078b3201ccc3

+ 1 - 0
Videos/Final/experiment_wall_exploration.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/G8/Zz/MD5-s91965440--942736b4b962a77e5266d416a9c94976/MD5-s91965440--942736b4b962a77e5266d416a9c94976

+ 1 - 0
Videos/Final/vr_algorithm_explained_long.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/Qz/71/MD5-s83347456--83e0984408dfa6398c1eb353f5f6cd36/MD5-s83347456--83e0984408dfa6398c1eb353f5f6cd36

+ 1 - 0
Videos/Final/vr_perspective_cliff_demo.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/vv/f5/MD5-s22704128--258d7a7790f605ffc9751e04c6837418/MD5-s22704128--258d7a7790f605ffc9751e04c6837418

+ 1 - 0
Videos/Final/vr_perspective_monkey_demo.mpeg

@@ -0,0 +1 @@
+../../.git/annex/objects/45/Q0/MD5-s11597824--98b91f5d4b1385fcf1835648819ced26/MD5-s11597824--98b91f5d4b1385fcf1835648819ced26

+ 1 - 0
Videos/Final/vr_perspective_monkey_in_glass.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/Gj/mv/MD5-s54323762--aa59089c69a72f98a3a45b0fdad2fea0/MD5-s54323762--aa59089c69a72f98a3a45b0fdad2fea0

+ 1 - 0
Videos/Final/vr_perspective_wall.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/X9/v6/MD5-s63185675--7f241ecce4428a5096c9b736b6424e57/MD5-s63185675--7f241ecce4428a5096c9b736b6424e57

+ 1 - 0
Videos/old_submission_videos/supp_mov1.avi

@@ -0,0 +1 @@
+../../.git/annex/objects/P0/xX/MD5-s59791748--2fb61ed3ed2e8e0c0196bf65fadcb1a2/MD5-s59791748--2fb61ed3ed2e8e0c0196bf65fadcb1a2

BIN
Videos/old_submission_videos/supp_mov2.mp4


+ 1 - 0
Videos/old_submission_videos/supp_mov3.mp4

@@ -0,0 +1 @@
+../../.git/annex/objects/P9/q4/MD5-s17187537--9f6bcff8d6be5efd7afe342f7fc8146b/MD5-s17187537--9f6bcff8d6be5efd7afe342f7fc8146b

+ 1 - 0
Videos/old_submission_videos/supp_mov4.mp4

@@ -0,0 +1 @@
+../../.git/annex/objects/8j/2X/MD5-s59047032--ad70959ee0ee70a33b71e8228e909d73/MD5-s59047032--ad70959ee0ee70a33b71e8228e909d73

+ 1 - 0
Videos/old_submission_videos/supp_mov5.mp4

@@ -0,0 +1 @@
+../../.git/annex/objects/Mv/jw/MD5-s34062512--a4a204a436c5f91bf4c3042984618b65/MD5-s34062512--a4a204a436c5f91bf4c3042984618b65

+ 1 - 0
Videos/old_submission_videos/titled_movies_through_wmm/object_exploration/object_exploration_experiment.mp4

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Mv/jw/MD5-s34062512--a4a204a436c5f91bf4c3042984618b65/MD5-s34062512--a4a204a436c5f91bf4c3042984618b65

+ 291 - 0
Videos/old_submission_videos/titled_movies_through_wmm/object_exploration/object_exploration_experiment.wlmp

@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project name="object_exploration_experiment" themeId="1" version="65540" templateID="SimpleProjectTemplate">
+  <MediaItems>
+    <MediaItem id="1" filePath="D:\nickvids\clips\vrEngagement.avi" arWidth="640" arHeight="512" duration="51.201706700000003" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
+  </MediaItems>
+  <Extents>
+    <TitleClip extentID="17" gapBefore="2.4230416666666663" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.28828811645507813" />
+              <BoundPropertyFloatElement Value="2.5152838230133057" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.3333333432674408" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="From the perspective of the rat, " />
+              <BoundPropertyStringElement Value="objects appeared to be stationary and " />
+              <BoundPropertyStringElement Value="roughly 6cm in diameter." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="18" gapBefore="10.422458333333331" duration="10">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.35380840301513672" />
+              <BoundPropertyFloatElement Value="2.5938863754272461" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.30000001192092896" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="While each session's objects were positioned" />
+              <BoundPropertyStringElement Value=" in a fixed orientation relative to one another, their positions " />
+              <BoundPropertyStringElement Value="within the arena were randomly assigned between sessions." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <VideoClip extentID="5" gapBefore="0" mediaItemID="1" inTime="0" outTime="0" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions>
+        <ShapeEffect effectTemplateID="CrossfadeTransitionTemplate" duration="1.5">
+          <BoundProperties />
+        </ShapeEffect>
+      </Transitions>
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <TitleClip extentID="6" gapBefore="0" duration="7">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="0" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="7" gapBefore="0" duration="6">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectContemporaryFade1Template" TextScriptId="19">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="1.1007370948791504" />
+              <BoundPropertyFloatElement Value="-0.13100433349609375" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.36666667461395264" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="ratCAVE: Virtual Object Exploration" />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="16" gapBefore="1.4231875" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.52416038513183594" />
+              <BoundPropertyFloatElement Value="2.227074146270752" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.30000001192092896" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="When presented with three virtual objects in the arena," />
+              <BoundPropertyStringElement Value="the rat spontaneously explores them." />
+              <BoundPropertyStringElement Value="" />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <ExtentSelector extentID="1" gapBefore="0" primaryTrack="true">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="6" />
+        <ExtentRef id="5" />
+      </ExtentRefs>
+    </ExtentSelector>
+    <ExtentSelector extentID="2" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="3" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="4" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="7" />
+        <ExtentRef id="16" />
+        <ExtentRef id="17" />
+        <ExtentRef id="18" />
+      </ExtentRefs>
+    </ExtentSelector>
+  </Extents>
+  <BoundPlaceholders>
+    <BoundPlaceholder placeholderID="SingleExtentView" extentID="0" />
+    <BoundPlaceholder placeholderID="Main" extentID="1" />
+    <BoundPlaceholder placeholderID="SoundTrack" extentID="2" />
+    <BoundPlaceholder placeholderID="Narration" extentID="3" />
+    <BoundPlaceholder placeholderID="Text" extentID="4" />
+  </BoundPlaceholders>
+  <BoundProperties>
+    <BoundPropertyFloatSet Name="AspectRatio">
+      <BoundPropertyFloatElement Value="1.7777776718139648" />
+    </BoundPropertyFloatSet>
+    <BoundPropertyFloat Name="DuckedNarrationAndSoundTrackMix" Value="0.5" />
+    <BoundPropertyFloat Name="DuckedVideoAndNarrationMix" Value="0" />
+    <BoundPropertyFloat Name="DuckedVideoAndSoundTrackMix" Value="0" />
+    <BoundPropertyFloat Name="SoundTrackMix" Value="0" />
+  </BoundProperties>
+  <ThemeOperationLog themeID="1">
+    <MonolithicThemeOperations />
+  </ThemeOperationLog>
+  <AudioDuckingProperties emphasisPlaceholderID="Narration" />
+</Project>

+ 1 - 0
Videos/old_submission_videos/titled_movies_through_wmm/visCliff/virtual_cliff_experiment.mp4

@@ -0,0 +1 @@
+../../../../.git/annex/objects/P9/q4/MD5-s17187537--9f6bcff8d6be5efd7afe342f7fc8146b/MD5-s17187537--9f6bcff8d6be5efd7afe342f7fc8146b

+ 354 - 0
Videos/old_submission_videos/titled_movies_through_wmm/visCliff/virtual_cliff_experiment.wlmp

@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project name="virtual_cliff_experiment" themeId="0" version="65540" templateID="SimpleProjectTemplate">
+  <MediaItems>
+    <MediaItem id="1" filePath="D:\nickvids\clips\visCliff.avi" arWidth="640" arHeight="512" duration="35.867862199999998" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
+  </MediaItems>
+  <Extents>
+    <VideoClip extentID="5" gapBefore="0" mediaItemID="1" inTime="0.98636621049999984" outTime="35.867862199999998" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions>
+        <ShapeEffect effectTemplateID="BlurThroughBlackTransitionTemplate" duration="1.5">
+          <BoundProperties />
+        </ShapeEffect>
+      </Transitions>
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <TitleClip extentID="6" gapBefore="0" duration="7">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="0" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="7" gapBefore="0" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectContemporaryFade3Template" TextScriptId="21">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.93158674240112305" />
+              <BoundPropertyFloatElement Value="-0.39534878730773926" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.53333336114883423" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="ratCAVE: Virtual Cliff Avoidance " />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="10" gapBefore="0.40758181192578125" duration="5">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.30276584625244141" />
+              <BoundPropertyFloatElement Value="2.4418604373931885" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.36666667461395264" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="The rat is lowered onto a board " />
+              <BoundPropertyStringElement Value="suspended above the arena floor..." />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="rat -->          ." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="12" gapBefore="0.54062652140755318" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.62882089614868164" />
+              <BoundPropertyFloatElement Value="2.7209300994873047" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.36666667461395264" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="...it explores both sides of the arena..." />
+              <BoundPropertyStringElement Value="(Note: scene appears to be stationary," />
+              <BoundPropertyStringElement Value=" from rat's perspective)" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="(cliff side, 1.5m drop)          (safe side, 0.13m drop)" />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="13" gapBefore="2.1857708333333328" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.41921377182006836" />
+              <BoundPropertyFloatElement Value="2.3023257255554199" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.36666667461395264" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="...and chooses to jump toward the &quot;safe&quot; side." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="14" gapBefore="1.7790208333333339" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.32605504989624023" />
+              <BoundPropertyFloatElement Value="2.1860466003417969" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.36666667461395264" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="The rat is removed after 15 seconds of exploration." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <ExtentSelector extentID="1" gapBefore="0" primaryTrack="true">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="6" />
+        <ExtentRef id="5" />
+      </ExtentRefs>
+    </ExtentSelector>
+    <ExtentSelector extentID="2" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="3" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="4" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="7" />
+        <ExtentRef id="10" />
+        <ExtentRef id="12" />
+        <ExtentRef id="13" />
+        <ExtentRef id="14" />
+      </ExtentRefs>
+    </ExtentSelector>
+  </Extents>
+  <BoundPlaceholders>
+    <BoundPlaceholder placeholderID="SingleExtentView" extentID="0" />
+    <BoundPlaceholder placeholderID="Main" extentID="1" />
+    <BoundPlaceholder placeholderID="SoundTrack" extentID="2" />
+    <BoundPlaceholder placeholderID="Text" extentID="4" />
+    <BoundPlaceholder placeholderID="Narration" extentID="3" />
+  </BoundPlaceholders>
+  <BoundProperties>
+    <BoundPropertyFloatSet Name="AspectRatio">
+      <BoundPropertyFloatElement Value="1.7777776718139648" />
+    </BoundPropertyFloatSet>
+    <BoundPropertyFloat Name="DuckedNarrationAndSoundTrackMix" Value="0.5" />
+    <BoundPropertyFloat Name="DuckedVideoAndNarrationMix" Value="0" />
+    <BoundPropertyFloat Name="DuckedVideoAndSoundTrackMix" Value="0" />
+    <BoundPropertyFloat Name="SoundTrackMix" Value="0" />
+  </BoundProperties>
+  <ThemeOperationLog themeID="0">
+    <MonolithicThemeOperations />
+  </ThemeOperationLog>
+  <AudioDuckingProperties emphasisPlaceholderID="Narration" />
+</Project>

BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 1 (10-26-2016 6-24 PM).png


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 2 (10-26-2016 6-34 PM).png


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 3 (10-26-2016 6-35 PM).png


File diff suppressed because it is too large
+ 1805 - 0
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 3 (10-26-2016 6-35 PM).svg


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 4 (10-26-2016 7-27 PM).png


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/Snapshot 5 (10-26-2016 7-31 PM).png


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/image3344.png


BIN
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/vr_algorithm_explanation.mp4


+ 461 - 0
Videos/old_submission_videos/titled_movies_through_wmm/vr_algorithm_explanation/vr_algorithm_explanation.wlmp

@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project name="vr_algorithm_explanation" themeId="0" version="65540" templateID="SimpleProjectTemplate">
+  <MediaItems>
+    <MediaItem id="1" filePath="D:\nickvids\clips\cave_diagram2_slow.avi" arWidth="632" arHeight="478" duration="30" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
+    <MediaItem id="2" filePath="D:\nickvids\clips\vr_algorithm_explanation\Snapshot 1 (10-26-2016 6-24 PM).png" arWidth="256" arHeight="144" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
+    <MediaItem id="4" filePath="D:\nickvids\clips\vr_algorithm_explanation\Snapshot 3 (10-26-2016 6-35 PM).png" arWidth="1226" arHeight="690" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
+    <MediaItem id="5" filePath="D:\nickvids\clips\vr_algorithm_explanation\image3344.png" arWidth="1226" arHeight="690" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
+    <MediaItem id="6" filePath="D:\nickvids\clips\vr_algorithm_explanation\Snapshot 4 (10-26-2016 7-27 PM).png" arWidth="1226" arHeight="690" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
+    <MediaItem id="7" filePath="D:\nickvids\clips\vr_algorithm_explanation\Snapshot 5 (10-26-2016 7-31 PM).png" arWidth="1226" arHeight="690" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
+  </MediaItems>
+  <Extents>
+    <ImageClip extentID="17" gapBefore="0" mediaItemID="6" duration="7">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+      </BoundProperties>
+    </ImageClip>
+    <TitleClip extentID="18" gapBefore="5.4152916666666684" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="2.0358891487121582" />
+              <BoundPropertyFloatElement Value="1.852173924446106" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.20000000298023224" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="The projection is updated continuously, " />
+              <BoundPropertyStringElement Value="at a high framerate (240 fps)," />
+              <BoundPropertyStringElement Value="and with a low latency between" />
+              <BoundPropertyStringElement Value="viewer movement and projection " />
+              <BoundPropertyStringElement Value="update (&lt;16 msecs).  " />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <VideoClip extentID="19" gapBefore="0" mediaItemID="1" inTime="15.352187499999996" outTime="30" speed="1" stabilizationMode="0">
+      <Effects>
+        <ShaderEffect effectTemplateID="FadeOutToBlackEffectTemplate">
+          <BoundProperties />
+        </ShaderEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <ImageClip extentID="20" gapBefore="0" mediaItemID="7" duration="13">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+      </BoundProperties>
+    </ImageClip>
+    <TitleClip extentID="21" gapBefore="3.5754999999999981" duration="13">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectTemplate" TextScriptId="0">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length">
+              <BoundPropertyFloatElement Value="4.0999999046325684" />
+              <BoundPropertyFloatElement Value="5.1999998092651367" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="maxExtent" Value="5" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="-2.1837954521179199" />
+              <BoundPropertyFloatElement Value="2.2956521511077881" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.20000000298023224" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="Finally, highlights and shadows" />
+              <BoundPropertyStringElement Value="are applied to the object's " />
+              <BoundPropertyStringElement Value="surface, to simulate lighting.  " />
+              <BoundPropertyStringElement Value="Note that the top half of the " />
+              <BoundPropertyStringElement Value="objects are lit, while the bottom " />
+              <BoundPropertyStringElement Value="half are in shadow.  This provides " />
+              <BoundPropertyStringElement Value="additional 3D shape and spatial " />
+              <BoundPropertyStringElement Value="cues to the viewer, and makes the " />
+              <BoundPropertyStringElement Value="scene appear more realistic." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <VideoClip extentID="5" gapBefore="0" mediaItemID="1" inTime="0" outTime="2.3388125" speed="1" stabilizationMode="0">
+      <Effects>
+        <ShaderEffect effectTemplateID="FadeInFromBlackEffectTemplate">
+          <BoundProperties />
+        </ShaderEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <VideoClip extentID="6" gapBefore="0" mediaItemID="1" inTime="2.3388125" outTime="6.3713958333333345" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <ImageClip extentID="7" gapBefore="0" mediaItemID="2" duration="16">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+      </BoundProperties>
+    </ImageClip>
+    <TitleClip extentID="8" gapBefore="2.3288124999999997" duration="17">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="BEGIN" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="-3.7585644721984863" />
+              <BoundPropertyFloatElement Value="2.5130434036254883" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.20000000298023224" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value=" To give a viewer the impression " />
+              <BoundPropertyStringElement Value="of 3D objects floating in front " />
+              <BoundPropertyStringElement Value="and behind a projection surface, " />
+              <BoundPropertyStringElement Value="a geometrically-warped version of " />
+              <BoundPropertyStringElement Value="each object is projected onto the surface," />
+              <BoundPropertyStringElement Value="taking into account the position of                                                      &lt;- Viewer" />
+              <BoundPropertyStringElement Value="the viewer, the object, " />
+              <BoundPropertyStringElement Value="and the surface itself.                                                     " />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="                                                                                  &lt;- Virtual Object" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="                                                                                                                 &lt;- Projection" />
+              <BoundPropertyStringElement Value="                                                                                                                         Surface" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="" />
+              <BoundPropertyStringElement Value="                                                                                  &lt;- Virtual Object       " />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <VideoClip extentID="10" gapBefore="0" mediaItemID="1" inTime="6.3713958333333345" outTime="11.776687499999998" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <TitleClip extentID="46" gapBefore="0" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectContemporaryFade3Template" TextScriptId="21">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="1.5399675369262695" />
+              <BoundPropertyFloatElement Value="-0.11304354667663574" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.38333332538604736" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="ratCAVE: VR Projection Algorithm, " />
+              <BoundPropertyStringElement Value="Explained" />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="12" gapBefore="3.0325833333333332" duration="13">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="2.1924958229064941" />
+              <BoundPropertyFloatElement Value="2.5478260517120361" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.20000000298023224" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="Virtual objects that are " />
+              <BoundPropertyStringElement Value="closer to the viewer are " />
+              <BoundPropertyStringElement Value="projected as larger, and the " />
+              <BoundPropertyStringElement Value="angle between the viewer " />
+              <BoundPropertyStringElement Value="and the object is always " />
+              <BoundPropertyStringElement Value="maintained.  Unintuitively," />
+              <BoundPropertyStringElement Value="this means that objects in " />
+              <BoundPropertyStringElement Value="front and behind the " />
+              <BoundPropertyStringElement Value="projection screen will move " />
+              <BoundPropertyStringElement Value="in opposite directions." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="47" gapBefore="0" duration="7">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="0" />
+      </BoundProperties>
+    </TitleClip>
+    <ImageClip extentID="15" gapBefore="0" mediaItemID="5" duration="13">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+      </BoundProperties>
+    </ImageClip>
+    <VideoClip extentID="16" gapBefore="0" mediaItemID="1" inTime="11.776687499999998" outTime="15.352187499999996" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <ExtentSelector extentID="1" gapBefore="0" primaryTrack="true">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="47" />
+        <ExtentRef id="5" />
+        <ExtentRef id="7" />
+        <ExtentRef id="6" />
+        <ExtentRef id="15" />
+        <ExtentRef id="10" />
+        <ExtentRef id="17" />
+        <ExtentRef id="16" />
+        <ExtentRef id="20" />
+        <ExtentRef id="19" />
+      </ExtentRefs>
+    </ExtentSelector>
+    <ExtentSelector extentID="2" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="3" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="4" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="46" />
+        <ExtentRef id="8" />
+        <ExtentRef id="12" />
+        <ExtentRef id="18" />
+        <ExtentRef id="21" />
+      </ExtentRefs>
+    </ExtentSelector>
+  </Extents>
+  <BoundPlaceholders>
+    <BoundPlaceholder placeholderID="SingleExtentView" extentID="0" />
+    <BoundPlaceholder placeholderID="Main" extentID="1" />
+    <BoundPlaceholder placeholderID="SoundTrack" extentID="2" />
+    <BoundPlaceholder placeholderID="Narration" extentID="3" />
+    <BoundPlaceholder placeholderID="Text" extentID="4" />
+  </BoundPlaceholders>
+  <BoundProperties>
+    <BoundPropertyFloatSet Name="AspectRatio">
+      <BoundPropertyFloatElement Value="1.7777776718139648" />
+    </BoundPropertyFloatSet>
+    <BoundPropertyFloat Name="DuckedNarrationAndSoundTrackMix" Value="0.5" />
+    <BoundPropertyFloat Name="DuckedVideoAndNarrationMix" Value="0" />
+    <BoundPropertyFloat Name="DuckedVideoAndSoundTrackMix" Value="0" />
+    <BoundPropertyFloat Name="SoundTrackMix" Value="0" />
+  </BoundProperties>
+  <ThemeOperationLog themeID="0">
+    <MonolithicThemeOperations />
+  </ThemeOperationLog>
+  <AudioDuckingProperties emphasisPlaceholderID="Narration" />
+</Project>

+ 1 - 0
Videos/old_submission_videos/titled_movies_through_wmm/wall_avoidance/wall_avoidance_experiment.mp4

@@ -0,0 +1 @@
+../../../../.git/annex/objects/8j/2X/MD5-s59047032--ad70959ee0ee70a33b71e8228e909d73/MD5-s59047032--ad70959ee0ee70a33b71e8228e909d73

+ 356 - 0
Videos/old_submission_videos/titled_movies_through_wmm/wall_avoidance/wall_avoidance_experiment.wlmp

@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project name="wall_avoidance_experiment" themeId="1" version="65540" templateID="SimpleProjectTemplate">
+  <MediaItems>
+    <MediaItem id="1" filePath="D:\nickvids\clips\virtualWall.avi" arWidth="640" arHeight="512" duration="29.700495" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
+    <MediaItem id="2" filePath="D:\nickvids\clips\virtualWall_2.avi" arWidth="640" arHeight="512" duration="70.851180799999995" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
+  </MediaItems>
+  <Extents>
+    <TitleClip extentID="34" gapBefore="3.4738124999999993" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.27518415451049805" />
+              <BoundPropertyFloatElement Value="2.5152838230133057" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.3333333432674408" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="From the rat's perspective, the wall appears" />
+              <BoundPropertyStringElement Value="to be stationary and vertically oriented in the " />
+              <BoundPropertyStringElement Value="center of the arena." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="17" gapBefore="2.1435833333333338" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.30139255523681641" />
+              <BoundPropertyFloatElement Value="2.2925763130187988" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.3333333432674408" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="When presented with a virtual wall in the arena," />
+              <BoundPropertyStringElement Value="the rat spontaneously explores it. " />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="35" gapBefore="10.783532746242784" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.47174453735351563" />
+              <BoundPropertyFloatElement Value="2.227074146270752" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.3333333432674408" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="Rats often hesitated or changed direction when " />
+              <BoundPropertyStringElement Value="nearing a virtual wall." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="36" gapBefore="9.247883920423881" duration="7">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectFadeTemplate" TextScriptId="1">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.19656038284301758" />
+              <BoundPropertyFloatElement Value="2.2794759273529053" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.3333333432674408" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="After 5 minutes of exposure to a wall extending " />
+              <BoundPropertyStringElement Value="along one arena axis, the wall was changed." />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <VideoClip extentID="5" gapBefore="0" mediaItemID="1" inTime="0" outTime="0" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions>
+        <ShapeEffect effectTemplateID="CrossfadeTransitionTemplate" duration="1.5">
+          <BoundProperties />
+        </ShapeEffect>
+      </Transitions>
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <VideoClip extentID="6" gapBefore="0" mediaItemID="2" inTime="0" outTime="64.290886281481477" speed="1" stabilizationMode="0">
+      <Effects />
+      <Transitions>
+        <ShaderEffect effectTemplateID="SplitVerticalTransitionTemplate" duration="1.5">
+          <BoundProperties />
+        </ShaderEffect>
+      </Transitions>
+      <BoundProperties>
+        <BoundPropertyBool Name="Mute" Value="false" />
+        <BoundPropertyInt Name="rotateStepNinety" Value="0" />
+        <BoundPropertyFloat Name="Volume" Value="1" />
+      </BoundProperties>
+    </VideoClip>
+    <TitleClip extentID="7" gapBefore="0" duration="6">
+      <Effects />
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="0" />
+      </BoundProperties>
+    </TitleClip>
+    <TitleClip extentID="8" gapBefore="0" duration="4.5">
+      <Effects>
+        <TextEffect effectTemplateID="TextEffectContemporaryFade1Template" TextScriptId="19">
+          <BoundProperties>
+            <BoundPropertyBool Name="automatic" Value="false" />
+            <BoundPropertyFloatSet Name="color">
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+              <BoundPropertyFloatElement Value="1" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyStringSet Name="family">
+              <BoundPropertyStringElement Value="Segoe UI" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="horizontal" Value="true" />
+            <BoundPropertyStringSet Name="justify">
+              <BoundPropertyStringElement Value="MIDDLE" />
+            </BoundPropertyStringSet>
+            <BoundPropertyBool Name="leftToRight" Value="true" />
+            <BoundPropertyFloatSet Name="length" />
+            <BoundPropertyFloat Name="maxExtent" Value="0" />
+            <BoundPropertyFloatSet Name="outlineColor">
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+              <BoundPropertyFloatElement Value="0.64705884456634521" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyInt Name="outlineSizeIndex" Value="0" />
+            <BoundPropertyFloatSet Name="position">
+              <BoundPropertyFloatElement Value="0.96969699859619141" />
+              <BoundPropertyFloatElement Value="-0.13100433349609375" />
+              <BoundPropertyFloatElement Value="0.02500000037252903" />
+            </BoundPropertyFloatSet>
+            <BoundPropertyFloat Name="size" Value="0.43333333730697632" />
+            <BoundPropertyStringSet Name="string">
+              <BoundPropertyStringElement Value="ratCAVE: Virtual Wall Exploration" />
+            </BoundPropertyStringSet>
+            <BoundPropertyString Name="style" Value="Plain" />
+            <BoundPropertyFloat Name="transparency" Value="0" />
+          </BoundProperties>
+        </TextEffect>
+      </Effects>
+      <Transitions />
+      <BoundProperties>
+        <BoundPropertyFloatSet Name="diffuseColor">
+          <BoundPropertyFloatElement Value="0.75" />
+          <BoundPropertyFloatElement Value="1" />
+          <BoundPropertyFloatElement Value="0" />
+        </BoundPropertyFloatSet>
+        <BoundPropertyFloat Name="transparency" Value="1" />
+      </BoundProperties>
+    </TitleClip>
+    <ExtentSelector extentID="1" gapBefore="0" primaryTrack="true">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="7" />
+        <ExtentRef id="5" />
+        <ExtentRef id="6" />
+      </ExtentRefs>
+    </ExtentSelector>
+    <ExtentSelector extentID="2" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="3" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs />
+    </ExtentSelector>
+    <ExtentSelector extentID="4" gapBefore="0" primaryTrack="false">
+      <Effects />
+      <Transitions />
+      <BoundProperties />
+      <ExtentRefs>
+        <ExtentRef id="8" />
+        <ExtentRef id="17" />
+        <ExtentRef id="34" />
+        <ExtentRef id="35" />
+        <ExtentRef id="36" />
+      </ExtentRefs>
+    </ExtentSelector>
+  </Extents>
+  <BoundPlaceholders>
+    <BoundPlaceholder placeholderID="SingleExtentView" extentID="0" />
+    <BoundPlaceholder placeholderID="Main" extentID="1" />
+    <BoundPlaceholder placeholderID="SoundTrack" extentID="2" />
+    <BoundPlaceholder placeholderID="Narration" extentID="3" />
+    <BoundPlaceholder placeholderID="Text" extentID="4" />
+  </BoundPlaceholders>
+  <BoundProperties>
+    <BoundPropertyFloatSet Name="AspectRatio">
+      <BoundPropertyFloatElement Value="1.7777776718139648" />
+    </BoundPropertyFloatSet>
+    <BoundPropertyFloat Name="DuckedNarrationAndSoundTrackMix" Value="0.5" />
+    <BoundPropertyFloat Name="DuckedVideoAndNarrationMix" Value="0" />
+    <BoundPropertyFloat Name="DuckedVideoAndSoundTrackMix" Value="0" />
+    <BoundPropertyFloat Name="SoundTrackMix" Value="0" />
+  </BoundProperties>
+  <ThemeOperationLog themeID="1">
+    <MonolithicThemeOperations />
+  </ThemeOperationLog>
+  <AudioDuckingProperties emphasisPlaceholderID="Narration" />
+</Project>

BIN
Videos/original/IMG_1285.JPG


+ 1 - 0
Videos/original/MVI_1371.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/Wq/Fz/MD5-s29003679--fae7217d6cf668ce47c0d038d918d6fb/MD5-s29003679--fae7217d6cf668ce47c0d038d918d6fb

+ 1 - 0
Videos/original/MVI_1372.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/45/f3/MD5-s939404975--82fb590bc4cd43d9a45f321c8b295201/MD5-s939404975--82fb590bc4cd43d9a45f321c8b295201

+ 1 - 0
Videos/original/MVI_1373.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/Pm/xQ/MD5-s63767751--afb11954434064250cb6e19124834ad3/MD5-s63767751--afb11954434064250cb6e19124834ad3

+ 1 - 0
Videos/original/MVI_1374.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/KF/7J/MD5-s90882149--b2e2e7b5372e0af22b6a28a0a27bc24f/MD5-s90882149--b2e2e7b5372e0af22b6a28a0a27bc24f

+ 1 - 0
Videos/original/MVI_1375.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/X8/5Z/MD5-s67458317--2a9232c52698f64f32cafa9b34a4f1b6/MD5-s67458317--2a9232c52698f64f32cafa9b34a4f1b6

+ 1 - 0
Videos/original/MVI_1376.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/9G/xw/MD5-s924147139--64f15ed4c2e224aaf98c7e5980481705/MD5-s924147139--64f15ed4c2e224aaf98c7e5980481705

+ 1 - 0
Videos/original/MVI_1377.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/4M/F7/MD5-s83890455--0ef17f36616eb5512d1c61e937681458/MD5-s83890455--0ef17f36616eb5512d1c61e937681458

+ 1 - 0
Videos/original/MVI_1378.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/9Z/MW/MD5-s70514854--e592991cf86412b406a36b263d823b09/MD5-s70514854--e592991cf86412b406a36b263d823b09

+ 1 - 0
Videos/original/MVI_1379.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/qg/4Q/MD5-s78014090--114100285996bce962e25bae32ce01de/MD5-s78014090--114100285996bce962e25bae32ce01de

+ 1 - 0
Videos/original/MVI_1380.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/V2/05/MD5-s66351105--3433017d3f3b9967baf739a4592c31e1/MD5-s66351105--3433017d3f3b9967baf739a4592c31e1

+ 1 - 0
Videos/original/MVI_1381.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/7X/6m/MD5-s65361649--b4c870902c22efebaa4bbba7aa37ac28/MD5-s65361649--b4c870902c22efebaa4bbba7aa37ac28

+ 1 - 0
Videos/original/MVI_1382.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/gj/K7/MD5-s95467447--3e8d57c31e24e9e167898c4b3e83397e/MD5-s95467447--3e8d57c31e24e9e167898c4b3e83397e

+ 1 - 0
Videos/original/MVI_1383.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/7v/gQ/MD5-s900872940--8fe6015b0ee018293386e1e706302567/MD5-s900872940--8fe6015b0ee018293386e1e706302567

+ 1 - 0
Videos/original/MVI_1384.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/qX/Pq/MD5-s903264725--0863280a44a6d3ae35c6e6e118e2895e/MD5-s903264725--0863280a44a6d3ae35c6e6e118e2895e

+ 1 - 0
Videos/original/MVI_1385.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/1G/5F/MD5-s195529915--4af2ee82d7540824b161ff42bd8b4291/MD5-s195529915--4af2ee82d7540824b161ff42bd8b4291

+ 1 - 0
Videos/original/MVI_1386.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/g3/mG/MD5-s65749282--7e4777d6b21462734fb614974fb7602d/MD5-s65749282--7e4777d6b21462734fb614974fb7602d

+ 1 - 0
Videos/original/MVI_1387.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/F9/7v/MD5-s75646018--5708a0498171ca7011e6a7c46c96da11/MD5-s75646018--5708a0498171ca7011e6a7c46c96da11

+ 1 - 0
Videos/original/MVI_1388.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/4w/PZ/MD5-s937527434--deefa8d0c44509d160f10205982d0f5f/MD5-s937527434--deefa8d0c44509d160f10205982d0f5f

+ 1 - 0
Videos/original/MVI_1389.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/fg/PK/MD5-s915487862--2a1c78baba7d5763e55d27e29a1b6203/MD5-s915487862--2a1c78baba7d5763e55d27e29a1b6203

+ 1 - 0
Videos/original/MVI_1390.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/g9/pP/MD5-s71641827--dd53feb53091df71d7edc3b4e4c5f9d0/MD5-s71641827--dd53feb53091df71d7edc3b4e4c5f9d0

+ 1 - 0
Videos/original/MVI_1391.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/KP/V6/MD5-s99361791--ae55bd0f587a0d408d96395d86f31170/MD5-s99361791--ae55bd0f587a0d408d96395d86f31170

+ 1 - 0
Videos/original/MVI_1392.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/89/Xk/MD5-s58595194--82c43c7866957902f76047166b6febf7/MD5-s58595194--82c43c7866957902f76047166b6febf7

+ 1 - 0
Videos/original/MVI_1394.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/2Q/wq/MD5-s141782039--1fb82a6382a5c009753c39d17f9676b1/MD5-s141782039--1fb82a6382a5c009753c39d17f9676b1

+ 1 - 0
Videos/original/MVI_1395.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/vf/F8/MD5-s126060000--d9da7889f18dfe3f2fd117951bd8537b/MD5-s126060000--d9da7889f18dfe3f2fd117951bd8537b

+ 1 - 0
Videos/original/MVI_1396.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/Z7/4Q/MD5-s2800120313--a45c4ce1fe022056d773849dbc7507df/MD5-s2800120313--a45c4ce1fe022056d773849dbc7507df

+ 1 - 0
Videos/original/MVI_1397.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/2W/f1/MD5-s2699808338--112fafefa8ed51baa63faabfe687e3d2/MD5-s2699808338--112fafefa8ed51baa63faabfe687e3d2

+ 1 - 0
Videos/original/MVI_1398.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/7g/W1/MD5-s2812112068--6c151e8c1cb260f703540314a0563966/MD5-s2812112068--6c151e8c1cb260f703540314a0563966

+ 1 - 0
Videos/original/MVI_1399.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/97/v0/MD5-s278476606--84961c47ba7358c9689599012e7764c6/MD5-s278476606--84961c47ba7358c9689599012e7764c6

+ 1 - 0
Videos/original/MVI_1400.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/6G/88/MD5-s208324596--45935f89f07802e75c91dd0c609b15b6/MD5-s208324596--45935f89f07802e75c91dd0c609b15b6

+ 1 - 0
Videos/original/MVI_1401.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/4F/fJ/MD5-s165069644--09dcf33110d0babd78f9b65d9d0c90f3/MD5-s165069644--09dcf33110d0babd78f9b65d9d0c90f3

+ 1 - 0
Videos/original/MVI_1402.MP4

@@ -0,0 +1 @@
+../../.git/annex/objects/M0/8p/MD5-s2694485354--23218d2dbcd693b753536b3536013d16/MD5-s2694485354--23218d2dbcd693b753536b3536013d16

+ 0 - 0
Videos/original/MVI_1403.MP4


Some files were not shown because too many files changed in this diff