diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f0f96a3c726323a9fd105c39671d38d8273f395..156bb5533d79aa9559e809bfafaa90bb028dead7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,7 +19,7 @@
 ##
 
 # Templates for ci jobs - test cdash
-# It defines workflow rules, templates to create docker images, to configure, build siconos and so on.
+# It defines workflow rules, templates to create docker images, to configure, build hysop and so on.
 include:
    - ci/ci-templates.yml
 
@@ -49,7 +49,7 @@ ubuntu:gpu-nvidia:docker-build:
   extends: .docker-build
   tags:
     - lmap
-    - cpu
+    - gpu
   rules:
     - if: $CI_COMMIT_MESSAGE =~ /\[docker-build\]/
     - if: $CI_COMMIT_TAG
@@ -77,7 +77,7 @@ ubuntu:gpu-nvidia-user:docker-build:
   extends: .docker-build
   tags:
     - lmap
-    - cpu
+    - gpu
   rules:
     - if: $CI_COMMIT_MESSAGE =~ /\[docker-build\]/
     - if: $CI_COMMIT_TAG
@@ -130,8 +130,9 @@ examples:ci-cpu-intel:
 
 docker:hysop:cpu-intel:
   variables:
-    DOCKER_TARGET: hysop_cpu_intel
     IMAGE_NAME: hysop_cpu_intel
+    RESULT_NAME: $CI_REGISTRY/particle_methods/hysop_cpu_intel
+    DOCKER_TARGET: hysop_cpu_intel
   extends:
     - .hysop-docker-hysop
     - .lmap-cpu
@@ -144,7 +145,7 @@ config:ci-cpu-intel-user:
   variables:
     IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest
   extends:
-    - .hysop-configure
+    - .hysop-configure-venv
     - .lmap-cpu
   needs:
      - job: ubuntu:cpu-intel-user:docker-build # wait for docker image if docker build is on ...
@@ -155,7 +156,7 @@ build:ci-cpu-intel-user:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest
   needs: ["config:ci-cpu-intel-user"]
   extends:
-    - .hysop-build
+    - .hysop-build-venv
     - .lmap-cpu
 
 install:ci-cpu-intel-user:
@@ -163,7 +164,7 @@ install:ci-cpu-intel-user:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest
   needs: ["build:ci-cpu-intel-user"]
   extends:
-    - .hysop-install
+    - .hysop-install-venv
     - .lmap-cpu
 
 test:ci-cpu-intel-user:
@@ -171,7 +172,7 @@ test:ci-cpu-intel-user:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest
   needs: ["install:ci-cpu-intel-user"]
   extends:
-    - .hysop-test
+    - .hysop-test-venv
     - .lmap-cpu
 
 examples:ci-cpu-intel-user:
@@ -179,7 +180,7 @@ examples:ci-cpu-intel-user:
     IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest
   needs: ["install:ci-cpu-intel-user"]
   extends:
-    - .hysop-examples
+    - .hysop-examples-venv
     - .lmap-cpu
 
 # Jobs to create docker images with a full hysop install, ready to use as a notebook
@@ -188,7 +189,7 @@ binder:mamba:cpu:
     variables:
       IMAGE_NAME: lab-mamba
       RESULT_NAME: $CI_REGISTRY/particle_methods/hysop_binder/hysopbinderlab
-      SICONOS_DOCKER_TARGET: binderlab
+      DOCKER_TARGET: binderlab
     extends:
       - .hysop-docker-hysop
     needs: ["install:ci-cpu-intel-user"]
@@ -198,7 +199,7 @@ jupyterlab:mamba:cpu:
     variables:
       IMAGE_NAME: lab-mamba
       RESULT_NAME: $CI_REGISTRY/particle_methods/hysop/hysoplab
-      SICONOS_DOCKER_TARGET: jupylab
+      DOCKER_TARGET: jupylab
     extends:
       - .hysop-docker-hysop
     needs: ["binder:mamba:cpu"]
@@ -210,9 +211,9 @@ config:ci-gpu-nvidia-user:
   variables:
     IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user
   extends:
