You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GlowScript makes it easy to write programs in JavaScript or [VPython](http://vpython.org) (which uses the RapydScript compiler) that generate navigable real-time 3D animations, using the WebGL 3D graphics library available in modern browsers (with modern GPU-based graphics cards). For example, the following complete program creates a 3D canvas in the browser, displays a white 3D cube, creates default lighting, places the camera so that the cube fills the scene, and enables mouse controls to rotate and zoom the camera:
4
4
5
5
```javascript
6
-
box()
6
+
box()
7
7
```
8
8
9
9
That's it. That's the whole program (except for the GlowScript version header line that is supplied automatically). The key point is that lots of well-designed defaults are built into the GlowScript library. You can of course specify the canvas size, the color and other attributes of the objects, the direction of the camera view, etc.
10
10
11
11
For a history of the development of VPython, see [A time line for VPython development](https://brucesherwood.net/?p=136). Here is a technical overview of GlowScript VPython and VPython 7: [VPython Architecture](https://vpython.org/contents/VPythonArchitecture.pdf).
12
12
13
-
Documentation
14
-
-------------
13
+
## Documentation
14
+
15
15
At [glowscript.org](http://glowscript.org) click Help for full documentation. There is an extensive set of example programs available from the first page of glowscript.org. Programs can be created and stored at glowscript.org, but it is also possible to export a program to place on your own web page, or to use the GlowScript library without storing the program at glowscript.org. For programs stored at glowscript.org, you can share a link with someone and they can run your program simply by clicking on the link. Here is an example:
GlowScript was inspired by [VPython](http://vpython.org). The project was begun in 2011 by David Scherer and Bruce Sherwood. Originally programs had to be written in JavaScript, but in November 2014 it became possible to use Python, thanks to the [RapydScript](https://github.com/atsepkov/RapydScript) Python-to-JavaScript compiler created by Alex Tsepkov. GlowScript is now using a later version, [RapydScript-ng](https://github.com/kovidgoyal/rapydscript-ng) developed by Kovid Goyal.
20
20
21
21
For information related to building the GlowScript application, see MakingNewVersion.txt in the [docs](docs) folder. Also in the [docs](docs) folder is an overview of the GlowScript architecture, [GlowScriptOverview.md](docs/GlowScriptOverview.md).
22
22
23
-
Sister Project
24
-
--------------
23
+
## Sister Project
24
+
25
25
VPython 7 lets you run VPython programs in a Jupyter notebook or from program launchers such as IDLE or Spyder: see [vpython.org](https://vpython.org). Its development was initiated by John Coady and further developed by him, Ruth Chabay, Matt Craig, and Bruce Sherwood. The syntax is the same as GlowScript VPython, and it uses the GlowScript 3D graphics library, but VPython 7 runs with an installed standard Python, which provides access to the large number of Python modules. GlowScript VPython does not require installing any software but provides access only to libraries written in JavaScript, not to standard Python modules (it does however provide portions of Python's "random" module).
26
-
27
-
Run Locally
28
-
------------------
26
+
27
+
## Run Locally
28
+
29
29
At glowscript.org, your programs are stored in the cloud and are accessible from anywhere. However, there are times when you might need to write and run programs even when disconnected from the internet.
30
30
31
31
In this repository, click GlowScriptOffline3.2.zip and download the zip file.
32
32
33
33
Unzip the GlowScriptOffline package to any convenient place on your computer.
34
34
35
-
Inside the [GlowScriptOffline](GlowScriptOffline) folder, read the README file to learn how to use the package.
36
-
37
-
Run a Local Server
38
-
------------------
35
+
Inside the [GlowScriptOffline](GlowScriptOffline) folder, read the README file to learn how to use the package.
36
+
37
+
## Run a Local Server
38
+
39
39
There are two sets of instructions given here for two possible
40
-
approaches.
40
+
approaches.
41
41
42
42
1. The first, "All Docker", is quite simple, and involves only
43
-
minimal new software (just [Docker](https://www.docker.com/products/docker-desktop)).
44
-
If you're using macOS or Linux you can run the
45
-
local webserver and datastore all in Docker. You don't need to install
46
-
anything else. However there is a rather annoying
47
-
bug in Windows that prevents the webserver from automatically restarting when
48
-
source files change. If you just want to try a local webserver, and you don't
49
-
care about having to restart the server manually every time you change the
50
-
source code, you can skip running the extra python process.
51
-
52
-
2. The second, "Only Datastore in Docker", requires that users install
@@ -64,8 +64,8 @@ Next check out or download the glowscript repository. Then, in a terminal window
64
64
65
65
docker-compose up
66
66
67
-
this will take a substantial amount of time the first time, since it has to download all
68
-
the docker images. Once it's running, browse to: [http://localhost:8080](http://localhost:8080)
67
+
this will take a substantial amount of time the first time, since it has to download all
68
+
the docker images. Once it's running, browse to: [http://localhost:8080](http://localhost:8080)
69
69
to view the website. That's it! This will run in a window and show you how the
70
70
webserver is handling requests. If you'd rather run this in the background
71
71
you can use:
@@ -78,11 +78,11 @@ When you're finished, shut down the system with:
78
78
79
79
### Local Server Approach (2) Only Datastore In Docker
80
80
81
-
To run a local webserver with only the datastore in Docker, but the
82
-
webserver itself running natively you need Python-3.8.3. The easiest method
81
+
To run a local webserver with only the datastore in Docker, but the
82
+
webserver itself running natively you need Python-3.8.3. The easiest method
83
83
is probably to install [anaconda](https://docs.anaconda.com/anaconda/install/) (or [miniconda](https://docs.conda.io/en/latest/miniconda.html), if you don't want the GUI package manager and extra applications). With Anaconda or miniconda you can use the `conda` command to do this, for example:
84
84
85
-
conda install -n py383 python=3.8.3
85
+
conda create -n py383 python=3.8.3
86
86
conda activate py383
87
87
88
88
Your terminal prompt should now have a `(py383)` indicating that you have
@@ -91,34 +91,34 @@ Next change directory to the glowscript repository:
91
91
92
92
cd /path/to/glowscript
93
93
94
-
Before you can run glowscript the
94
+
Before you can run glowscript the
95
95
first time, you'll need to install dependencies into the virtual environment.
96
96
This can be done with pip:
97
97
98
98
pip install -r requirements.txt
99
99
100
100
If you encounter any problems, follow the suggestions provided by the error messages.
101
101
102
-
In order to run the local datastore emulator it's easiest to use
a version of Docker that works with your OS. To test that you've
105
105
got docker installed OK, in the glowscript directory type:
106
106
107
107
docker-compose -f docker-datastore.yml up
108
108
109
-
this will take a substantial amount of time the first time, since it has to download all
109
+
this will take a substantial amount of time the first time, since it has to download all
110
110
the docker images. You'll see a lot of log messages, but among them you should see:
111
111
112
112
datastore_1 | [datastore] Dev App Server is now running.
113
113
114
114
In this case you're good! If not, check the error messages and
115
-
see if there are any useful clues. Good luck.
115
+
see if there are any useful clues. Good luck.
116
116
117
117
If the datastore is running, hit ctrl-c, and then type:
118
118
119
119
docker-compose -f docker-datastore.yml up -d
120
120
121
-
This will run the datastore in the background.
121
+
This will run the datastore in the background.
122
122
123
123
With the datastore running, you can run the webserver by typing:
124
124
@@ -140,17 +140,16 @@ Then next time you're ready to develop, you can simply activate the environment
140
140
141
141
And you'll be up and running!
142
142
143
-
For Developers
144
-
--------------
143
+
## For Developers
144
+
145
145
In this repository's [docs](docs/) folder is a file [GlowScriptOverview.md](docs/GlowScriptOverview.md) that describes the architecture of GlowScript in detail. For many of the current issues, the relevant part of the document is the section on Execution (run-time). To test changes it is necessary to run a local server, as is describe in the previous heading. When you want to run using recent changes, you need to choose a version 0.1 greater than the current version number, and append "dev". For example, if the current version is 2.9, the first line of a test program would be GlowScript 3.0dev VPython.
146
146
147
-
License
148
-
-------
147
+
## License
148
+
149
149
The license is found at [LICENSE.txt](https://github.com/BruceSherwood/glowscript/blob/master/LICENSE.txt).
In December 2014 the original GlowScript repository was corrupted in such a way that it could not be reconstituted, but a backup that contains the history of commits is here:
In December 2014 the original GlowScript repository was corrupted in such a way that it could not be reconstituted, but a backup that contains the history of commits is here:
0 commit comments