awillats / circuit-visualizer-p5

(Experimental) visualizer for understanding networks and properties of their adjacency matrices
https://awillats.github.io/circuit-visualizer-p5/
Apache License 2.0
1 stars 0 forks source link
graph network-visualization

circuit-visualizer-p5

🚧 Work in progress 🚧
Experimental visualizer for studying networks / graphs / circuits and properties of their adjacency matrices. The big-picture goal for this project is to inform how best to stimulate neural circuits in order to infer their connectivity.

Try demo:

Keyboard Commands: ⌨️

Editting modes

n: enter "add new edges" editing mode, click a node and drag to another to connect them, do the same again to remove an edge
m: enter "move" mode, drag nodes to reposition them
o: enter "open-loop stimulation mode", clicking on a node delivers stimulation

Display layers

s: toggle showing edges
r: toggle showing indirect connections
w: wiggle nodes, display outputs

x: export graph to text field
<space>: create a new random, sparse network

Completed Features:

- graph import from text field
    - can use bidirectional arrows <->
    - and multi input multi output lines a,b,c<->d,e
- graph export to text field
- toggle directional edges! (with s)
- highlight edges from a second adjacency matrix
- basic binary matrix reps
- can import connections from binary string (check order / convention)
- can bitshift to "rotate connections"
- can toggle connections via adj mat
- can add connections via drag arrows
    - will also remove redundant connections!
- clearMat()

Similar Frameworks:

closed-loop control of a node reveals a lot if node N has many (non-reciprocal) inputs

for two nodes A,B,

if corr(A,B) > th for both ctrl(A) and ctrl(B) A ⟷ B

chains contain both colliders and forks

reach(un(M)) is insufficient to predict correlation in forks

closed-loop control can eliminate colliders (by serving inputs to junction) closed-loop control interrrupts chains

Major Issues: 🐛

Feature Requests: 🌠

Bonus Features: 🎁

Additional caveats: ⚠️


Additional Topics:

Interesting Circuits: 🕸️

e->a->b->d
c->b

big fork:
a->b->c->d
a->j->i->h

big collider:
h->i->j->a
d->c->b->a

a->j
b->e
c->e
f->e,h,j
g->g,h
i->d
j->c,e