Skip to content
This repository

Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.

branch: master
Octocat-spinner-32 bin Adds dict option handling. April 22, 2014
Octocat-spinner-32 conf Removing obsolete .gitignore lines January 27, 2014
Octocat-spinner-32 docker Remove line to rm /setuptools*, which appears to be a source of probl… April 22, 2014
Octocat-spinner-32 docs Applied a different Doxygen style. December 10, 2013
Octocat-spinner-32 examples Pylint changes. April 24, 2014
Octocat-spinner-32 external Update Pylint and add explicit message template. March 13, 2014
Octocat-spinner-32 githooks Updated license verbiage in source code per #543. January 10, 2014
Octocat-spinner-32 lang Deletion of old build system February 27, 2014
Octocat-spinner-32 py Only deleting verbosityCount item if it exists. April 22, 2014
Octocat-spinner-32 qa `testeverything` project was moved to `nupic.core` (this is an orphan… April 10, 2014
Octocat-spinner-32 tests fixes (reordered parameter) in VectorEncoderOPF April 22, 2014
Octocat-spinner-32 .gitignore Merge pull request #850 from breznak/fix_netbeans April 24, 2014
Octocat-spinner-32 .nupic_modules Fix typo in comment re: overrides April 22, 2014
Octocat-spinner-32 .travis.yml Replaced $NTA_ROOTDIR by $NTA April 09, 2014
Octocat-spinner-32 CMakeLists.txt Solved conflicts April 21, 2014
Octocat-spinner-32 Updated link in March 27, 2014
Octocat-spinner-32 Dockerfile Docker files must be named "Dockerfile", thus, put them in their own … April 21, 2014
Octocat-spinner-32 Doxyfile Cleanup and documentation. April 02, 2014
Octocat-spinner-32 LICENSE.txt Removed GPL instructions from license. April 11, 2014
Octocat-spinner-32 Replaced $NTA_ROOTDIR by $NTA April 09, 2014
Octocat-spinner-32 Fixup to do a cleaner pushd/popd directory change, updat… April 08, 2014

Numenta Logo NuPIC

Numenta Platform for Intelligent Computing Build Status

NuPIC is a library that provides the building blocks for online prediction systems. The library contains the Cortical Learning Algorithm (CLA), but also the Online Prediction Framework (OPF) that allows clients to build prediction systems out of encoders, models, and metrics.

For more information, see or the NuPIC wiki.

Issue tracker at

OPF Basics

For more detailed documentation, see the OPF wiki page.

Encoders turn raw values into sparse distributed representations (SDRs). A good encoder will capture the semantics of the data type in the SDR using overlapping bits for semantically similar values.

Models take sequences of SDRs and make predictions. The CLA is implemented as an OPF model.

Metrics take input values and predictions and output scalar representations of the quality of the predictions. Different metrics are suitable for different problems.

Clients take input data and feed it through encoders, models, and metrics and store or report the resulting predictions or metric results.


For all installation options, see the Installing and Building NuPIC wiki page.

Currently supported platforms:

  • Linux (32/64bit)
  • Mac OSX
  • Raspberry Pi (ARMv6)
  • Chromebook (Ubuntu ARM, Crouton) (ARMv7)
  • VM images


  • Python (2.6-2.7) (with development headers)
  • GCC (4.6-4.8), or Clang
  • Make or any IDE supported by CMake (Visual Studio, Eclipse, XCode, KDevelop, etc)

The dependencies are included in platform-specific repositories for convenience:

Complete set of python requirements are documented in requirements.txt, compatible with pip:

pip install -r external/common/requirements.txt

Note: If using pip 1.5 or later:

pip install --allow-all-external --allow-unverified PIL --allow-unverified psutil -r external/common/requirements.txt

Note: If you get a "permission denied" error when using pip, you may add the --user flag to install to a location in your home directory, which should resolve any permissions issues. Doing this, you may need to add this location to your PATH and PYTHONPATH. Alternatively, you can run pip with 'sudo'.

Build and test NuPIC:

Set the following environment variables in your ~/.bashrc file. $NUPIC is the path to your NuPIC repository and $NTA is the installation path for NuPIC. You may set a different path for $NTA or specify the location with CMake with the command line option -DPROJECT_BUILD_RELEASE_DIR:STRING=/my/custom/path.

export NUPIC=<path to NuPIC repository>
export NTA=$NUPIC/build/release
export PYTHONPATH=$PYTHONPATH:$NTA/lib/python<version>/site-packages

Using command line

Configure and generate build files:

mkdir -p $NUPIC/build/scripts
cd $NUPIC/build/scripts
cmake $NUPIC


cd $NUPIC/build/scripts
(optional) make clean / distclean   # to compile all the files again
make -j3

Note: -j3 option specify '3' as the maximum number of parallel jobs/threads that Make will use during the build in order to gain speed. However, you can increase this number depending your CPU.

Run the tests:

cd $NUPIC/build/scripts
make <test> (where <test> can be C++ tests: 'tests_everything', 'tests_cpphtm' and 'tests_pyhtm' or Python tests: 'tests_run' and 'tests_run_all')

Using graphical interface

Generate the IDE solution:

  • Open CMake executable.
  • Specify the source folder ($NUPIC).
  • Specify the build system folder ($NUPIC/build/scripts), i.e. where IDE solution will be created.
  • Click Generate.
  • Choose the IDE that interest you (remember that IDE choice is limited to your OS, i.e. Visual Studio is available only on CMake for Windows).


  • Open nupic.*proj solution file generated on $NUPIC/build/scripts.
  • Run ALL_BUILD project from your IDE.

Run the tests:

  • Run any tests_* project from your IDE (check output panel to see the results).


You can run the examples using the OpfRunExperiment OPF client:

python $NUPIC/examples/opf/bin/ $NUPIC/examples/opf/experiments/multistep/hotgym/

There are also some sample OPF clients. You can modify these to run your own data sets. One example is the hotgym prediction client:

python $NUPIC/examples/opf/clients/hotgym/

Also check out other uses of the CLA on the Getting Started wiki page.

Something went wrong with that request. Please try again.