I agree that we should not need the user to have an internet connection to display structures.
The NGL repo seems to be here, and we can add it to the list of submodules anvi'o repo includes (we can't copy-paste the JS file):
But if we want this to work, we need to do the same thing for every other JS library that is read directly from a CDN. There are more in the header as far as I can see. At least one of them, d3, can already be replaced with the path in our lib directory (you can see it in the default interactive interface headers). But I'm not sure about FileSaver, jszip, bootstrap-slider. If they have GitHub repositories, we can add them as submodules and make sure everything works offline, too. I am pinging Matthew here in case you need help with this, Evan.
And most importantly, even if we ask people to use online resources, we shouldn't give cryptic errors like this one. Matthew recently fixed it for the default interactive, and perhaps he can help us have the same solution here as well. That I think is the first thing to do to make sure this doesn't happen again in the future.
Thanks for figuring this out!
Best wishes,