Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
dnf_composer Namespace Reference

Namespaces

namespace  element
 
namespace  tools
 
namespace  user_interface
 

Classes

class  Application
 Top-level application that owns the GUI, simulation, and visualization. More...
 
class  Exception
 
struct  has_simulation_constructor
 
struct  has_simulation_constructor< T, std::void_t< decltype(T(std::declval< std::shared_ptr< Simulation > >()))> >
 
struct  has_visualization_constructor
 
struct  has_visualization_constructor< T, std::void_t< decltype(T(std::declval< std::shared_ptr< Visualization > >()))> >
 
class  Heatmap
 
struct  HeatmapParameters
 
class  LinePlot
 
struct  LinePlotParameters
 
class  Plot
 Abstract base class for all renderable plots. More...
 
struct  PlotAnnotations
 
struct  PlotCommonParameters
 
struct  PlotDimensions
 
struct  PlotSpecificParameters
 
class  Simulation
 Manages the element registry and drives the simulation loop. More...
 
class  SimulationFileManager
 Serializes and deserializes a Simulation to / from a JSON file. More...
 
class  SimulationRecorder
 Manages ongoing time-series recordings and snapshot exports of element component data for a simulation. More...
 
class  Visualization
 Manages a collection of plots driven by a running Simulation. More...
 

Typedefs

using json = nlohmann::json
 

Enumerations

enum class  ErrorCode : std::uint8_t {
  OK , APP_CONSTRUCTION , APP_INIT , APP_STEP ,
  APP_CLOSE , APP_INVALID_SIM , APP_INVALID_VIS , APP_VIS_SIM_MISMATCH ,
  SIM_INVALID_PARAMETER , SIM_ELEM_NOT_FOUND , SIM_RUNTIME_LESS_THAN_ZERO , SIM_ELEM_INDEX ,
  SIM_ELEM_ALREADY_EXISTS , ELEM_INVALID_SIZE , ELEM_INVALID_PARAMETER , ELEM_INPUT_IS_NULL ,
  ELEM_INPUT_ALREADY_EXISTS , ELEM_INPUT_NOT_FOUND , ELEM_INPUT_SIZE_MISMATCH , ELEM_SIZE_NOT_ALLOWED ,
  ELEM_RENAME_NOT_ALLOWED , ELEM_COMP_NOT_FOUND , GAUSS_STIMULUS_POSITION_OUT_OF_RANGE , GAUSS_STIMULUS_SUM_MISMATCH ,
  VIS_INVALID_SIM , VIS_DATA_NOT_FOUND , VIS_INVALID_PLOTTING_INDEX , LOG_LOCAL_TIME_ERROR ,
  PLOT_INVALID_VIS_OBJ
}
 
enum class  LearningRule : int { LearningRule::HEBB , LearningRule::OJA , LearningRule::DELTA }
 Selects the synaptic weight update rule used by FieldCoupling. More...
 
enum class  PlotType : int { LINE_PLOT = 0 , HEATMAP = 1 }
 
enum class  RecordingIntervalUnit { RecordingIntervalUnit::Ticks , RecordingIntervalUnit::Milliseconds }
 Unit for the recording sample interval. More...
 

Functions

void applyImGuiStyle (const std::string &jsonPath)
 
std::shared_ptr< SimulationcreateSimulation (const std::string &identifier="", double deltaT=1, double tZero=0, double t=0)
 Factory helper — create a Simulation with the given parameters.
 
static element::ElementLabel elementLabelFromString (const std::string &s)
 
static ImVec2 toVec2 (const nlohmann::json &j)
 
static ImVec4 toVec4 (const nlohmann::json &j)
 
static void updateHeatmapDimensionHint (const std::shared_ptr< Plot > &plot, const std::vector< std::pair< std::string, std::string > > &data, const std::shared_ptr< Simulation > &simulation)
 

Variables

ImFont * g_BlackLargeFont
 Cera Pro Black.
 
ImFont * g_BlackMediumFont
 Cera Pro Black.
 
ImFont * g_BlackSmallFont
 Cera Pro Black.
 
ImFont * g_BoldLargeFont
 Cera Pro Bold.
 
ImFont * g_BoldMediumFont
 Cera Pro Bold.
 
ImFont * g_BoldSmallFont
 Cera Pro Bold.
 
constexpr size_t g_FontCount = 15
 Number of text font variants (icon fonts not counted).
 
ImFont * g_LargeIconsFont
 Font Awesome.
 
ImFont * g_LightLargeFont
 Cera Pro Light.
 
ImFont * g_LightMediumFont
 Cera Pro Light.
 
ImFont * g_LightSmallFont
 Cera Pro Light.
 
ImFont * g_MediumIconsFont
 Font Awesome.
 
ImFont * g_MediumLargeFont
 Cera Pro Medium.
 
ImFont * g_MediumMediumFont
 Cera Pro Medium (main font)
 
ImFont * g_MediumSmallFont
 Cera Pro Medium.
 
ImFont * g_MonoLargeFont
 JetBrainsMono.
 
ImFont * g_MonoMediumFont
 JetBrainsMono.
 
ImFont * g_MonoSmallFont
 JetBrainsMono.
 
ImFont * g_SmallIconsFont
 Font Awesome.
 
static const std::unordered_map< std::string, ImGuiCol > kColorIndex
 
const std::map< LearningRule, std::string > LearningRuleToString
 Maps LearningRule values to human-readable strings.
 
const std::map< PlotType, std::string > PlotTypeToString
 

Typedef Documentation

◆ json

