# Common Lisp HTM Implementation

**URL:** <https://discourse.numenta.org/t/common-lisp-htm-implementation/6279>\
**Category:** Implementations\
**Created:** [July 10, 2019, 2:51pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279 "2019-07-10T14:51:59Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![gibsonf1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/gibsonf1/32/4308_2.png) [@gibsonf1](https://discourse.numenta.org/u/gibsonf1)\
**Post date:** [July 10, 2019, 2:51pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/1 "2019-07-10T14:51:59Z")

</div>

Is anyone interested in collaborating on a Common Lisp implementation of HTM? (using SBCL ( [http://www.sbcl.org/](http://www.sbcl.org/) ), cl-graph to model the structure ( [https://github.com/gwkkwg/cl-graph](https://github.com/gwkkwg/cl-graph) ) and rtg-math for the math library ( [https://github.com/cbaggers/rtg-math](https://github.com/cbaggers/rtg-math) ) with lparallel ( [https://lparallel.org/](https://lparallel.org/) ) for parallel processing as well as the best gpu library (there are many) to enable running on gpus as well). The advantages of Common Lisp: a high level language (I would argue even better in that respect than python) with the fully compiled speed of C+ - so it’s a likely candidate for creating the fastest implementation.

---

<div class="post-metadata">

**Author:** ![sublimemm](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/sublimemm/32/4302_2.png) [@sublimemm](https://discourse.numenta.org/u/sublimemm)\
**Post date:** [July 11, 2019, 1:10am UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/2 "2019-07-11T01:10:59Z")

</div>

I’d be willing to help on a clojure one…

The existing clojure impl has not been updated in 3 years 😢

---

<div class="post-metadata">

**Author:** ![wai](https://avatars.discourse-cdn.com/v4/letter/w/bcef8e/32.png) [@wai](https://discourse.numenta.org/u/wai)\
**Post date:** [July 11, 2019, 2:56pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/3 "2019-07-11T14:56:27Z")

</div>

This is interesting. Can a newbie in SBCL and NUPIC help?

I am implementing the Spatial Pooler algorithm in SBCL just to learn.

I would love to learn more about your project.

---

<div class="post-metadata">

**Author:** ![gibsonf1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/gibsonf1/32/4308_2.png) [@gibsonf1](https://discourse.numenta.org/u/gibsonf1)\
**Post date:** [July 11, 2019, 8:31pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/4 "2019-07-11T20:31:32Z")

</div>

If we get another couple people, we’ll set it up on github.

---

<div class="post-metadata">

**Author:** ![gibsonf1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/gibsonf1/32/4308_2.png) [@gibsonf1](https://discourse.numenta.org/u/gibsonf1)\
**Post date:** [July 12, 2019, 5:23pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/5 "2019-07-12T17:23:21Z")

</div>

Just found this on github after talking to Marek Kochanowicz on #lisp IRC: [https://github.com/sirherrbatka/cl-htm](https://github.com/sirherrbatka/cl-htm)

---

<div class="post-metadata">

**Author:** ![Jerome\_Onwunalu](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/jerome_onwunalu/32/4322_2.png) [@Jerome\_Onwunalu](https://discourse.numenta.org/u/Jerome_Onwunalu)\
**Post date:** [July 13, 2019, 2:13am UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/6 "2019-07-13T02:13:12Z")

</div>

Hi Gibson, if you need still more people I can try to contribute. I mostly use SBCL and have used lparallel lib for parallel processing. Jeosol

---

<div class="post-metadata">

**Author:** ![gibsonf1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/gibsonf1/32/4308_2.png) [@gibsonf1](https://discourse.numenta.org/u/gibsonf1)\
**Post date:** [July 17, 2019, 11:49pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/7 "2019-07-17T23:49:49Z")

</div>

Another piece to work with, an algebraic topology library in lisp: [http://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/](http://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/) (My interest in pursuing this inspired by the Blue Brain Project video [The Hidden Structure of the Neocortical Column](https://www.youtube.com/watch?v=BnhHNCel8Fo) by Kathryn Hess, EPFL

---

<div class="post-metadata">

**Author:** ![Durrendal](https://avatars.discourse-cdn.com/v4/letter/d/edb3f5/32.png) [@Durrendal](https://discourse.numenta.org/u/Durrendal)\
**Post date:** [July 20, 2019, 8:25pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/8 "2019-07-20T20:25:33Z")

</div>

I’d be willing to help out. The idea is fascinating.

---

<div class="post-metadata">

**Author:** ![gibsonf1](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/gibsonf1/32/4308_2.png) [@gibsonf1](https://discourse.numenta.org/u/gibsonf1)\
**Post date:** [July 20, 2019, 9:22pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/9 "2019-07-20T21:22:18Z")

</div>

I think step one is setting up a systems model for various neuron types, the cortical column and wider systems. I’ve set up a thread to discuss this here: [Systems Diagram and understanding of the Neo Cortex](https://discourse.numenta.org/t/systems-diagram-and-understanding-of-the-neo-cortex/6337/3) Mark Browne offered some great links to work done on systems understanding there starting with this one: [http://www.mrc.uidaho.edu/~rwells/techdocs/Cortical%20Neurons%20and%20Circuits.pdf](http://www.mrc.uidaho.edu/~rwells/techdocs/Cortical%20Neurons%20and%20Circuits.pdf). The goal is to have a fully integrated systems approach to organize the effort.

Interesting work in the role of dendrites in parallel processing: [https://actu.epfl.ch/news/the-way-a-single-neuron-processes-information-is-2/](https://actu.epfl.ch/news/the-way-a-single-neuron-processes-information-is-2/)

---

<div class="post-metadata">

**Author:** ![wai](https://avatars.discourse-cdn.com/v4/letter/w/bcef8e/32.png) [@wai](https://discourse.numenta.org/u/wai)\
**Post date:** [August 30, 2019, 12:26pm UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/10 "2019-08-30T12:26:22Z")

</div>

While waiting for the project to take shape, I have written a couple of lines porting [htm.core’s ScalarEncoder.cpp](https://github.com/htm-community/htm.core/encoders/ScalarEncoder.cpp) to Common Lisp (SBCL) [here](https://gitlab.com/haicnguyen/htm-cl) or [here](https://github.com/haicnguyen/htm-cl).

---

<div class="post-metadata">

**Author:** ![SeanOConnor](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/seanoconnor/32/3441_2.png) [@SeanOConnor](https://discourse.numenta.org/u/SeanOConnor)\
**Post date:** [November 3, 2019, 4:38am UTC](https://discourse.numenta.org/t/common-lisp-htm-implementation/6279/12 "2019-11-03T04:38:22Z")

</div>

Neural network lecture by Scott Fahlman (Fall 2019):  
[https://youtu.be/k2mPEUZH978](https://youtu.be/k2mPEUZH978)  
One of the core developers of common LISP.