-    - .hysop-configure
-    - .lmap-cpu
-  needs:
+    - .hysop-configure-venv
+    - .hysop-gpu
+ needs:
      - job: ubuntu:gpu-nvidia-user:docker-build # wait for docker image if docker build is on ...
        optional: true
 
@@ -221,32 +222,32 @@ build:ci-gpu-nvidia-user:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user
   needs: ["config:ci-gpu-nvidia-user"]
   extends:
-    - .hysop-build
-    - .lmap-cpu
+    - .hysop-build-venv
+    - .hysop-gpu
 
 install:ci-gpu-nvidia-user:
   variables:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user
   needs: ["build:ci-gpu-nvidia-user"]
   extends:
-    - .hysop-install
-    - .lmap-cpu
+    - .hysop-install-venv
+    - .hysop-gpu
 
 test:ci-gpu-nvidia-user:
   variables:
       IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user
   needs: ["install:ci-gpu-nvidia-user"]
   extends:
-    - .hysop-test
-    - .lmap-cpu
+    - .hysop-test-venv
+    - .hysop-gpu
 
 examples:ci-gpu-nvidia-user:
   variables:
     IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user
   needs: ["install:ci-gpu-nvidia-user"]
   extends:
-    - .hysop-examples
-    - .lmap-cpu
+    - .hysop-examples-venv
+    - .hysop-gpu
 
 
 
@@ -298,9 +299,10 @@ examples:ci-gpu-nvidia:
     - .hysop-gpu
 
 docker:hysop:gpu-nvidia:
-  variables:
-    DOCKER_TARGET: hysop_gpu_nvidia
+  variables:   
     IMAGE_NAME: hysop_gpu_nvidia
+    RESULT_NAME: $CI_REGISTRY/particle_methods/hysop/hysop_gpu_nvidia
+    DOCKER_TARGET: hysop_gpu_nvidia
   extends:
     - .hysop-docker-hysop
     - .lmap-cpu
diff --git a/ci/ci-templates.yml b/ci/ci-templates.yml
index 755470ad46ec55977b1d13a4f21d6e06183187f0..bd154d23827bd3a0c9a94399e19424533ebbf991 100644
--- a/ci/ci-templates.yml
+++ b/ci/ci-templates.yml
@@ -245,6 +245,54 @@ workflow:
    - export PYTHONPATH=`echo $PYTHONPATH_0`
    - "bash ci/scripts/run_examples.sh"
 
+# Same as above, but with a default install in python env
+.hysop-base-venv:
+  image: $IMAGE_NAME
+  artifacts:
+    expire_in: 1 week
+    paths:
+      - $BUILD_DIR
+
+.hysop-configure-venv:
+  extends: .hysop-base-venv
+  stage: configure
+  script:
+    - env
+    - "bash ci/scripts/version.sh"
+    - meson setup $BUILD_DIR $CI_PROJECT_DIR
+
+.hysop-build-venv:
+  extends: .hysop-base-venv
+  stage: build
+  script:
+    - meson compile -C $BUILD_DIR
+ 
+.hysop-install-venv:
+  extends: .hysop-base-venv
+  stage: install
+  script:
+    - meson install -C $BUILD_DIR
+    - python3 -c "import hysop; print(hysop); print(hysop.__file__)"
+    - python3 -c "from hysop import f2hysop; print(f2hysop); print(f2hysop.__file__)"
+
+.hysop-test-venv:
+  extends: .hysop-base-venv
+  stage: test
+  script:
+   - python3 -c "import hysop; print(hysop); print(hysop.__file__)"
+   - python3 -c "from hysop import f2hysop; print(f2hysop); print(f2hysop.__file__)"
+   - MESON_TESTTHREADS=1 meson test -C $BUILD_DIR
+  artifacts:
+    when: on_failure
+    paths:
+      - $BUILD_DIR
+
+.hysop-examples-venv:
+  extends: .hysop-base-venv
+  stage: test
+  script:
+    - "bash ci/scripts/run_examples.sh"
+
 # A template to installs Hysop and generates a docker image with a full/uptodate install of Hysop
 .hysop-docker-hysop:
   image: