diff --git a/doc/htmldoc/attribution-list.rst b/doc/htmldoc/attribution-list.rst
index 574534b4c9..b7aaf84477 100644
--- a/doc/htmldoc/attribution-list.rst
+++ b/doc/htmldoc/attribution-list.rst
@@ -26,3 +26,5 @@ Icons provided by Flaticon
Quote icons created by DinosoftLabs - FlaticonMail icons created by Freepik - FlaticonExternal link icons created by Bharat Icons - Flaticon
+Start icon icons created by Creative Squad - Flaticon
+Source code icons created by Pixel perfect - Flaticon
diff --git a/doc/htmldoc/conf.py b/doc/htmldoc/conf.py
index ee81b4a2f5..bbd821050b 100644
--- a/doc/htmldoc/conf.py
+++ b/doc/htmldoc/conf.py
@@ -44,6 +44,7 @@
source_suffix = ".rst"
master_doc = "index"
extensions = [
+ "hoverxref.extension",
"sphinx_gallery.gen_gallery",
"list_examples",
"sphinx.ext.autodoc",
@@ -53,13 +54,13 @@
"sphinx.ext.intersphinx",
"sphinxcontrib.mermaid",
"sphinx.ext.mathjax",
+ "sphinx_carousel.carousel",
"sphinxcontrib.plantuml",
"add_button_notebook",
"IPython.sphinxext.ipython_console_highlighting",
"nbsphinx",
"extract_api_functions",
"sphinx_design",
- "HoverXTooltip",
"VersionSyncRole",
"sphinx_copybutton",
"notfound.extension",
@@ -67,12 +68,12 @@
autodoc_mock_imports = ["nest.pynestkernel", "nest.ll_api"]
mathjax_path = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
-panels_add_bootstrap_css = False
# Add any paths that contain templates here, relative to this directory.
templates_path = ["templates"]
# To run plantuml locally see the user documentation workflow
plantuml = "java -jar /tmp/plantuml.jar"
+plantuml_output_format = "svg_img"
sphinx_gallery_conf = {
# path to your examples scripts
"examples_dirs": "../../pynest/examples",
@@ -82,6 +83,9 @@
"download_all_examples": False,
}
+carousel_show_captions_below = True
+# carousel_show_controls = True
+
# General information about the project.
project = "NEST Simulator user documentation"
copyright = "2004, nest-simulator"
@@ -177,7 +181,18 @@
}
html_static_path = ["static"]
-html_additional_pages = {"index": "index.html"}
+
+html_css_files = [
+ "css/custom.css",
+ "css/popup.css",
+ "css/pygments.css",
+]
+
+html_js_files = [
+ "js/custom.js",
+ "js/popup.js",
+]
+# html_additional_pages = {"index": "index.html"}
html_sidebars = {"**": ["logo-text.html", "globaltoc.html", "localtoc.html", "searchbox.html"]}
html_favicon = "static/img/nest_favicon.ico"
@@ -230,9 +245,6 @@ def setup(app):
# for events see
# https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx-core-events
app.connect("source-read", toc_customizer)
- app.add_css_file("css/custom.css")
- app.add_css_file("css/pygments.css")
- app.add_js_file("js/custom.js")
app.connect("config-inited", config_inited_handler)
diff --git a/doc/htmldoc/contribute.rst b/doc/htmldoc/contribute.rst
new file mode 100644
index 0000000000..cfd4aed025
--- /dev/null
+++ b/doc/htmldoc/contribute.rst
@@ -0,0 +1,61 @@
+.. _contribute:
+
+Contribute to NEST
+==================
+
+NEST draws its strength from the many people that use and improve it. We
+are happy to consider your contributions (e.g., new models, bug or
+documentation fixes) for addition to the official version of NEST.
+
+Please familiarize yourself with our guides and workflows:
+
+
+
+.. grid:: 1 1 2 2
+
+ .. grid-item-card:: Mailing list
+
+ Have a question or problem about NEST? Get help from the NEST community:
+ use our :ref:`mailing list `.
+
+ .. grid-item-card:: Create a GitHub issue
+
+ If you have a feature request, bug report or other issue, create
+ an issue on GitHub using `the templates `_
+
+
+.. admonition:: First time contributors
+
+ In order to make sure that the NEST Initiative can manage the NEST code base in the long term,
+ we ask that you fill in the :download:`NEST Contributor Agreement `
+ form to transfer your copyright to the NEST initiative and send it to *info [at] nest-initiative.org*.
+
+
+
+
+.. grid:: 1 1 2 2
+
+ .. grid-item-card:: Contribute code
+
+ * New to git or need a refresher? See our :ref:`NEST git workflow `
+ * Follow the :ref:`C++ coding style guidelines `
+ * Review the :ref:`naming conventions for NEST `
+ * Writing an extension to NEST? See :doc:`extmod:index`
+ * :ref:`required_dev_tools` to ensure correct formatting
+
+ .. grid-item-card:: Contribute documentation
+
+ * See our documentation workflows for :ref:`user facing docs ` and :ref:`technical docs `
+ * For making changes to the PyNEST APIs, see our :ref:`pyapi_template`
+ * If you have a Python example network to contribute, please refer to our
+ :ref:`pyexample_template`
+
+.. admonition:: Adding models to NEST
+
+ If you are looking at creating a new model, please consider :doc:`NESTML `:
+ a modeling language supporting neuron and synapse specification, based on the syntax of Python.
+
+
+.. seealso::
+
+ You can find additional guides for technical documentation :ref:`here `
diff --git a/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst b/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst
index ba2d6a4ef1..ff55881131 100644
--- a/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst
+++ b/doc/htmldoc/developer_space/guidelines/styleguide/styleguide.rst
@@ -7,7 +7,7 @@ Why do we have a style guide?
-----------------------------
This style guide was created to provide a single reference point for content
-creation in NEST. This helps ensure the NEST user-level documentation remains
+creation in NEST. This helps ensure the NEST user facing documentation remains
clear and consistent. The style choices we make here are meant to follow the
major trends in technical writing for software.
diff --git a/doc/htmldoc/developer_space/index.rst b/doc/htmldoc/developer_space/index.rst
index 808ad16670..dfe25d59c3 100644
--- a/doc/htmldoc/developer_space/index.rst
+++ b/doc/htmldoc/developer_space/index.rst
@@ -1,14 +1,14 @@
.. _developer_space:
-Developer space
-===============
+Technical documentation
+=======================
Here is all documentation pertaining to the development of NEST.
It is documentation for anyone needing to touch the code or documentation.
-.. grid:: 3
+.. grid:: 3
- .. grid-item-card::
+ .. grid-item-card::
:link-type: ref
:link: dev_install
:class-card: sd-bg-success sd-text-white
@@ -17,76 +17,27 @@ It is documentation for anyone needing to touch the code or documentation.
-.. _contribute:
+Guidelines and workflows for developing NEST
+---------------------------------------------
-Contribute to NEST
-------------------
-NEST draws its strength from the many people that use and improve it. We
-are happy to consider your contributions (e.g., new models, bug or
-documentation fixes) for addition to the official version of NEST.
-Please familiarize yourself with our guides and workflows:
+.. note::
+ Most of the guides and workflows for contributing to NEST can be found in our :ref:`contribute` guide.
-.. grid:: 1 1 2 2
-
- .. grid-item-card:: Mailing list
-
- Have a question or problem about NEST? Get help from the NEST community:
- use our :ref:`mailing list `.
-
- .. grid-item-card:: Create a GitHub issue
-
- If you have a feature request, bug report or other issue, create
- an issue on GitHub using `the templates `_
-
-
-.. grid:: 1 1 2 2
-
- .. grid-item-card:: Contribute code
-
- * New to git or need a refresher? See our :ref:`NEST git workflow `
- * Follow the :ref:`C++ coding style guidelines `
- * Review the :ref:`naming conventions for NEST `
- * Writing an extension module? See :doc:`extmod:index`
- * :ref:`required_dev_tools`
-
- .. grid-item-card:: Contribute documentation
-
- * Review the :ref:`documentation style guide `
- * For making changes to the PyNEST APIs, see our :ref:`pyapi_template`
- * If you have a Python example network to contribute, please refer to our
- :ref:`pyexample_template`
- * Check that documentation renders properly: See the :ref:`build documentation ` guide for developer and user documentation
-
-.. note:: Adding models to NEST
-
- If you are looking at creating a new model, please check out :doc:`NESTML `:
- a modeling language supporting neuron and synapse specification, based on the syntax of Python.
-
-In order to make sure that the NEST Initiative can manage the NEST code base in the long term,
-you need to send us a completed and signed
-:download:`NEST Contributor Agreement ` to transfer your
-copyright to the NEST Initiative before we can merge your pull request.
-
-----
-
-Developer guides
-----------------
.. grid:: 1 1 2 2
- .. grid-item-card:: Reviewer guidelines
+ .. grid-item-card:: Reviewer guidelines
- If you are requested to review a pull request, please
- check our :ref:`code_guidelines`
+ * If you are requested to review a pull request, please check our :ref:`code_guidelines`
+ .. grid-item-card:: CI Workflow
- .. grid-item-card:: Continuous integration
+ * Here you can find details on our :ref:`CI workflow `
- * Here you can find details on our :ref:`CI workflow `
.. grid:: 1 1 2 2
@@ -112,7 +63,7 @@ Developer guides
.. toctree::
:maxdepth: 1
- :hidden:
+ :hidden:
:glob:
workflows/*
diff --git a/doc/htmldoc/developer_space/workflows/documentation_workflow/developer_documentation_workflow.rst b/doc/htmldoc/developer_space/workflows/documentation_workflow/developer_documentation_workflow.rst
index 423ee530ff..32a3a65d37 100644
--- a/doc/htmldoc/developer_space/workflows/documentation_workflow/developer_documentation_workflow.rst
+++ b/doc/htmldoc/developer_space/workflows/documentation_workflow/developer_documentation_workflow.rst
@@ -1,10 +1,10 @@
.. _devdoc_workflow:
-Developer documentation workflow
-################################
+Techincal documentation workflow
+================================
What you need to know
-+++++++++++++++++++++
+---------------------
For developer documentation, we use `Doxygen `__
comments extensively throughout NEST.
@@ -15,12 +15,12 @@ generated in the ``doc`` folder in your source directory.
.. note::
- This workflow shows you how to create **developer documentation**
- for NEST. For the **user documentation**, please refer to our
- :ref:`User documentation workflow `.
+ This workflow shows you how to create **technical documentation**
+ for NEST. For the **user facing documentation**, please refer to our
+ :ref:`User facing documentation workflow `.
Instructions
-++++++++++++
+------------
1. Install Doxygen and graphviz.
diff --git a/doc/htmldoc/developer_space/workflows/documentation_workflow/index.rst b/doc/htmldoc/developer_space/workflows/documentation_workflow/index.rst
index 6aec7ba7df..355618dc8f 100644
--- a/doc/htmldoc/developer_space/workflows/documentation_workflow/index.rst
+++ b/doc/htmldoc/developer_space/workflows/documentation_workflow/index.rst
@@ -8,6 +8,5 @@ Select the documentation workflow you would like to view:
.. toctree::
:maxdepth: 1
- User-level documentation
- Developer documentation
-
+ User facing documentation
+ Technical documentation
diff --git a/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst b/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst
index d8d40f612f..a0ad4be420 100644
--- a/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst
+++ b/doc/htmldoc/developer_space/workflows/documentation_workflow/user_documentation_workflow.rst
@@ -1,7 +1,7 @@
.. _userdoc_workflow:
-User-level documentation workflow
-=================================
+User facing documentation workflow
+==================================
Overview of workflow
--------------------
@@ -231,9 +231,9 @@ form to transfer your copyright to the NEST initiative and send it to *info [at]
.. seealso::
- This workflow shows you how to create **user-level documentation**
- for NEST. For the **developer documentation**, please refer to our
- :ref:`Developer documentation workflow
+ This workflow shows you how to create **user facing documentation**
+ for NEST. For the **technical documentation**, please refer to our
+ :ref:`Technical documentation workflow
`.
diff --git a/doc/htmldoc/devices/index.rst b/doc/htmldoc/devices/index.rst
index 2371536334..38852e9056 100644
--- a/doc/htmldoc/devices/index.rst
+++ b/doc/htmldoc/devices/index.rst
@@ -1,10 +1,29 @@
.. _device_index:
-All about devices in NEST
-=========================
+All about recording and stimulating networks in NEST
+====================================================
+
+
+
+.. grid:: 1 1 2 2
+
+ .. grid-item-card:: |device| All about devices
+ :class-title: sd-d-flex-row sd-align-minor-center
+
+ * :ref:`record_simulations`
+
+ * :ref:`stimulate_network`
+
+ .. grid-item-card:: |math| Device models
+ :class-title: sd-d-flex-row sd-align-minor-center
+
+ * :doc:`/models/index_device`
.. toctree::
:maxdepth: 1
:glob:
+ :hidden:
*
+.. |math| image:: ../static/img/math_orange128.svg
+.. |device| image:: ../static/img/device_orange128.svg
diff --git a/doc/htmldoc/get-started_index.rst b/doc/htmldoc/get-started_index.rst
index 472c8ec436..041246a648 100644
--- a/doc/htmldoc/get-started_index.rst
+++ b/doc/htmldoc/get-started_index.rst
@@ -1,28 +1,212 @@
-Tutorials and examples
-======================
+.. _tutorials_guides:
+
+Tutorials and Guides
+====================
+
+
+Start here to develop your first simulation scripts with NEST
+--------------------------------------------------------------
+
+
+.. grid:: 3
+ :gutter: 1
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-item sd-align-minor-center sd-bg-primary sd-text-white
+
+ |start| First steps
+ ^^^
+
+ * :ref:`Installation instructions `
+ * :ref:`pynest_index`: A step-by-step introduction to creating your first scripts with NEST
+ * :doc:`A simple example <../auto_examples/one_neuron>`: A breakdown of a PyNEST script using one neuron
+ * A :doc:`video tutorial <../tutorials/videos/index>`: Showcasing how to create a simple neural network.
+
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-primary sd-text-white
+
+ |write| Create, connect, simulate, and record
+ ^^^
+
+ * :ref:`modelsmain`: Discover the available models to choose from
+ * :ref:`connection_management`: A guide to building connections in NEST
+ * :ref:`run_simulations`: A guide describing various factors in running simulations
+ * :ref:`record_simulations`: How to collect data from neurons
+ and synapses.
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-item sd-align-minor-center sd-bg-primary sd-text-white
+
+ |script| Pointers for writing your PyNEST script
+ ^^^
+
+ * :ref:`Manipulating nodes (neurons and devices) `: understand basic functionality of nodes
+ * :ref:`Manipulating connections (synapses) `: understand basic fucntionality of connections
+ * :ref:`param_ex`: explore how to use parameter objects in NEST
+
+.. seealso::
+
+
+ Check out our :ref:`numerous example PyNEST scripts `
+
+
+----
+
+Additional topics
+------------------
+
+
+.. grid:: 1 1 2 3
+ :gutter: 1
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-success sd-text-white
+
+ |neuron| More about neurons
+ ^^^
+
+ * :ref:`sim_precise_spike_times`
+ * :ref:`exact_integration`
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-success sd-text-white
+
+ |synapse| More about synapses
+ ^^^
+
+
+ * :ref:`sim_gap_junctions`
+ * :ref:`weight_normalization`
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-success sd-text-white
+
+ |device| More about devices
+ ^^^
+
+ * :ref:`stimulate_network`: An overview of various stimulation devices.
+
+.. grid:: 1 1 2 3
+ :gutter: 1
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-info sd-text-white
+
+ |network| Networks
+ ^^^
+
+ * :ref:`spatial_networks`: A deep dive into building 2D and 3D networks
+ * :doc:`The microcircuit model <../auto_examples/Potjans_2014/index>`: A network model example based on Potjans and Diesman 2014.
+ * The `multi-area model `_: A network model of the visual cortex of the macaque monkey.
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-info sd-text-white
+
+ |hpc| High performance computers (HPC)
+ ^^^
+
+ * :ref:`parallel_computing`: How NEST handles thread parallel and distributed computing
+ * :ref:`optimize_performance`: Guides to optimize NEST performance in large scale simulations
+ * :ref:`benchmark`: How to use the beNNch framework.
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-info sd-text-white
+
+ |random| NEST behavior
+ ^^^
+
+ * :ref:`built_in_timers`: A guide to the various timers available in NEST.
+ * :ref:`random_numbers`: A guide to how random number are used in network simulations.
+
+
+.. grid:: 1 1 2 3
+ :gutter: 1
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-dark sd-text-white
+
+ |sonata| NEST SONATA guide
+ ^^^
+
+ * :ref:`SONATA with NEST `: Guide to using the SONATA format
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-dark sd-text-white
+
+ |connect| Connect to other tools
+ ^^^
+
+ * :ref:`nest_server`: A guide showcasing how to interact with NEST via a RESTful API.
+ * :ref:`MUSIC Tutorial `: how to transmit data between applications
+ with the MUSIC interface, step-by-step.
+ * :ref:`nest_music`: Additional guide for building scripts with MUSIC
+
+
+ .. grid-item-card::
+ :class-header: sd-d-flex-row sd-align-minor-center sd-bg-dark sd-text-white
+
+
+ |refresh| Get the latest changes
+ ^^^
+
+ * :ref:`Update 2.X scripts to 3.X `
+ * :ref:`See the latest changes `
+
+
.. toctree::
:maxdepth: 1
:hidden:
tutorials/index
- PyNEST example scripts
+.. toctree::
+ :maxdepth: 1
+ :hidden:
-.. grid:: 1 1 2 2
- :gutter: 1
- .. grid-item-card:: |nav| Tutorials
- :class-title: sd-d-flex-row sd-align-minor-center
- :link: tutorials
- :link-type: ref
+ Neurons
+ Synapses and connections
+ Devices
+ Spatially-structured networks
+ High performance computing
+ NEST models
+ NEST and SONATA
+ Simulation behavior
+ Randomness in NEST
+ Built-in timers
+ Connect NEST with other tools
+ From NEST 2.x to 3.x
- .. grid-item-card:: |example| PyNEST example scripts
- :class-title: sd-d-flex-row sd-align-minor-center
- :link: pynest_examples
- :link-type: ref
-.. |nav| image:: static/img/GPS-Settings-256_nest.svg
-.. |example| image:: static/img/Documents-02-256_nest.svg
+.. |nav| image:: static/img/GPS-Settings-256_nest.svg
+.. |script| image:: static/img/script_white.svg
+.. |start| image:: static/img/start_white.svg
+.. |user| image:: static/img/020-user.svg
+.. |teacher| image:: static/img/014-teacher.svg
+.. |admin| image:: static/img/001-shuttle.svg
+.. |dev| image:: static/img/dev_orange.svg
+.. |nestml| image:: static/img/nestml-logo.png
+ :scale: 15%
+.. |synapse| image:: static/img/synapse_white.svg
+.. |neuron| image:: static/img/neuron_white.svg
+.. |glossary| image:: static/img/glossary_white.svg
+.. |git| image:: static/img/git_white.svg
+.. |refresh| image:: static/img/refresh_white.svg
+.. |hpc| image:: static/img/hpc_white.svg
+.. |random| image:: static/img/random_white.svg
+.. |math| image:: static/img/math_white.svg
+.. |network| image:: static/img/network_brain_white.svg
+.. |device| image:: static/img/device_white.svg
+.. |connect| image:: static/img/connect_white.svg
+.. |sonata| image:: static/img/sonata_white.svg
+.. |write| image:: static/img/write_nest_white.svg
diff --git a/doc/htmldoc/index.rst b/doc/htmldoc/index.rst
index 2c1b8675f5..358dc7aead 100644
--- a/doc/htmldoc/index.rst
+++ b/doc/htmldoc/index.rst
@@ -1,16 +1,211 @@
-NEST Simulator documentaiton
+NEST Simulator documentation
============================
+
+Welcome!
+--------
+
+
+.. grid::
+
+ .. grid-item::
+
+ NEST is used in computational neuroscience to model and study behavior of large networks of neurons.
+
+ The models describe single neuron and synapse behavior and their connections.
+ Different mechanisms of plasticity can be used to investigate artificial learning
+ and help to shed light on the fundamental principles of how the brain works.
+
+ NEST offers convenient and efficient commands to define and connect large networks,
+ ranging from algorithmically determined connections to data-driven connectivity.
+ Create connections between neurons using numerous synapse models from STDP to gap junctions.
+
+ .. button-ref:: tutorials_guides
+ :ref-type: ref
+ :shadow:
+ :color: primary
+
+ Get started with NEST
+
+ .. grid-item::
+
+ .. grid:: 1 1 1 1
+ :gutter: 2
+
+ .. grid-item-card::
+
+ .. carousel::
+ :show_controls:
+ :show_fade:
+ :data-bs-ride: carousel
+
+ .. figure:: static/img/pong_sim.gif
+
+ Play PONG with NEST
+
+ .. figure:: static/img/pynest/spatial_test3d.png
+
+ Create 3D spatially structured networks
+
+
+ .. figure:: static/img/astrocyte_interaction.png
+
+ Investigate neuron and astrocyte interactions
+
+
+ .. grid-item::
+
+ .. button-ref:: pynest_examples
+ :ref-type: ref
+ :color: info
+ :align: center
+ :shadow:
+
+ Click here to discover all our examples!
+
+----
+
+Conceptual approach
+-------------------
+
+.. mermaid::
+
+ flowchart LR
+
+ classDef nodeStyle color:#fff, stroke:#fff0, fill:#015491;
+ classDef nodeStyle2 color:#fff, stroke:#fff0, fill:#072f42;
+ classDef nodeStyle3 color:#222, stroke:#fff0, fill:#22222233;
+
+ exp --> nest-simulator
+ models -->nest-simulator
+ nest-simulator --> act
+
+ subgraph exp [Experimental protocols]
+ ir(input rates, input currents, timed sequences, etc.):::nodeStyle3
+ end
+ subgraph nest-simulator
+ direction TB
+ stimulating_devices:::nodeStyle2 --> simulate
+ simulate:::nodeStyle2 --> recording_devices:::nodeStyle2
+ end
+
+ subgraph models [Built-in or user provided models]
+ direction LR
+ neuron_models:::nodeStyle --> network:::nodeStyle
+ synapse_models:::nodeStyle --> network
+
+ end
+ subgraph act [Activity data]
+ smp(spike membrane potential, synaptic weights, etc.):::nodeStyle3
+ end
+
+ class act sg
+ class exp sg
+ class models main
+ class nest-simulator main
+ classDef sg fill:#ddd, stroke:#4441, color:#111;
+ classDef main fill:#fff0, stroke:#f63, color:#111, font-weight: bold, stroke-dasharray:5 10, stroke-width:3px;
+
+ simulate[ Simulation \n ______________________]
+ neuron_models[ \n Neuron Models]
+ synapse_models[ \n Synapse Models]
+ stimulating_devices[ Stimulating Devices]
+ recording_devices[ Recording Devices]
+ network[ \n Network Models]
+ click network href "./networks/spatially_structured_networks.html"
+ click neuron_models href "./models/index_neuron.html"
+ click synapse_models href "./models/index_synapse.html"
+ click stimulating_devices href "./models/index_generator.html"
+ click recording_devices href "./models/index_device.html"
+ click simulate href "./nest_behavior/running_simulations.html"
+
+
+
+
+----
+
+
+UML DIAGRAM
+
+.. uml::
+
+ !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
+ ' syntax see https://github.com/plantuml-stdlib/C4-PlantUML/blob/master/README.md#system-context--system-landscape-diagrams
+
+ ' !include
+ !define TUPADR https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/
+ !define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5
+ !include TUPADR/devicons2/bash.puml
+ !include FONTAWESOME/file_invoice.puml
+ !include FONTAWESOME/chart_bar.puml
+
+ LAYOUT_LEFT_RIGHT()
+ 'LAYOUT_AS_SKETCH()
+ HIDE_STEREOTYPE()
+
+ AddBoundaryTag("nest", $borderColor="#ff6633", $borderThickness=3, $fontColor="#ff6633")
+
+
+ Boundary(models, "Builtin or user provided choice of models") {
+ Person(network, "network model", $sprite="img:https://www.nest-simulator.org/images/network_brain_white.png{scale=.25}", $descr="«connectome»")
+ Person(neuron, "neuron models", $sprite="img:https://www.nest-simulator.org/images/neuron_text.png{scale=.3}", $link="https://nest-simulator--2969.org.readthedocs.build/en/2969/neurons/index.html", $descr="«ODEs»")
+ Person(synapse, "synapse models", $sprite="img:https://www.nest-simulator.org/images/synapse_text.png{scale=.3}", $link="https://nest-simulator--2969.org.readthedocs.build/en/2969/synapses/index.html", $descr="«ODEs»")
+ }
+
+ Boundary(nestsim, "NEST Simulator", $tags="nest") {
+ System(nest, "simulation", $sprite="img:https://www.nest-simulator.org/images/nest.png{scale=.6}")
+ System(stimulation, "stimulation devices", $sprite="img:https://www.nest-simulator.org/images/device_text.png{scale=.3}")
+ System(recording, "recording devices", $sprite="img:https://www.nest-simulator.org/images/device_text.png{scale=.3}")
+ }
+
+ SystemDb(protocol, "experimental\nprotocol", $sprite="file_invoice")
+ SystemDb(activity, "activity data", $sprite="chart_bar")
+
+ Rel_L(stimulation, nest, "stimulate")
+ Rel_L(nest, recording, "measure")
+ Rel(network, nest, "")
+ Rel(neuron, network, "")
+ Rel(synapse, network, "")
+
+ Rel_U(protocol, stimulation, "input rates,\ninput currents,\ntimed sequences, …")
+ Rel(recording, activity, "spikes,\nmembrane potentials,\nsynaptic weights, …")
+
.. toctree::
- :maxdepth: 1
+ :caption: USAGE
:hidden:
+ :glob:
- Installation
- Tutorials and examples
- Understand how NEST works
+ Install
+ Tutorials and Guides
+ Examples
PyNEST API
Available models
- Contribute
+ ref_material/glossary
+ Technical docs
+
+
+.. toctree::
+ :caption: COMMUNITY
+ :hidden:
+ :glob:
+
+ Cite NEST
+ Contact us
+ Contribute
What's new?
- Community
+ NEST Homepage
+
+.. toctree::
+ :caption: RELATED PROJECTS
+ :hidden:
+
+ NEST Desktop
+ NESTML
+ NESTGPU
+
+.. toctree::
+ :maxdepth: 1
+ :caption: LICENSE
+ :hidden:
+
license
diff --git a/doc/htmldoc/installation/cmake_options.rst b/doc/htmldoc/installation/cmake_options.rst
index 59123e9e61..8e919d627a 100644
--- a/doc/htmldoc/installation/cmake_options.rst
+++ b/doc/htmldoc/installation/cmake_options.rst
@@ -104,7 +104,7 @@ Build documentation
If either documentation build is toggled to `ON`, you can then run ``make docs`` if you only want to
build the docs.
-See also the :ref:`documentation workflow ` for user and developer docs.
+See also the :ref:`documentation workflow ` for user facing and technical docs.
External libraries
diff --git a/doc/htmldoc/installation/docker.rst b/doc/htmldoc/installation/docker.rst
index 5ccdd89bfb..efbd3e3572 100644
--- a/doc/htmldoc/installation/docker.rst
+++ b/doc/htmldoc/installation/docker.rst
@@ -1,9 +1,10 @@
.. _docker:
-Docker |macos| |linux|
-----------------------
+Docker |macos| |linux| |windows|
+================================
Docker provides an isolated container to run applications.
+Our docker image for NEST also includes NESTML.
1. If you do not have Docker installed, follow the Docker
installation instructions for your system here:
@@ -25,7 +26,7 @@ Docker provides an isolated container to run applications.
Usage
-
+-----
You can use the docker images directly out of https://hub.docker.com/r/nest/nest-simulator
like this:
@@ -37,12 +38,15 @@ like this:
```` can be a version of NEST ``2.20.2`` or later. Alternatively, you can use ``dev`` for the
development branch (master).
+.. _docker_compose:
+
NEST 3.2 and later
-^^^^^^^^^^^^^^^^^^
+------------------
-As of NEST 3.2, you can use the docker-compose feature.
+As of NEST 3.2, you can use the docker-compose feature. This feature provides options to run additional applications along with NEST.
-To use 'docker-compose' you need the definition file from the git repository. Download it:
+To use ``docker-compose`` you need the definition file from the git repository.
+Download it:
.. code-block:: bash
@@ -51,7 +55,8 @@ To use 'docker-compose' you need the definition file from the git repository. Do
You can then run ``docker-compose up`` with one of the following options:
-- NEST server
+NEST server
+~~~~~~~~~~~
.. code-block:: bash
@@ -67,7 +72,10 @@ or
Starts the NEST API server container and opens the corresponding port 52425. Test it with `curl localhost:52425/api`.
See the :ref:`nest_server` documentation for more details.
-- NEST desktop
+.. _docker_desktop:
+
+NEST Desktop
+~~~~~~~~~~~~
.. code-block:: bash
@@ -87,7 +95,8 @@ Open NEST Desktop in the web browser using the following http link: `http://loca
Visit the :doc:`NEST Desktop ` documentation to learn more.
-- Jupyter notebook with NEST
+Jupyter notebook with NEST
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
@@ -104,7 +113,8 @@ Starts a notebook server with pre-installed NEST. The corresponding URL is displ
d paste into your browser.
-- Jupyter lab with NEST
+Jupyter lab with NEST
+~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
@@ -120,12 +130,13 @@ or
Starts a Jupyter lab server with pre-installed NEST. The corresponding URL is displayed in the console.
Copy and paste the URL into your browser.
+Remove container
+----------------
-
-To stop and delete running containers use `docker-compose down`.
+To stop and delete running containers use ``docker-compose down``.
To run NEST 2.20.2
-^^^^^^^^^^^^^^^^^^
+------------------
Jupyter notebook with NEST 2.20.2:
@@ -135,7 +146,7 @@ Jupyter notebook with NEST 2.20.2:
-p 8080:8080 nest/nest-simulator:2.20.2
NEST dev
-^^^^^^^^
+--------
If you want to use the compose configuration for the ``dev`` NEST version, you can use the following file option:
@@ -144,6 +155,12 @@ If you want to use the compose configuration for the ``dev`` NEST version, you c
wget https://raw.githubusercontent.com/nest/nest-docker/master/docker-compose-dev.yml
docker-compose -f docker-compose-dev.yml up nest-notebook
+You can specify the container mode (nest-noteobook, nest-desktop, nest-server, or nest-jupyterlab)
+This will download the docker image with the pre-installed
+NEST master from https://hub.docker.com/r/nest/nest-simulator and start it.
+After booting, a URL is presented. Click on it or copy it to your browser.
+
+
.. _docker_win:
Run NEST on Windows |windows|
diff --git a/doc/htmldoc/installation/hpc_install.rst b/doc/htmldoc/installation/hpc_install.rst
index 49fbe20ee6..0a926fcd43 100644
--- a/doc/htmldoc/installation/hpc_install.rst
+++ b/doc/htmldoc/installation/hpc_install.rst
@@ -3,10 +3,24 @@
High Performance Computer Systems Installation
================================================
+How you want to install NEST on a supercomputer or cluster will depend on your needs
+and how the system is set up.
+
+
+
+Source install
+---------------
+
+See our full guide to installing :ref:`NEST from source `, which allows you to control
+the configuration options.
+
+
Minimal configuration
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~
+
-NEST can be compiled without any external packages; such a configuration may be useful for initial porting to a new supercomputer. However, this implies several restrictions:
+NEST can be compiled without any external packages; such a configuration may be useful for initial porting to a new supercomputer.
+However, this implies several restrictions:
- Some neuron and synapse models will not be available, as they depend on ODE solvers from the GNU Scientific Library.
- The Python extension will not be available
@@ -23,3 +37,25 @@ To configure NEST for compilation without external packages, use the following
See the :ref:`CMake Options ` to further adjust settings for your system.
+
+
+NEST docker
+-----------
+
+Alternatively, you can set up the pre-built :ref:`NEST docker container ` that contains
+everything you need for NEST, as well as options like NEST server, Jupyterlab, or :doc:`NEST Desktop `.
+Our docker container also comes with :doc:`NESTML `.
+
+Connect to remote machine - NEST Server
+---------------------------------------
+
+NEST Server can be deployed on a remote machine such as a workstation or cluster, and users
+can access the NEST simulation engine through the RESTful API on their laptops.
+
+See the :ref:`guide to NEST server ` to learn more.
+
+
+.. seealso::
+
+
+ Check out our guides to :ref:`optimizing NEST for HPC systems `
diff --git a/doc/htmldoc/installation/index.rst b/doc/htmldoc/installation/index.rst
index 69bc61728c..b785ff2adc 100644
--- a/doc/htmldoc/installation/index.rst
+++ b/doc/htmldoc/installation/index.rst
@@ -3,40 +3,55 @@
Install NEST
============
-.. grid:: 1 1 2 2
- .. grid-item-card:: |user| Install pre-built NEST package
- :class-title: sd-d-flex-row sd-align-minor-center
+.. grid:: 3
+ :gutter: 1
- I'm a user who wants to :ref:`install NEST on my computer `
+ .. grid-item-card:: |user| Install a pre-built NEST package using
+ :class-title: sd-d-flex-row sd-align-minor-center
+ * :ref:`Docker (cross-platform) `
+ (Includes NESTML)
+ * :ref:`conda-forge (Linux/macOS) `
+ * :ref:`Ubuntu PPA (Linux) `
+ * :ref:`Homebrew (macOS) `
+ * :ref:`Options for Windows users `
- .. grid-item-card:: |teacher| Install NEST for a class or workshop
- :class-title: sd-d-flex-row sd-align-minor-center
- I'm a lecturer who wants to :ref:`use NEST to teach `
+ .. grid-item-card:: |dev| Source install
+ :class-title: sd-d-flex-row sd-align-minor-center
+ If you want to do development with NEST
-.. grid:: 1 1 2 2
+ * :ref:`dev_install`
- .. grid-item-card:: |admin| Install NEST for supercomputers and clusters
- :class-title: sd-d-flex-row sd-align-minor-center
+ .. grid-item-card:: |admin| HPC install
+ :class-title: sd-d-flex-row sd-align-minor-center
- I'm an admin or user who wants to :ref:`run NEST on HPC `
+ If you are working with HPC systems
- .. grid-item-card:: |dev| Install NEST from source
- :class-title: sd-d-flex-row sd-align-minor-center
+ * :ref:`Install NEST for supercomputers and clusters `
- I'm a developer who wants to :ref:`do development in NEST `
+ .. grid-item-card:: |desktop|
+ :class-title: sd-d-flex-row sd-align-minor-center
-.. grid:: 1 1 2 2
+ A graphical user interface, ideal for learning and teaching concepts
+ regarding neural networks in classrooms and workshops.
- .. grid-item-card:: |nestml| Install NEST with NESTML
- :class-title: sd-d-flex-row sd-align-minor-center
+ :doc:`NEST Desktop documentation ` :octicon:`link-external`
- I'm a user who wants to :doc:`create or customize models `.
+ :ref:`Install docker container with NEST + NEST Desktop `
+
+ .. grid-item-card:: |nestml|
+ :class-title: sd-d-flex-row sd-align-minor-center
+
+ Install the NEST modeling language to create and customize models
+
+
+ :doc:`NESTML documentation ` :octicon:`link-external`
+
+ :ref:`Install docker container for NEST + NESTML `
-|
@@ -60,5 +75,5 @@ If installation didn't work, see the :ref:`troubleshooting section .admonition-title, .md-typeset .admonition.important > .admonition-title {
- background-color: var(--nest-green);
+ background-color: var(--nest-dkblue);
}
.md-typeset .admonition.seealso, .md-typeset .admonition.important {
- border-left: .2rem solid var(--nest-green);
+ border-left: .2rem solid var(--nest-dkblue);
}
.md-typeset .admonition.warning {
border-left-color: #be1717;
-}
+}
.md-typeset .admonition.warning > .admonition-title {
background-color: #be1717;
}
@@ -257,6 +273,12 @@ div.md-header-nav__source a.md-source div.md-source__repository, div.md-source__
color: #fff;
}
+span.md-nav__link.caption {
+
+ padding-top: 0.6rem;
+ padding-bottom: 0.1rem;
+}
+
/*remove logo from header */
.md-header-nav__button {
display: none;
@@ -266,6 +288,14 @@ div.md-header-nav__source a.md-source div.md-source__repository, div.md-source__
padding-top: 0px;
}
+/* dropdowns */
+.md-typeset details > summary {
+ background-color: #ff663310;
+}
+
+.md-typeset details {
+ border-left: none;
+}
/***********************************
* Adjust settings for sphinx design
@@ -273,18 +303,21 @@ div.md-header-nav__source a.md-source div.md-source__repository, div.md-source__
.sd-card-header .sd-card-text {
color: white;
text-align: center;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
}
+
#pynest-examples img.sd-card-img-top {
width: auto;
height: max-content;
}
-
.sd-card-body {
padding: 0.6rem;
}
-.sd-btn {
+#welcome .sd-btn {
font-size: 1em;
- padding: .375em .75em;
+ padding: .75em .75em;
}
.sd-container-fluid {
padding-left: 0;
@@ -294,6 +327,12 @@ div.md-header-nav__source a.md-source div.md-source__repository, div.md-source__
padding-left: 0;
padding-right: 0;
}
+.scbs-carousel-control-next-icon{
+ background-image: url('../img/arrow_right.svg')
+}
+.scbs-carousel-control-prev-icon{
+ background-image: url('../img/arrow_left.svg')
+}
/* ************************************
* Define styles for custom index.html
@@ -489,7 +528,7 @@ a.buttonlink:hover{
}
.greenelement{
- background: var(--nest-green);
+ background: var(--nest-brown);
color:#fff;
}
@@ -508,7 +547,7 @@ a.buttonlink:hover{
}
.green {
- color: var(--nest-green);
+ color: #007f00;
}
.darkgreen {
@@ -650,8 +689,8 @@ MEDIAQUERIES
@media only screen and (min-width: 2048px) {
.md-typeset .sd-card-title img {
- width: 128px;
- height: auto;
+ width: auto;
+ height: 60px;
}
}
@media only screen and (min-width: 1024px) {
diff --git a/doc/htmldoc/static/css/popup.css b/doc/htmldoc/static/css/popup.css
new file mode 100644
index 0000000000..a1dcf9ffc6
--- /dev/null
+++ b/doc/htmldoc/static/css/popup.css
@@ -0,0 +1,40 @@
+.popuptext {
+ display: none;
+ position: absolute;
+ /*z-index: 1;*/
+ background-color: #fff;
+ padding: 10px;
+ border-radius: 5px;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
+ width: 200px;
+ margin-right: 10px;
+}
+.popuptext.visible {
+ display: flex;
+}
+/* I think this one can be removed (check) TODO */
+.path {
+ position: relative;
+}
+
+/*
+.popup {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+*/
+
+@-webkit-keyframes fadeIn {
+ from {opacity: 0;}
+ to {opacity: 1;}
+}
+
+@keyframes fadeIn {
+ from {opacity: 0;}
+ to {opacity:1 ;}
+}
+
+
diff --git a/doc/htmldoc/static/img/001-shuttle_black.png b/doc/htmldoc/static/img/001-shuttle_black.png
deleted file mode 100644
index d68656d696..0000000000
Binary files a/doc/htmldoc/static/img/001-shuttle_black.png and /dev/null differ
diff --git a/doc/htmldoc/static/img/001-shuttlewhite.png b/doc/htmldoc/static/img/001-shuttlewhite.png
new file mode 100644
index 0000000000..bcfe711de3
Binary files /dev/null and b/doc/htmldoc/static/img/001-shuttlewhite.png differ
diff --git a/doc/htmldoc/static/img/014-teacher_white.png b/doc/htmldoc/static/img/014-teacher_white.png
new file mode 100644
index 0000000000..38dd3a6235
Binary files /dev/null and b/doc/htmldoc/static/img/014-teacher_white.png differ
diff --git a/doc/htmldoc/static/img/019-programmer-1white.png b/doc/htmldoc/static/img/019-programmer-1white.png
new file mode 100644
index 0000000000..68942ac27b
Binary files /dev/null and b/doc/htmldoc/static/img/019-programmer-1white.png differ
diff --git a/doc/htmldoc/static/img/020-userwhite.png b/doc/htmldoc/static/img/020-userwhite.png
new file mode 100644
index 0000000000..2d12a23994
Binary files /dev/null and b/doc/htmldoc/static/img/020-userwhite.png differ
diff --git a/doc/htmldoc/static/img/arrow_left.svg b/doc/htmldoc/static/img/arrow_left.svg
new file mode 100644
index 0000000000..458da11260
--- /dev/null
+++ b/doc/htmldoc/static/img/arrow_left.svg
@@ -0,0 +1,34 @@
+
+
+
+
diff --git a/doc/htmldoc/static/img/arrow_right.svg b/doc/htmldoc/static/img/arrow_right.svg
new file mode 100644
index 0000000000..9f7868515d
--- /dev/null
+++ b/doc/htmldoc/static/img/arrow_right.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/doc/htmldoc/static/img/connect_white.svg b/doc/htmldoc/static/img/connect_white.svg
new file mode 100644
index 0000000000..608b6f21ad
--- /dev/null
+++ b/doc/htmldoc/static/img/connect_white.svg
@@ -0,0 +1,52 @@
+
+
+
+
diff --git a/doc/htmldoc/static/img/dev_orange.svg b/doc/htmldoc/static/img/dev_orange.svg
index 1b00aaa7e9..74fca04614 100644
--- a/doc/htmldoc/static/img/dev_orange.svg
+++ b/doc/htmldoc/static/img/dev_orange.svg
@@ -4,9 +4,9 @@