All Projects → htm-community → HTMpandaVis

htm-community / HTMpandaVis

Licence: AGPL-3.0 License
3D Visualization tool for HTM systems

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to HTMpandaVis

bbhtm
bare bone Hierarchial Temporal Memory
Stars: ✭ 14 (-12.5%)
Mutual labels:  htm
pman
A Python package to help bootstrap and manage Panda3D applications
Stars: ✭ 15 (-6.25%)
Mutual labels:  panda3d
htm-school-viz
Visualizations supporting HTM School
Stars: ✭ 57 (+256.25%)
Mutual labels:  htm
hacktoberfest20
Participate in Hacktoberfest by contributing to any Open Source project on GitHub! Here is a starter project for first-time contributors. #hacktoberfest20. Don’t forget to read the README.md for guidance.
Stars: ✭ 18 (+12.5%)
Mutual labels:  htm
weather-sucks
Weather App with Estonian Mood
Stars: ✭ 23 (+43.75%)
Mutual labels:  htm
to-htm
Conversion tool from JSX or Handlebars to htm (tagged template literal)
Stars: ✭ 35 (+118.75%)
Mutual labels:  htm
The-PyOS-Project
The PyOS project is an orbital mechanics simulator, entirely coded in Python, which uses the panda3D engine. The acronym PyOS stands for "Python orbit simulator". Feedback is appreciated !
Stars: ✭ 52 (+225%)
Mutual labels:  panda3d
nupic.tensorflow
Numenta Platform for Intelligent Computing Tensorflow libraries
Stars: ✭ 19 (+18.75%)
Mutual labels:  htm
panda3d-gltf
glTF utilities for Panda3D
Stars: ✭ 63 (+293.75%)
Mutual labels:  panda3d
Pirates-Online-Rewritten
Official repository for the Pirates Online Rewritten source code.
Stars: ✭ 77 (+381.25%)
Mutual labels:  panda3d
AnomalyDetection
基于智能计算框架nupic的异常检测restful Api.
Stars: ✭ 31 (+93.75%)
Mutual labels:  htm
OpenLevelEditor
An open sourced modernized version of Disney's in-house Toontown Online level editor used to create .dna files.
Stars: ✭ 45 (+181.25%)
Mutual labels:  panda3d
panda3d-docs
Sphinx documentation for Panda3D
Stars: ✭ 37 (+131.25%)
Mutual labels:  panda3d
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+73012.5%)
Mutual labels:  panda3d
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+18868.75%)
Mutual labels:  panda3d

HTMpandaVis

UPDATE 9/2020 - major change - using solely NetworkAPI of HTM.core - fully AUTOMATIC baking process ! UPDATE 6/2020 - major change - SQLITE3 instead of TCP sockets + Dash plots visualization in web browser !

See video tutorial or presentation video!

Screenshots for visualization of the 2D recognition project img1 img2 img2 dash visualization

This project aspires to create tool that helps visualize HTM systems in 3D by using opensource framework for 3D rendering https://www.panda3d.org/

It allows to see architecture of the system in 3D space, e.g. connection of several layers and inputs and to see input representation, activity of columns and even individual cells in each simulation step. User can observe vast scalable space by moving as "ghost" and interact with objects. It is supposed as tool for educational purpose or as an inspect tool.

I was inspired by following:

The visualization is application written purely in Python3.

How it works

  • Data for visualization are generated by so called "baking". This process generates sqlite3 database file, optionally folder with binary dump files.
  • User can open these data in HTMpandaVis and explore them

You can also browse SQLite3 dabase file (.db) directly with ordinary browser such as Sqlite Browser.

Baking

To bake your simulation, you must use htm.core networkAPI. Only difference is, that you need to import instead of from htm.bindings.engine_internal import Network this from pandaBaker.pandaNetwork import Network

That is all. PandaVis will generate automatically all data.

If you don't want to change imports and keep using panda, you can modify flag Network.bakePandaData = True/False

See baking readme.

Dash plots visualization

HTMpandaVis can be used also to record custom dataStreams with pandaBaker and then visualize it in web browser. Dash plotly library is used. These plots are interactive!. For creating layout arrangement, axis and plot labels, there are JSON layout configuration files. They are located in HTMpandaVis\dashVis\layouts. See hotgym example for more informations.

Usage with databaseRegion from htm.core networkAPI

Within htm.core, there is databaseRegion in networkAPI that allows to output scalar values into sqliteDatabase. Data can be then plot in the same way as above. See htm.core examples/napi_hello_database.

How to install on Linux

Python >3.6 is recommended. Also using one of the python environment managers is recommended, like Anaconda

Install htm.core (here building from source, see repo readme if you need other installation instructions)

sudo apt-get install cmake
git clone https://github.com/htm-community/htm.core.git
python setup.py install --user --force

Install prerequisities & clone pandaVis

sudo apt-get install python3-tk

git clone https://github.com/htm-community/HTMpandaVis.git

python -m pip install -r requirements.txt

 #this installs pandaBaker package for baking process
python setup.py install

Run example

There is NetworkAPI hotgym example in the htm.core repository.

All you have to do to bake it, is changing one line!

  1. For baking change : from htm.bindings.engine_internal import Network to from pandaBaker.pandaNetwork import Network

when you run the script, database and dump files will be created inside script folder in /bakedDatabase

  1. Run client - pandaVis tool
cd HTMpandaVis
python run.py

And choose run 3D explorer or "run both" if you want to run dash visualization also.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].