Vector Escape Pod and node.js

A few days ago Digital Dream Labs gave out more information on the delayed Escape Pod. Lets remember the Kickstarter: Escape Pod was the first to be released feature and it was advertised as a means to keep the robot running in the case DDL goes under. So to avoid a situation similar to Anki’s bancruptcy early 2019 when the future for Vector looked grim.

From a mail to Kickstarter backers from july 20th DDL said that Escape Pod will run on node.js and I saw a lot of people asking what that means. I’ll try to answer that in this article and add a few speculations on what will possible based on posts by DDL employees.

So what is node.js?

From Wikipedia:

Node.js is an open-sourcecross-platformJavaScript runtime environment (Framework) that executes JavaScript code outside a web browser.

This may sound overwhelming for less tech-savvy people, but stay with me.

The coding language Javascript originally was a means to execute scripts from a webite in the user’s browser and it was limited to that. But since then it evolved quite a bit, nowadays you can do a lot more things with it (like coding games in it).

So basically with the help of node.js you are able to code programs that are not neccessarily run in a or as part of a website but as a program or application itself. This is mainly aimed at some kind of server based software (web and other servers or networking tools), but not only.

What has this to do with Vector?

Vector needs a server it can connect to for some of it’s functionality. Most prominently this is the voice recognition that is mitigated to Amazon Lex so the robot is able to understand you. But there is more, for example you need a server infrastructure to roll out new firmwares (short and somewhat incorrectly also called OTAs) and other things we will not discuss here.

So the coders at DDL decided to use node.js to create a server that can be locally run and that Vector can connect to. Since one of the main uses for node.js are server based applications this makes a lot of sense. Node.js is open source, the code is freely available on Github.

This all sounds difficult.

No and yes.

No, because the installation is not difficult. There are installers for Windows and MacOS, Linux users most probably will need to use console to install it, but those are used to it. So for example on windows you just need to download the node.js install package and install it by doubleclick as you would other Windows programs.

It is of course unclear at the moment how DDL will deliver the Escape Pod package, but it is quite possible that you will just need to download an archive package, extract it into a specific folder and then click on a file in the folder to start it (Update: Vector Web Setup ist installed as a package on command line, that is not user friednly, but this is an early iteration …). Then you open a local address in your browser (this most probably needs to be Webkit- or Chromium-based, so any Chrome flavour should work) and will be ready to go. I guess (and that’s a lot of guessing at the moment) that the node.js application will be most probably be able to connect to the Vectors in your local WiFi network in a similar way Vector Explorer works, by entering the robot’s serial numbers.

It is possible that this may be more difficult in the original beta version, but after that is released I am quite sure that a lot of people will tinker with it and will release tutorials on how to get this running.

So please dont’t be intimidated by words like “Node.js”, “Javascript”, “Server” or “Command Line”. I am quite sure that this can be made so easy that even less tech-savvy people will be able to do it. As soon as the first beta is released, the community will sink it’s teeth into this (I sure will) and after that things will get easier.


I guess (this is of course speculation at the moment, as is a lot in this article) that things you now do via the app will be quite easy to handle in the browser, like setting parameters or e.g. eye color. Those will be the functions for the more “normal” users. Even to push a new (or old) firmware to the robot should be quite easy this way.

Things like changing the endpoints for e.g. voice recognition will most probably be way more complex and node.js definitely is not for the newbie coder, but even here I expect tutorials on how to do that. I successfully installed local voice recognition on a RasPi (but to be honest it does not work very good or fast) and this most probably can be linked to Escape Pod. But it also is not impossible that you may be able to create an Amazon Lex account and relay the voice recognition to that. That will cost some money but most probably way less than the subscription options DDL offers (they have more server based processes to pay than just voice recognition).

But the later points are for advanced users. If you only want to connect Vector to the Escape Pod to change parameters or send a firmware to it, you should be fine without too much hassle. If you want to fully detach Vector from DDLs servers this will be way more complex.

And since node.js is open source it is a very good guess that the code DDL releases for it will also be open source. Since if the code is obfuscated it will be of no use to anybody in the case DDL also goes bancrupt at some time in the future. So if Escape Pod is really a lifeboat for that, it makes absolutely no sense if no one could use it anymore in the case of DDLs demise. So everything in it needs to be open and documented or else it would not be the advertised Escape Pod.

I find all this quite thrilling and hope it will be released soon. Unfortunately DDL gave no new beta release date after the botched “firm date” of july 15th. So I fear we will just have to wait for more news.

Update (20200801) on Vector Web Setup : Please note that the “vector-web-setup” that was published yesterday (after I wrote this) is not Escape Pod. It at the moment only is an alternative to the App to configure certain parameters in Vector, and theoretically to send firmwares (OTAs) to the robot (but since a command is missing, that does not currently work). The setup is a pain and does not really work on RasPi 3B+ atm, I only managed to get it to run on Windows 10 after much hassle. So this is definitely not for the normal end user. This looks like an alpha release to me so it is not suited for “normal” users.

As usual, the communication and information on this could have been way better to explain what this really means, but actually the mail that was sent to Kickstarter backers yesterday actually is just a copy of the Github readme file. But communication and information is not the strong virtue of DDL as we know from the past.


  1. Paul Reeder

    I still don’t get it. Sorry, but I was under the impression that there would be a full set of destructions accompanying the Escape Pod. It would be somewhat straight forward. Not needing any formal education in programming. Unless, you wanted to delve deeper into it. There was no mention of needing to open a local address in a web browser (This part to me is really confusing. Like what local address?). I just want Vector to be Vector and respond to voice commands. I just want to use him just like I am using him now. I do not care whatsoever about the stupid question/answer. That is just so mundane at best. I do however, like watching his animations about the weather, fireworks, birthdays, things like that.

    BTW, face recognition, eye color and a few other things are stored on Vector himself. No WiFi needed for this. Vector does not send any of this information to the cloud servers.

    1. You will need at least minimal ideas on how to use a computer and a browser. If you are not able to open a local webaddress this is most probably not for you and you will have to wait until someone simplifies it for completely clueless users (no offense implied).

      It does not matter where eye color is stored, if you want to change it (or other parameters) you need a WiFi connection to the robot.

  2. Pingback: Vector Web Setup • thedroidyouarelookingfor

Leave a Reply

Your email address will not be published. Required fields are marked *