I recently asked who was building HTM systems and got quite a few people respond. That’s great, because I’m starting a big educational project, called Building HTM Systems. It is an interactive document with visualizations and sample code. It will explain SP and TM in enough detail that readers can implement it themselves, complete with running sample code and live visualizations in the browser (the sample HTM will be in JavaScript). I’m currently working on it at https://buildinghtm.systems.
This is a big project and I just started on it. I’d like to share updates and new content when I make progress, which is why I’m posting now.
I’m trying to explain why choosing receptive fields when setting up spatial pooling is important. You can see a couple of new visuals at https://buildinghtm.systems/spatial-pooling/. Please try them out and give feedback if you have any. This format is new to me and I’m trying to take advantage of it entirely.
It is excellent, especially because it presents the functioning of HTM in a dynamic and interactive way. I am new to the theory and as for the Spatial Pooler I was very clear about its operation as detailed on the website. I look forward to the following parties with enthusiasm
FYI: the URL changed to https://buildinghtm.systems. This, also, is probably temporary. I had to transfer the wordpress site and this made it easier, long story.
The next phase in the SP docs is running computation. Before I can do that, I need to have at least one encoder, so now I’m working on number encoder docs. I have one visualization sort-of done (will be tweaked).
Super cool project, looks great! I’m a fan of D3/Observable with the interactive style, it will make it easy to learn when you can modify the code and see changes.
I got lots of plans, no time to implement them all. I will get back to this document after I’ve produced 2 more HTM School videos and a new conference talk.
For some updates on this project, see our latest Hackers’ Hangout at 14:48:
My plans are to flesh this project out on my Twitch stream, starting Thursday. It is currently a webpack’ed static delivery system, so I’ll be immediately updating it to use ReactJS. We’re going to build a whole HTM implementation in JavaScript (maybe Coffeescript) live. It’s going to be fun. Stay tuned!
Continuing from your Twitter thread, why does it need to have a server side component at all? And do you have an idea of the source(s) of the streaming data?
I guess I don’t really have a good reason. Something I’ll have to think about.
My original plan was to have one server with one HTM running. The server would constantly run data through the HTM. All the web pages would visualize components of the running HTM in different ways. They could use the actual HTM input / output by tapping into the server’s streams.
But now that I think more about it, I really don’t need to have a server. I could have the entire thing running in JavaScript on each browser. The data I was planning on using would be programmatically generated anyway. In that case I could just continue use parcel like I’ve been with @codeallthethingz on the other JS project.
Not having a server side component would make it much easier to get started with. If there’s a need to save state (tutorial progress etc), you can always persist the react/redux state to local storage.
I’m fairly certain we’ll be building a React static app. I have done a bit of prep-work at https://github.com/rhyolight/building-htm-systems/tree/react. If anyone wants to follow along or help out, here is the planning board I am using. If you think you might help, create a Trello account and I’ll start a new team. Please join me on Thursday, I’ll be working on this all day long and live-streaming.
To run, checkout the react branch on my fork above and run:
npm run dev
You’ll need node.js and npm of course, and don’t forget to npm install.