Official community-supported Java implementation of Hierarchal Temporal Memory (HTM), ported from the Numenta Platform for Intelligent Computing (NuPIC) python project.
For HTM.java Demos and Example apps, see the HTM.java Examples Repository
NOTE: Minimum JavaSE version is 1.8
- Use HTM.java for the new Numenta HTM Challenge! - (Sept. 18th - Nov.6th)
- HTM.java Receives newly updated and re-written TemporalMemory and MonitorMixinFramework - for test reporting and monitoring (08/23/2015)
- HTM.java Splits off Demo repository (08/19/2015)
- HTM.java Receives new Hot Gym Demo (08/15/2015)
- [HTM.java Receives new Gitter Chat Room] (https://gitter.im/numenta/htm.java) (08/12/2015)
- [HTM.java Receives new Cortical.io demo video!] (https://www.youtube.com/watch?v=Y3p02cbdUas) (08/11/2015)
- HTM.java Receives two new Cortical.io demos! (07/26/2015)
- HTM.java Now versioned and up on Maven Central! (06/12/2015)
- HTM.java Recieves New Network API (06/08/2015)
- HTM.java is now OFFICIAL! See the announcement (02/25/2015)
- HTM.java Now Has Anomaly Detection & Anomaly Likelihood Prediction! (02/22/2015)
- HTM.java Recieves New Benchmarking Tools (02/2015)
- HTM.java Reaches Functional Completion (12/2014)
View Change Log (Updated! 2015-08-29)
- Change log itemizes the release history.
- Contains an "Unreleased" section which lists changes coming in the next release as they're being worked on - (should help users keep in touch with the current evolution of htm.java)
For a more detailed discussion of htm.java see:
See the Test Coverage Reports - For more information on where you can contribute! Extend the tests and get your name in bright lights!
For answers to more detailed questions, email the nupic-discuss mailing list, or chat with us on Gitter.
For more detailed discussions regarding HTM.java specifically, come chat with us here:
Call to Arms: HTM.java needs you!
The primary goal of this library development is to provide a Java version of NuPIC that has a 1-to-1 correspondence to all systems, functionality and tests provided by Numenta's open source implementation; while observing the tenets, standards and conventions of Java language best practices and development.
By working closely with Numenta and receiving their enthusiastic support and guidance, it is intended that this library be maintained as a viable Java language alternative to Numenta's C++ and Python offerings. However it must be understood that "official" support is (for the time being) currently limited to community resources such as the maintainers of this library and Numenta Forums / Message Lists and IRC:
NOTE: The Java version of NuPIC requires no installation - just USE it!
Please refer to the Network API Quick Start Guide
The following instructions are for setting up a development environment (which is the only installation required)
NOTE: For simple intructions see: INSTALL.txt
Eclipse Environment Setup Wiki
An Eclipse IDE .project and .classpath file are provided so that the cloned project can be easily set up inside of Eclipse. For the time being, the Eclipse IDE is the only "pre-made" project configuration.
In addition, there are "launch configurations" for all of the tests and any runnable entities off of the "htm.java" main directory. These may be run directly in Eclipse by right-clicking them and choosing "run".
Execute a quick sanity check by running all the tests from within the <path to git repo>/htm.java
gradle check # Executes the tests and runs the benchmarks
--or--
gradle -Pskipbench check # Executes the tests w/o running the benchmarks
Note: Info on installing gradle can be found on the wiki (look at #3.) here
Linux Gradle Issues? see the wiki here.
For tips and insights on how to use the Network API to add HTM's into your own applications, see:
...and for more in-depth answers see: