Table of Contents
Fetching ...

IVISIT: An Interactive Visual Simulation Tool for system simulation, visualization, optimization, and parameter management

Andreas Knoblauch

TL;DR

IVISIT introduces a Python-based interactive visualisation tool designed for system simulation, parameter management, optimization, and dynamic visualization. The paper details the architecture around core interfaces and a SQLite-backed persistence layer, plus a parser for in-code widget definitions, enabling rapid prototyping. It then presents six examples, ranging from a Hello World demo to LIF neuron visualizations, interactive data generation and classification, and CNN MNIST training with Keras, illustrating the framework's versatility for teaching and research in neural computation and machine learning. The work emphasizes practical impact through teaching tools, rapid labeling utilities, psychophysical experiments, and ML experimentation, all released under the MIT license.

Abstract

IVISIT is a generic interactive visual simulation tool that is based on Python/Numpy and can be used for system simulation, parameter optimization, parameter management, and visualization of system dynamics as required, for example,for developing neural network simulations, machine learning applications, or computer vision systems. It provides classes for rapid prototyping of applications and visualization and manipulation of system properties using interactive GUI elements like sliders, images, textboxes, option lists, checkboxes and buttons based on Tkinter and Matplotlib. Parameters and simulation configurations can be stored and managed based on SQLite database functions. This technical report describes the main architecture and functions of IVISIT, and provides easy examples how to rapidly implement interactive applications and manage parameter settings.

IVISIT: An Interactive Visual Simulation Tool for system simulation, visualization, optimization, and parameter management

TL;DR

IVISIT introduces a Python-based interactive visualisation tool designed for system simulation, parameter management, optimization, and dynamic visualization. The paper details the architecture around core interfaces and a SQLite-backed persistence layer, plus a parser for in-code widget definitions, enabling rapid prototyping. It then presents six examples, ranging from a Hello World demo to LIF neuron visualizations, interactive data generation and classification, and CNN MNIST training with Keras, illustrating the framework's versatility for teaching and research in neural computation and machine learning. The work emphasizes practical impact through teaching tools, rapid labeling utilities, psychophysical experiments, and ML experimentation, all released under the MIT license.

Abstract

IVISIT is a generic interactive visual simulation tool that is based on Python/Numpy and can be used for system simulation, parameter optimization, parameter management, and visualization of system dynamics as required, for example,for developing neural network simulations, machine learning applications, or computer vision systems. It provides classes for rapid prototyping of applications and visualization and manipulation of system properties using interactive GUI elements like sliders, images, textboxes, option lists, checkboxes and buttons based on Tkinter and Matplotlib. Parameters and simulation configurations can be stored and managed based on SQLite database functions. This technical report describes the main architecture and functions of IVISIT, and provides easy examples how to rapidly implement interactive applications and manage parameter settings.
Paper Structure (12 sections, 10 equations, 10 figures)

This paper contains 12 sections, 10 equations, 10 figures.

Figures (10)

  • Figure 1: Architecture of IVISIT. The graph shows all IVISIT Python modules (black boxes) and their mutual dependencies, as well as the dependencies to external (non-standard) Python libraries (like Numpy, Matplotlib, etc.).
  • Figure 2: Starting the IVISIT simulation application, parsing the GUI elements, and doing some simulation steps (see text for details).
  • Figure 3: Running the IVISIT application for simulating a LIF-Neuron (Listing \ref{['lst:LIFNeuron']}). The dendritic voltage trace $v$ of the LIF-Neuron from (\ref{['eq:LIF_neuron_DGL']},\ref{['eq:LIF_neuron_DGL_discretized']}) is drawn in a SimpleScope imported from ivisit.special and displayed within a corresponding IMAGE widget.
  • Figure 4: Running the IVISIT application for simulating a LIF-Neuron and plotting voltage traces and spikes using Matplotlib (Listing \ref{['lst:LIFNeuron_matplotlib']}). Simulation parameters are collected in DICT SLIDERS. Compare to Fig. \ref{['fig:run_demo02_LIFNeuron']}.
  • Figure 5: Running the IVISIT application for interactively generating (or deleting or moving) data by clicking on a Matplotlib figure (Listing \ref{['lst:InteractiveDataGeneration']}). The action (New, Delete, or Move) can be chosen from the LISTSEL widget "Action" (upper right).
  • ...and 5 more figures