diff --git a/packages/nest-desktop/package.py b/packages/nest-desktop/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..71ff52962b99c700459eaf214bbe86e0c4b42c8c
--- /dev/null
+++ b/packages/nest-desktop/package.py
@@ -0,0 +1,28 @@
+# 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.package import *
+
+
+class NestDesktop(PythonPackage):
+    """NEST Desktop is a web-based GUI for NEST Simulator and other
+    simulators of spiking networks."""
+
+    homepage = "http://www.nest-desktop.github.io"
+    pypi     = "nest-desktop/nest_desktop-4.1.0.tar.gz"
+    git      = "https://github.com/nest-desktop/nest-desktop.git"
+
+    maintainers = ['spreizer']
+
+    version('4.1.0', sha256='c88047a7a2ad470aaee578b4be595ea5e66f9ce57d976318e8f5ef8aafd9b7b5')
+    version('4.0.5', sha256='fffd472bf2f5e1a4398ad82cbe626e1b306d68b0e3a31ffcca71cd3449d8ef2f')
+
+    variant("nest", default=False)
+
+    depends_on("python@3.9:", type=("build", "run"))
+    depends_on("py-setuptools", type=("build"))
+
+    depends_on('nest@3.0:', type=('run'), when='+nest')
+
diff --git a/packages/py-quantities/package.py b/packages/py-quantities/package.py
index e5d14e955da39044aa594a24aad4fe0c37057124..623671aa920b71a46b6ed6b26eff5c5f8f6ca85f 100644
--- a/packages/py-quantities/package.py
+++ b/packages/py-quantities/package.py
@@ -10,9 +10,10 @@ class PyQuantities(PythonPackage):
     """Support for physical quantities with units, based on numpy"""
 
     homepage = "https://python-quantities.readthedocs.org"
-    pypi = "quantities/quantities-0.16.0.tar.gz"
+    pypi = "quantities/quantities-0.16.2.tar.gz"
     maintainers = ['apdavison']
-    
+
+    version('0.16.2', sha256='1f7c24f10d9ff57ddf751a358ea2fdfa9914516722f06a788ef4a2924c77d21c')
     version('0.16.0', sha256='211cce2d268da7e202abab5c2533ce3200ff619dd8ac2a3cd98f861b8a57c6eb')
     version('0.15.0', sha256='9ea31e2a0d7517cf24d546b14146def9292639993a616cca61b875ef796b4b2b')
     version('0.14.1', sha256='efeafffc0c0364f891a9327239cd12496bccb55cd037a6d1bf44de706f722877')
diff --git a/packages/py-snudda/package.py b/packages/py-snudda/package.py
index 092e410bf670fee524ab7531ac6bbe50fa38d79d..60cd2da0ad3fd3400d8232a84378b9021a46e3c8 100644
--- a/packages/py-snudda/package.py
+++ b/packages/py-snudda/package.py
@@ -14,6 +14,11 @@ class PySnudda(PythonPackage):
 
     maintainers = ["hjorth"]
 
+    version("2.1.17", "6a89065cf6722c2da512a0d5fa60a3c8")
+    version("2.1.14.1", "913b613055030183a8f30a67a0410def")
+    version("2.1.14", "a0a88d4822a500b8390db9a47c628f50")
+    version("2.1.13", "e5f7bc57a848e489352f8fb1f16b164a")
+    version("2.1.12", "8f8cbbcf3d6f12c4092160a6e9312ae1")
     version("2.1.11", "5cb71667a6f8c708279fc5dc94883ba3")
     version("2.1.10", "a1f5bf39ee0418e7ce8a0783042c59c8")
     version("2.1.2", "5d61a548995f88f95f680bf124534287")
@@ -39,12 +44,17 @@ class PySnudda(PythonPackage):
     depends_on("py-cython",             type=("build","run"))
     depends_on("py-numba@0.60.0:",      type=("build","run"))
     depends_on("open3d+python@0.18:",   type=("build","run"), when="@2:")
+    depends_on("py-quantities@0.16.2:", type=("build","run"), when="@2.1.14:")
 
-    # snudda tarballs in pypi do not include the tests/ dir: just use default spack tests for now
     # @run_after('install')
     # @on_package_attributes(run_tests=True)
     # def install_test(self):
-    #     python('-m', 'unittest', 'discover', '-v', '-s' './tests')
+    #     with working_dir("tests"):
+    #         from pathlib import Path
+    #         excluded_tests = ['test_sonata.py', 'test_snudda_path.py', 'test_frequency']
+    #         test_files = [str(p) for p in Path(".").rglob('test_*.py') if p.name not in excluded_tests]
+    #         if test_files:
+    #             python('-m', 'unittest', '-v', *test_files)
 
     # blender is for now an optional dependency: leave out of import_modules to avoid errors in tests
     skip_modules = ['snudda.plotting.Blender', 'snudda.plotting.Blender.io_mesh_swc', 'snudda.plotting.Blender.visualisation']
diff --git a/spack.yaml b/spack.yaml
index 819bca797d626c5c615dee27c5b51fd12c0b0cf1..aacd11ee95e39179ea02f6cb6e18d60ab380be07 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -13,6 +13,7 @@ spack:
     - py-biobb-structure-checking@3.13.4
     - py-biobb-structure-utils@4.1.0
     - hxtorch@10.0-a1
+    - nest-desktop@4.1.0
     - nest@3.8 +sonata
     - neuron@8.2.3 +mpi
     - jaxsnn@10.0-a1
@@ -49,9 +50,9 @@ spack:
     - py-pynn@0.12.3 +mpi
     - py-pyunicore@1.1.1
     - py-quantities-scidash@0.12.4.3
-    - py-quantities@0.16.0
+    - py-quantities@0.16.2
     - py-siibra@1.0a9
-    - py-snudda@2.1.11
+    - py-snudda@2.1.17
     - py-spynnaker@7.3.0
     - py-tvb-framework@2.9
     - py-tvb-contrib@2.9.1