Here is a program that's technically simple, but displays a particular style.
http://www.glowscript.org/#/user/jethomas5/folder/diffraction/program/Fraunhofer_diffraction.
It's just a web page. It has one 3D image that doesn't do anything, but could. The other images are all visible at once, along with all the text.
Why should I hide anything? If a user wants to skip down and look at something else, that's fine.
Here's what I noticed writing this and other stuff in Glowscript using Coffeescript.
First, when I didn't already know Javascript I could hardly imagine learning Javascript instead of Coffeescript. Javascript is obviously much worse. But Coffeescript does not have a tremendous amount of documentation. And the error reporting is primitive. Very often I would leave off a ) or a , or a " or occasionally a } or have an extra one. And typically the result was an error message that went "Missing ) on line 259". That is, the last line.
Sometimes it would report something completely uninformative.
I found myself running the program after every change, because if I changed only one line then if it broke I knew it had something to do with that line.
The Glowscript editor is -- primitive. For example, it has no repeat replace function. That's OK, I can copy a string into the clipboard and cntl-V it in place after I do cntl-K for repeat find. For every simple thing I wanted to do there was a workaround, I just had to find it. I think this editor might let me add my own keybindings and customize it for coffeescript, but I haven't learned how yet. I would have preferred some simple editor I was used to, but I had to run the program after every change....
I block-commented out everything I could that I wasn't working on at the moment, because it kept me from having to click on stuff or scroll past it to get to what I wanted to test. Of course, it was easy to make a simple mistake like wind up with an odd number of block-comment symbols, which would generate another uninformative error message.
It works very well. There's room for improvement in the user interface.
I would like to have a standard text output available, so I can test equations and such without having to write a utility to output them.
Better error messages would probably help new users in their first couple of hours. That's important since they might quit in the first couple of hours.
The editor is probably customized for Javascript, and a version customized for coffeescript would be good.
If there's a way to get the LaTex thing to operate on text strings first, then it wouldn't need all the \ to be doubled. That would be quite a convenience.
I'm very pleased with it. It isn't as easy to use as VPython, but it makes things that are like web pages that run in browsers, which VPython does not.