nViz - visualize HTM

Happy new year everyone! Before I get the new year’s eve drinks on the go, I want to share a project I began this week.

In effort to develop beyond my earlier visualizations I wanted to write a visualization library for the HTM community. The library (nViz) is written in Javascript and is hosted in this Github repository.

nViz provides numerous render functions that can visualize: SDRs, spatial & temporal pooling, temporal memory, and much more (eventually). The aim is to make nViz as broad and as flexible as possible for all kinds of standard and experimental visualizations. Also broad in the sense that it can work with any HTM implementation.

I will be working with/on nViz a lot, so I’ll be updating it constantly, without making major API changes. That being said, I very much welcome any feedback or pull requests.

I’ve began some documentation and have provided a few examples. Of course, more will come along with more features and render functions.

See the Pen nViz - temporal memory by Sebastian Wallace (@sebjwallace) on CodePen.


Hi Sebastian,

That looks like a great initiative, sorely needed IMO. This sort of stuff is not my forte, but I hope you will get some contributors to help you out.



1 Like

Big thanks @sebjwallace! I will certainly provide feedback.


I’ve been working on a visualizer as well. It’s in python though, so it won’t work on websites, and I’m gearing it towards large or fast visualizations. I certainly wouldn’t mind sharing feedback and ideas.

Here’s a video of it:

On the left is cell-viz, updating 8000 cells with random colors, set to update every 2 milliseconds. It updates faster than the 2 seconds it was set to, but not 2 milliseconds. On the right, my python visualizer is visualizing 10000 ‘cells’ in real time, 20 ‘cells’ changing per frame, but the entire array is still being copied every frame. On top of that, there are also I don’t know how many lines in my visualization, which is the main thing slowing it down. (I’m using a test implementation where a line has a 50% chance of being added every frame, and I left it running for several minutes, so there are a lot of lines.)

You might have to trust me on the ‘real time’ thing, because having a screen recorder, 100 tabs open, cell-viz, and my program running made it hard to record everything in real time.

Hopefully I’ll have it ready for use in a few days or weeks. Then we can compare notes!

Wow, I love all the recent focus on visualizations! @simleek I’d definitely like to see your python project open sourced. I’ll be putting together some test visualizations on TM soon, and I’m keeping my options open.