diff --git a/packages/py-sbi/package.py b/packages/py-sbi/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..a560cd93431e33171296d3d6019fb1c4eade6851
--- /dev/null
+++ b/packages/py-sbi/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PySbi(PythonPackage):
+    """Python package for simulating biological systems."""
+
+    homepage = "https://sbi-dev.github.io/sbi/v0.23.3/"
+    url = "https://github.com/sbi-dev/sbi/archive/refs/tags/v0.23.3.tar.gz"
+
+    version("0.23.3", "b1ef102e47c90088f2adfff5ea88b18421e84c4641ff4dd4f68c1116c296ba81")
+
+    depends_on("python@3.9:", type=("build", "run"))
+    depends_on("py-setuptools", type="build")
+    depends_on("py-wheel", type="build")
+
+    depends_on("py-arviz", type=("build", "run"))
+    depends_on("py-joblib@1.3.0:", type=("build", "run"))
+    depends_on("py-matplotlib", type=("build", "run"))
+    depends_on("py-notebook@:6.4.12", type=("build", "run"))
+    depends_on("py-numpy@:1", type=("build", "run"))
+    depends_on("py-pillow", type=("build", "run"))
+    depends_on("py-pyknos@0.16.0:", type=("build", "run"))
+    depends_on("py-pyro-ppl@1.3.1:", type=("build", "run"))
+    depends_on("py-scikit-learn", type=("build", "run"))
+    depends_on("py-scipy", type=("build", "run"))
+    depends_on("py-tensorboard", type=("build", "run"))
+    depends_on("py-torch@1.13.0:", type=("build", "run"))
+    depends_on("py-tqdm", type=("build", "run"))
+    depends_on("py-pymc@5.0.0:", type=("build", "run"))
+    depends_on("py-zuko@1.2.0:", type=("build", "run"))
+
+    depends_on("py-pytest", type="test")
+    depends_on("py-torchtestcase", type="test")
+
+    skip_modules = ["sbi.inference.snle", "sbi.inference.snpe", "sbi.inference.snre", "sbi.samplers.score", "sbi.samplers.vi"]
+
+    @run_after("install")
+    @on_package_attributes(run_tests=True)
+    def install_test(self):
+        pytest = which("pytest")
+        pytest("-m", "not slow and not gpu")
diff --git a/packages/py-vbi/package.py b/packages/py-vbi/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..ba2cbebbfaf174642ab2a5f6ceec614b679aba46
--- /dev/null
+++ b/packages/py-vbi/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyVbi(PythonPackage):
+
+    homepage = "https://vbi.readthedocs.io/latest/"
+    git = "https://github.com/ins-amu/vbi"
+    url = "https://github.com/ins-amu/vbi/archive/refs/tags/v0.1.3.tar.gz"
+
+    version("0.1.3", "54fa2062f44c9ec8219fae3c13c52a4bd17141b5467b982987673de0662c5255")
+    version("0.1.2", "6ccfeeec718be62a480002a8370130a3e3344955186f99ecbb15b646b68210d6")
+
+    depends_on("python@3.8:", type=("build","run"))
+    depends_on("py-setuptools", type="build")
+    depends_on("py-setuptools-scm", type="build")
+    depends_on("py-wheel", type="build")
+    depends_on("swig@4:", type="build")
+    depends_on("py-numpy", type=("build", "run"))
+    depends_on("py-scipy", type=("build", "run"))
+    depends_on("py-numba", type=("build", "run"))
+    depends_on("py-h5py", type=("build", "run"))
+    depends_on("py-pandas", type=("build", "run"))
+    depends_on("py-networkx", type=("build", "run"))
+    depends_on("py-nbconvert", type=("build", "run"))
+    depends_on("py-matplotlib", type=("build", "run"))
+    depends_on("py-tqdm", type=("build", "run"))
+    depends_on("py-sbi", type=("build", "run"))
+    depends_on("py-torch", type=("build", "run"))
+    depends_on("py-parameterized", type=("build", "run"))
+    depends_on("py-scikit-learn", type=("build", "run"))
+    depends_on("py-pycatch22", type=("build", "run"))
+    depends_on("py-pytest", type="test")
+    
+    @run_after("install")
+    @on_package_attributes(run_tests=True)
+    def install_test(self):
+        pytest = which("pytest")
+        pytest()
diff --git a/spack.yaml b/spack.yaml
index 055df0879fbce725996423b48ced4da122525368..b4322538a7b7260ddd215d34dcb7f2f35c813b0c 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -56,6 +56,7 @@ spack:
     - py-tvb-ext-unicore
     - py-tvb-ext-xircuits@1.1.0
     - py-viziphant@0.4.0
+    - py-vbi
     - pynn-brainscales@9.0-a8
     - r-rgsl@0.1.1
     - r-sbtabvfgen@0.1