typedef nlohmann::json dnf_composer::json

Enumeration Type Documentation

◆ ErrorCode

enum class dnf_composer::ErrorCode : std::uint8_t
strong
Enumerator
OK 
APP_CONSTRUCTION 
APP_INIT 
APP_STEP 
APP_CLOSE 
APP_INVALID_SIM 
APP_INVALID_VIS 
APP_VIS_SIM_MISMATCH 
SIM_INVALID_PARAMETER 
SIM_ELEM_NOT_FOUND 
SIM_RUNTIME_LESS_THAN_ZERO 
SIM_ELEM_INDEX 
SIM_ELEM_ALREADY_EXISTS 
ELEM_INVALID_SIZE 
ELEM_INVALID_PARAMETER 
ELEM_INPUT_IS_NULL 
ELEM_INPUT_ALREADY_EXISTS 
ELEM_INPUT_NOT_FOUND 
ELEM_INPUT_SIZE_MISMATCH 
ELEM_SIZE_NOT_ALLOWED 
ELEM_RENAME_NOT_ALLOWED 
ELEM_COMP_NOT_FOUND 
GAUSS_STIMULUS_POSITION_OUT_OF_RANGE 
GAUSS_STIMULUS_SUM_MISMATCH 
VIS_INVALID_SIM 
VIS_DATA_NOT_FOUND 
VIS_INVALID_PLOTTING_INDEX 
LOG_LOCAL_TIME_ERROR 
PLOT_INVALID_VIS_OBJ 

◆ PlotType

enum class dnf_composer::PlotType : int
strong
Enumerator
LINE_PLOT 
HEATMAP 

Function Documentation

◆ applyImGuiStyle()

void dnf_composer::applyImGuiStyle ( const std::string &  jsonPath)
Here is the call graph for this function:

◆ elementLabelFromString()

static element::ElementLabel dnf_composer::elementLabelFromString ( const std::string &  s)
static

◆ toVec2()

static ImVec2 dnf_composer::toVec2 ( const nlohmann::json &  j)
static
Here is the caller graph for this function:

◆ toVec4()

static ImVec4 dnf_composer::toVec4 ( const nlohmann::json &  j)
static
Here is the caller graph for this function:

◆ updateHeatmapDimensionHint()

static void dnf_composer::updateHeatmapDimensionHint ( const std::shared_ptr< Plot > &  plot,
const std::vector< std::pair< std::string, std::string > > &  data,
const std::shared_ptr< Simulation > &  simulation 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ g_BlackLargeFont

ImFont * dnf_composer::g_BlackLargeFont
inline

Cera Pro Black.

◆ g_BlackMediumFont

ImFont * dnf_composer::g_BlackMediumFont
inline

Cera Pro Black.

◆ g_BlackSmallFont

ImFont * dnf_composer::g_BlackSmallFont
inline

Cera Pro Black.

◆ g_BoldLargeFont

ImFont * dnf_composer::g_BoldLargeFont
inline

Cera Pro Bold.

◆ g_BoldMediumFont

ImFont * dnf_composer::g_BoldMediumFont
inline

Cera Pro Bold.

◆ g_BoldSmallFont

ImFont* dnf_composer::g_BoldSmallFont
inline

Cera Pro Bold.

◆ g_FontCount

constexpr size_t dnf_composer::g_FontCount = 15
inlineconstexpr

Number of text font variants (icon fonts not counted).

◆ g_LargeIconsFont

ImFont * dnf_composer::g_LargeIconsFont
inline

Font Awesome.

◆ g_LightLargeFont

ImFont* dnf_composer::g_LightLargeFont
inline

Cera Pro Light.

◆ g_LightMediumFont

ImFont* dnf_composer::g_LightMediumFont
inline

Cera Pro Light.

◆ g_LightSmallFont

ImFont* dnf_composer::g_LightSmallFont
inline

Cera Pro Light.

◆ g_MediumIconsFont

ImFont * dnf_composer::g_MediumIconsFont
inline

Font Awesome.

◆ g_MediumLargeFont

ImFont * dnf_composer::g_MediumLargeFont
inline

Cera Pro Medium.

◆ g_MediumMediumFont

ImFont* dnf_composer::g_MediumMediumFont
inline

Cera Pro Medium (main font)

◆ g_MediumSmallFont

ImFont* dnf_composer::g_MediumSmallFont
inline

Cera Pro Medium.

◆ g_MonoLargeFont

ImFont* dnf_composer::g_MonoLargeFont
inline

JetBrainsMono.

◆ g_MonoMediumFont

ImFont * dnf_composer::g_MonoMediumFont
inline

JetBrainsMono.

◆ g_MonoSmallFont

ImFont* dnf_composer::g_MonoSmallFont
inline

JetBrainsMono.

◆ g_SmallIconsFont

ImFont * dnf_composer::g_SmallIconsFont
inline

Font Awesome.

◆ kColorIndex

const std::unordered_map<std::string, ImGuiCol> dnf_composer::kColorIndex
static

◆ LearningRuleToString

const std::map<LearningRule, std::string> dnf_composer::LearningRuleToString
inline
Initial value:
= {
{LearningRule::HEBB, "Hebb"},
{LearningRule::OJA, "Oja"},
{LearningRule::DELTA, "Delta"}
}

Maps LearningRule values to human-readable strings.

◆ PlotTypeToString

const std::map<PlotType, std::string> dnf_composer::PlotTypeToString
inline
Initial value:
= {
{PlotType::LINE_PLOT, "line plot" },
{PlotType::HEATMAP, "heatmap" }
}