diff --git a/Makefile b/Makefile
index 691bf84c768aee6794420c467b0387390dec6218..295088c4a7df3c24562a0ca1c5d7ab09d2e59ddc 100644
--- a/Makefile
+++ b/Makefile
@@ -71,6 +71,7 @@ docs: ## generate Sphinx HTML documentation, including API docs
 	sphinx-apidoc -o docs/ flatland
 	$(MAKE) -C docs clean
 	$(MAKE) -C docs html
+	pydeps flatland -o docs/_build/html/flatland.svg
 	$(BROWSER) docs/_build/html/index.html
 
 servedocs: docs ## compile the docs watching for changes
diff --git a/README.rst b/README.rst
index b4d3193c1b4fb55327216164c602d75cc92e3fdb..11b35adc127b2b5b8b22c55fd0f494871aee56cd 100644
--- a/README.rst
+++ b/README.rst
@@ -92,6 +92,10 @@ flatland
 ========
 TODO: explain the interface here
 
+Module Dependencies
+===================
+.. image:: flatland.svg
+
 
 Authors
 --------
@@ -102,6 +106,7 @@ Authors
 * Erik Nygren <erik.nygren@sbb.ch>
 * Adrian Egli <adrian.egli@sbb.ch>
 * Vaibhav Agrawal <theinfamouswayne@gmail.com>
+* Christian Eichenberger <christian.markus.eichenberger@sbb.ch>
 
 
 <please fill yourself in>
diff --git a/make_docs.py b/make_docs.py
index 7ccbdb736b9b53743b58cfd985538705c5e79f08..8cc1124a6fe624fe5afff416450a0a5d30d654ca 100644
--- a/make_docs.py
+++ b/make_docs.py
@@ -25,5 +25,6 @@ os.environ["SPHINXPROJ"] = "flatland"
 os.chdir('docs')
 subprocess.call(['python', '-msphinx', '-M', 'clean', '.', '_build'])
 subprocess.call(['python', '-msphinx', '-M', 'html', '.', '_build'])
+subprocess.call(['python', '-mpydeps', '../flatland', '-o', '_build/html/flatland.svg'])
 
 browser('_build/html/index.html')
diff --git a/requirements_dev.txt b/requirements_dev.txt
index 51687a034ae1183ce9c4343930229dac29825eb6..b0dafbffc9d1b507e4c67fdae91b5ed0c0d452f7 100644
--- a/requirements_dev.txt
+++ b/requirements_dev.txt
@@ -2,6 +2,7 @@ bumpversion==0.5.3
 wheel==0.32.1
 watchdog==0.9.0
 flake8==3.5.0
+pydeps==1.7.2
 tox==3.5.2
 coverage==4.5.1
 Sphinx==1.8.1
@@ -18,4 +19,5 @@ matplotlib==3.0.2
 PyQt5==5.12
 Pillow==5.4.1
 
-svgutils==0.3.1
\ No newline at end of file
+svgutils==0.3.1
+