Skip to content

Instantly share code, notes, and snippets.

@imalsogreg
Last active June 26, 2023 05:17
Show Gist options
  • Save imalsogreg/a41053c17f783931bfa826e65a3a1a15 to your computer and use it in GitHub Desktop.
Save imalsogreg/a41053c17f783931bfa826e65a3a1a15 to your computer and use it in GitHub Desktop.
A spiral
let
prelude = https://raw.githubusercontent.com/reuron/reuron-io/main/prelude/package.ffg
let
defaultSwcNeuron = https://raw.githubusercontent.com/reuron/reuron-lib/main/defaultSwcNeuron.ffg
let
segment : Natural -> {id: Natural, parent: Integer, x: Real, y: Real, z: Real, r: Real, type: Natural} = \i ->
let
ii : Real = Integer/toReal i
let
negOne : Integer = Natural/toInteger 0 -- Natural/toInteger 1
let
radius : Real = 5.0 * Integer/toReal i + 5.0
let
isLevel2 : Bool = Natural/equal 0 (Natural/mod i 3)
let
isLevel3 : Bool = Natural/equal 0 (Natural/mod i 5)
in
{ id: i
, x: Real/cos (ii % 10.0) * radius
, y: Real/sin (ii % 10.0) * radius
, z: 20.1 * ii
, r: 0.5
, type: if (Natural/equal i 0) then 1 else 2
, parent: if Natural/equal i 0
then negOne
else if isLevel2
then (Natural/toInteger i % Natural/toInteger 2)
else if isLevel3
then (Natural/toInteger i % Natural/toInteger 4)
else (Natural/toInteger i) + negOne
}
let
segments = prelude.list.generate 100 (\i -> segment i)
let
neuron = defaultSwcNeuron segments
in
Neuron/scene {
neurons: [
{ neuron: neuron
, location: { x_mm: 0.0, y_mm: 0.0, z_mm: 0.0 }
, stimulator_segments: []
},
],
synapses: []
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment