New to HTM?

Welcome to the NuPIC Wiki, HTM Challenge participants! If you are new to HTM, this is the right place to learn more. One way to get started is to read through this Wiki, starting from the Home page. While this wiki is primarily about one HTM implementation (NuPIC), there is a lot of info on HTM theory that is useful no matter what implementation you choose.

What is Hierarchical Temporal Memory?

If you are totally new to HTM, our Learning Center is a great place to start. Have a look at the resources there before moving ahead. Then you can head over to our Hierarchical-Temporal-Memory-Theory page to watch some more videos and read about details of ongoing research.

HTM Implementations

You may use any HTM implementation to build your HTM Challenge application. The following are the most prominent and widely-used implementations.


Python / C++

If you have chosen the Numenta Platform for Intelligent Computing to build your HTM Challenge application, you might want to start at the beginning. Give our main wiki page a good read. After installing and looking through some tutorials, you should end up on the Creating Applications wiki page.

NuPIC Example Applications

For NuPIC, we have a list of applications, including:

NuPIC also has some community-created and maintained applications:



Official community-supported Java implementation of Hierarchal Temporal Memory (HTM), ported from the Numenta Platform for Intelligent Computing python project.

The Java version of NuPIC provides a very straight forward implementation that contains all of the core features of NuPIC necessary to build an application. There are demos that illustrate how to work with the API as well, if you would like to use and the API to build an NLP application.

Easy Start

To start out, take a look at the Network API (NAPI) Quick Start Guide, which shows a few quick steps for getting a network of your choosing up and running. For more in depth guidance, see the tests in the network package for variations on usage.

  • To download the source for the latest release...
  • ...and support is readily available in our chat room: Gitter
HTM.Java Example Applications


Clojure / ClojureScript

Functionally composable cortex, an implementation of Hierarchical Temporal Memory as a Clojure library.

Comportex is not a port of NuPIC, it is a separate implementation based initially on the Numenta CLA white paper, and differs in many subtle ways from NuPIC. It was built primarily for understanding and developing HTM theory; as such a lot of effort was put into visualization, in the ComportexViz project.

In the spirit of Clojure, Comportex is more a library than a framework. The user controls simulations, and decides what to do with them. If you want to take the set of active cells and use them to generate predictions or anomaly scores, that is up to you. It's not going to do it for you.

If you take this path you should probably be comfortable with Clojure. We are happy to help, but won't be able to get you up to speed on Clojure itself.

-- Felix @floybix and Marcus @mrcslws

Comportex / ComportexViz Example Applications
Challenge Communication

During the submission period, Numenta personnel will be available to help on the following communication channels.

Please use the DevPost discussion forums for all communication about contest details, rules, judging, etc. We will be posting important information and updates there for participants, so please keep an eye on these forums.

  • Gitter (live chat, must have GitHub account)

For immediate technical assistance, this is the chatroom to join. If we cannot help you immediately here, please send your technical questions to the nupic-discuss mailing list (defined below).

Our mailing lists are our primary communication channels, particularly the nupic-discusslist, which is where you should ask technical questions about getting your HTM application up and running.

Application Ideas

See Creating Applications wiki section on "Ideas".

Where's the Data?

The best resources about possible HTM data sources exist here on the Creating Applications wiki.