Skip to content
Experimental algorithms. Unsupported.
Branch: master
Clone or download
subutai Merge pull request #986 from maxwellpollack/master
Cleanup of localization_rnn project.
Latest commit ea7f86e May 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci DEVOPS-387: Add contributor validation check to circleci Nov 2, 2018
ci DEVOPS-387: Add contributor validation check to circleci Nov 2, 2018
docs uploading Cosyne 2017 poster Feb 27, 2017
htmresearch Avg pool Apr 16, 2019
tests RES-885: Update test with KWinners2d Mar 20, 2019
.gitignore Added lots of parameters and real experiments Apr 10, 2019
.travis.yml Adding gcc c++11 compatibility Dec 19, 2014
.zenodo.json RES-598: Fix affiliations Nov 1, 2017
LICENSE.txt Updated to AGPL Aug 10, 2015 Upgrade pytorch to 1.0.0 Jan 14, 2019 Update release instructions Sep 25, 2018
VERSION Development version 0.0.4.dev0 Sep 25, 2018
appveyor.yml Fix appveyor build Apr 5, 2018
domino.yaml Fix domino configuration Feb 16, 2019 Testing NuPIC install from wheels Dec 19, 2014
nupic_sha.txt Automated update of nupic master sha to ae3e1e3621246f6ac1d6aaf4400dc… Apr 14, 2017
requirements.txt Upgrade tqdm to 4.31.1 Apr 11, 2019 RES-502 Revert changes made to test scripts Jul 27, 2017
setup.cfg DEVOPS-375 Add setup.cfg Jul 28, 2017 DEVOPS-363: Add version and fix dependencies Oct 13, 2017


This repository contains the code for experimental algorithm work done internally at Numenta. A description of that research is available here.

Open Research

We have released all our commercial HTM algorithm code to the open source community within NuPIC. The NuPIC open source community continues to maintain and improve that regularly (see for discussions on that codebase. Internally we continue to evolve our theory towards a full blown cortical framework.

We get a lot of questions about it and we wondered whether it is possible to be even more open about that work. Could we release our day to day research code in a public repository? Would people get confused? Would it slow us down?

We decided to go ahead and create htmresearch. It contains experimental algorithm code done internally at Numenta. The code includes prototypes and experiments with different algorithm implementations. It sits on top of NuPIC and requires you have NuPIC installed.

Our research ideas are constantly in flux as we tweak and experiment. This is all temporary, ever-changing experimental code, which poses some challenges. Hence the following DISCLAIMERS:

What you should understand about this repository

  • the code can change quickly and without warning as experiments are discarded and recreated
  • code will not be production-quality, buggy, or well documented
  • if we do work with external partners, that work will probably NOT be here
  • we might decide at some point to not do our research in the open anymore and instead delete the whole repository

We want to be as transparent as possible, but we also want to move fast with these experiments so the finalized algorithms can be included into NuPIC as soon as they are ready. We really hope this repository is helpful and does not instead create a lot of confusion about what's coming next.


OK, enough caveats. Here are some installation instructions though mostly you are on your own. (Wait, was that another caveat?)

Released Version

pip install nupic htmresearch



  • nupic and nupic.core
    • pip install nupic --user should be sufficient
  • htmresearch-core
  • Various individual projects may have other requirements. We don't formally spell these out but two common ones are pandas and plotly.

Install using like any python project. Since the contents here change often, we highly recommend installing as follows:

python develop --user

After this you can test by importing from htmresearch:

from htmresearch.algorithms.apical_tiebreak_temporal_memory import ApicalTiebreakPairMemory

If this works installation probably worked fine. BTW, the above class is a modified version of TemporalMemory that we are currently researching. It includes support for feedback connections (through apical dendrites) and external distal basal connections.

You can perform a more thorough test by running the test script from the repository root:

%> ./ 
Troubleshooting pytorch Installation on Mac OSX

If you encounter this error after installing pytorch on Mac OSX:

ImportError: dlopen(~/Library/Python/2.7/lib/python/site-packages/torch/, 9): Library not loaded: @rpath/libc++.1.dylib
    Referenced from: ~/Library/Python/2.7/lib/python/site-packages/torch/
    Reason: image not found

Use the following command to fix your pytorch installation:

 install_name_tool -change  @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib  ~/Library/Python/2.7/lib/python/site-packages/torch/


Some of our old research code and experiments are archived in the following repository:

You can’t perform that action at this time.