Even though I have evidence that the oscillatory dynamics of at least the hippocampal end of the sheet are eventually vital to include in computations it works so well with HTM theory I’m hopeful you’ll none the less take all this as good news. The “Thousand Brains Model of Intelligence” is a good description of the place field properties needed in the brainwaves required spatial reasoning network I developed and experiment with, where my primary focus has been where the 3 layer hippocampal tip of the cortical sheet that from there goes to motors.
I found that simple rules for wave propagation produce complex 2 spatial frame reasoned behavior needed for the kind of navigational intuition that we have. This is the clue filled paper I most modeled from:
As in a figure shown inside the paper there is a very pronounced (ideal free space conditions) 58% ratio that in at least my model exists in the geometry of wave propagation, by input signals being negated to produce output responses needed for multiple direction traveling wave production. From what I can see from testing in a virtual moving shock zone arena all else checks out in regards to displaying the intuition to go around hazards and wait behind where safer, while doing all the amusing things real animals do when in such dilemmas including being “startled”.
Outputting the same signals as were input reflects a wave back towards source. Doing nothing causes waves to flow around that place, but not through. Using If…Then… logic the rules (including echo location mode) are:
Propagate 2D wave signal, from one place to the next, once.
This is accomplished by each place outputing the opposite of whatever signal it receives.
Same as when people make a 1D wave, by standing up while neighbor next to them sits down.
For hexagonally located 2D places this creates 2D waves, as in casting stone into a pond.
In and Out data is stored for later one Bit at a time retreival, or single 24 bit number.
To avoid data clash errors In and Out arrays are separately updated.'
Private Sub Propagate(F As Long)
Dim X As Long
Dim Y As Long
Dim N As Long
'Serialize input Bits from neighboring connections, store in PlaceIn array.'
For X = 1 To NetWidth
For Y = 1 To NetWidth
InAll(X, Y) = 0
For N = 0 To 23
InBit(X, Y, N) = OutBit(X + NeiX(N), Y + NeiY(N), NeiN(N))
InAll(X, Y) = InAll(X, Y) + (InBit(X, Y, N) * Pwr2(N))
Next N
Next Y
Next X
'Store 6 Bit Output action for each, into PlaceOut array.'
For X = 1 To NetWidth
For Y = 1 To NetWidth
'ATTRACTS.'
If Attract(X, Y) = 1 Then 'If an Attractor location then'
If EchoLocateCheck = 1 Then 'If echo locate mode as in bats then'
OutAll(X, Y) = InAll(X, Y) 'reflect any incoming signals.'
End If
If MapLocateCheck = 1 Then 'If map mode to/from attractor then'
If ToggleOnOffCheck = 1 Then 'either toggle attractor on then off.'
If OutAll(X, Y) = 0 Then
OutAll(X, Y) = 16777215
Else
OutAll(X, Y) = 0
End If
Else 'or always signaling.'
OutAll(X, Y) = 16777215 'Start wave outward in all directions.'
End If
End If
GoTo NextPlace
End If
'AVOIDS.'
If Avoid(X, Y, T) = 1 Then 'If an Avoid location then'
OutAll(X, Y) = 0 'outputs nothing.'
GoTo NextPlace
End If
'BARRIER, BORDER, BOUNDARY.'
If Barrier(X, Y) = 1 Then 'If a Barrier location then'
OutAll(X, Y) = 0 'outputs nothing.'
GoTo NextPlace
End If
'PROPAGATE, default mode that waits for signal to be received then does opposite of input.'
If InAll(X, Y) = 0 Then 'If all 24 inputs are quiet no AP then'
OutAll(X, Y) = 0 'so are all 24 Outputs.'
Else 'Else one or more action potentials were received'
OutAll(X, Y) = 16777215 - InAll(X, Y) 'negate Input, to derive opposite Output.'
End If
NextPlace:
Next Y
Next X
'Extract single Bits from PlaceOut() into PlaceOutBit().'
For X = 1 To NetWidth
For Y = 1 To NetWidth
For N = 0 To 23
OutBit(X, Y, N) = (OutAll(X, Y) And Pwr2(N)) / Pwr2(N)
Next N
Next Y
Next X
End Sub
Although it’s easy for many to read I code in VB6 that few use anymore, but that should not be a problem where all you probably needed for code right now is to see the above subroutine with the rules in it. I now have an updated model for going from retinal motion action potential signals to V1 then across & under the sheet to supply the coordinates (instead of program supplying exact locations) to the hippocampal end for the Forward/Reverse and Left/Right signals, which is of course all easier said than done, even where I’m happy to have then only modeled the intelligence level of an insect. Going further with my model made it worthwhile to further study your videos until I had the general idea of how to explain things to you then exchange notes in this forum.
Signals flowing through each place contain information about what’s going on in the outside world. For example intermittently received spiral waves are indicative of what it’s after (attractor) being too dangerously near a place/thing to avoid, as in the below image.
When the environment is less busy waves radiate normally like this:
I do not know what the cells would do with that information but it’s none the less contained in the signal pattern. One more thing to possibly go with the Thousand Brains/Minds way of thinking.
I long had success with the memory modeling basics are as per David Heiserman where as in what you call a spatial pooler a robot’s sensory bits from whatever it has for sensors are in any order (same results any way) connected anywhere to the address inputs of a RAM of some kind, including what could be called a HTM-RAM with best/educated motor data response guess mechanism included. For digital RAM that has to be added by taking at least random guesses when the confidence level in a given motor action goes to zero. Two bit 0 to 3 confidence levels are enough, almost a magic number. There could be a floating point analog used for confidence levels too, but it should never take 10000 failures before sensing it’s time to try something different. With there normally being multiple motor systems in turn working together over time the overall confidence levels and likewise two bit motor actions become more complex than the two data bits per motor per timestep suggests.
HTM makes sense in a plugs right in sort of way. It’s then possible to address more than 28 digital RAM bits otherwise my personal computer is out of memory. Dividing to two brain hemispheres is a big help reducing needed memory size, and there is much that can be done with two 24 bit RAM arrays. Also very fast. Although that addressing bit limit would not exist I would still need to do the same with HTM by running two systems in parallel, or alternate. It would otherwise not be taking advantage of the wonders of bilateral symmetry or have enough biological accuracy to impress neuroscience. I would not want to go past the in all animals Left/Right and Forward/Reverse upper level controls by adding a bunch of legs that stand in 3D and slows down the PC to look fancy. I believe the important part is establishing the very basics of what ultimately makes it possible to model things in a Mind’s Eye at least as well as we can, with ours. I hope you found what I have a good start in that direction.