Simple PoC of neural simulation model.
warning
This is just a model to verify feasibility and may be deprecated at any time.
The original idea from spikingnn. This is an elixir implementation with asynchoronous format.
Recording of idea: Interactive testbed for cortical modeling? - Elixir Framework Forums / Nx Forum - Elixir Programming Language Forum
Simulation of neuron references amiryt's Erlang-project, and hierarchical architecture inspired by ThousandIsland.
Architecture of application like following graph:
graph TD
Application --> NeuronSupervisor
NeuronSupervisor --1..n--> Neuron["Neuron GenServer"]
Application --> PortScheduler("PortScheduler")
PortScheduler --1..m--> Port("Port")
Port <-.simulus or record.-> Neuron
Neuron <-.communication.-> Neuron
Neuron --> SomaRunner("SomaRunner :gen_statem") --> Container("Param and State Container: Agent")
Neuron --> SynapseRunner("SynapseRunner :gen_statem") --> Container("Param and State Container: Agent")
SynapseRunner -.current.-> SomaRunner
Models -.require.-> SomaRunner
Models -.require.-> SynapseRunner
def deps do
[
{:glowworm, git: "https://github.com/GES233/Glowworm.git"}
]
end