Skip to main content

VPython for Jupyter Notebook

Project description

VPython

This package enables one to run VPython in a browser, using the GlowScript VPython API, documented in the Help at https://www.glowscript.org. If the code is in a cell in a Jupyter notebook, the 3D scene appears in the Jupyter notebook. If the code is launched outside a notebook (e.g. from the command line), a browser window will open displaying the scene.

VPython makes it unusually easy to create navigable real-time 3D animations. The one-line program "sphere()" produces a 3D sphere with appropriate lighting and with the camera positioned so that the scene fills the view. It also activates mouse interactions to zoom and rotate the camera view. This implementation of VPython was begun by John Coady in May 2014. Ruth Chabay, Matt Craig, and Bruce Sherwood are assisting in its further development.

Installation

For more detailed instructions on how to install vpython, see https://vpython.org, where you will also find a link to the VPython forum, which is a good place to report issues and to request assistance.

Briefly:

  • If you use the anaconda python distribution, install like this: conda install -c vpython vpython
  • If you use any other python distribution, install this way: pip install vpython

Sample program

Here is a simple example:

from vpython import *
sphere()

This will create a canvas containing a 3D sphere, with mouse and touch controls available to zoom and rotate the camera:

Right button drag or Ctrl-drag to rotate "camera" to view scene.
To zoom, drag with middle button or Alt/Option depressed, or use scroll wheel.
     On a two-button mouse, middle is left + right.
Shift-drag to pan left/right and up/down.
Touch screen: pinch/extend to zoom, swipe or two-finger rotate.

Currently, to re-run a VPython program in a Jupyter notebook you need to click the circular arrow icon to "restart the kernel" and then click the red-highlighted button, then click in the first cell, then click the run icon. Alternatively, if you insert `scene = canvas()`` at the start of your program, you can rerun the program without restarting the kernel.

Run example VPython programs: Binder

Installation for developers from package source

You should install Cython (conda install cython or pip install cython) so that the fast version of the vector class can be generated and compiled. You may also need to install a compiler (command line tools on Mac, community edition on Visual Studio on Windows).

If you don't have a compilier vpython should still work, but code that generates a lot of vectors may run a little slower.

To install vpython from source run this command from the source directory after you have downloaded it:

pip install -e .

The -e option installs the code with symbolic links so that change you make show up without needing to reinstall.

If you also need the JupyterLab extension, please see the instructions in the labextension folder.

vpython build status (for the vpython developers)

Build Status Build status

Working with the source code

Here is an overview of the software architecture:

https://vpython.org/contents/VPythonArchitecture.pdf

The vpython module uses the GlowScript library (vpython/vpython_libraries/glow.min.js). The GlowScript repository is here:

https://github.com/vpython/glowscript

In the GlowScript repository's docs folder, GlowScriptOverview.txt provides more details on the GlowScript architecture.

Here is information on how to run GlowScript VPython locally, which makes possible testing changes to the GlowScript library:

https://www.glowscript.org/docs/GlowScriptDocs/local.html

If you execute build_original_no_overload.py, and change the statement "if True:" to "if False", you will generate into the ForInstalledPython folder an un-minified glow.min.js which can be copied to site-packages/vpython/vpython_libraries and tested by running your test in (say) idle or spyder. (Running in Jupyter notebook or Jupyterlab requires additional fiddling.)

Note that in site-packages/vpython/vpython_libraries it is glowcomm.html that is used by launchers such as idle or spyder; glowcomm.js is used with Jupyter notebook (and a modified version is used in Jupyterlab).

Placing console.log(....) statements in the GlowScript code or in the JavaScript section of glowcomm.html can be useful in debugging. You may also need to put debugging statements into site-packages/vpython/vpython.py.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vpython-7.6.2b1.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

vpython-7.6.2b1-cp38-cp38-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.8Windows x86-64

vpython-7.6.2b1-cp38-cp38-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8

vpython-7.6.2b1-cp38-cp38-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

vpython-7.6.2b1-cp37-cp37m-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.2b1-cp37-cp37m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7m

vpython-7.6.2b1-cp37-cp37m-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

vpython-7.6.2b1-cp36-cp36m-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.6mWindows x86-64

vpython-7.6.2b1-cp36-cp36m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6m

vpython-7.6.2b1-cp36-cp36m-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6mmacOS 10.14+ x86-64

File details

Details for the file vpython-7.6.2b1.tar.gz.

File metadata

  • Download URL: vpython-7.6.2b1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for vpython-7.6.2b1.tar.gz
Algorithm Hash digest
SHA256 2ae2570182eb58372590c7be679351e67f407e46c401011e0e0bf49e5c39705e
MD5 1ff144ea8bc0e6a44ec9912c120a6fd2
BLAKE2b-256 a33f15b2ad67e8127d07ad37260d203ab7d8ca888ac68f937131ee5246e1c3ff

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.4

File hashes

Hashes for vpython-7.6.2b1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9e938dbf1d4de6b817381fb310919608bca35d7f0dcbadcaf9b995fbfb81b4e9
MD5 a008d91b7e8b56d33f666bf57dc901a5
BLAKE2b-256 2d35441dde4c66b2ff5b7461eca8552fd7347ad1ed642704efe5831a51c7d1c9

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for vpython-7.6.2b1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 71f5b7ba95fd7ff787e27cee352b4d5c7625582bafd36b1504f519755a255302
MD5 4580a36a5ac230df9de0f2be0aa7d956
BLAKE2b-256 ed8449fafd37db160db54bab8c2e99893b5d93235575ca2a16a919fdefdd6c98

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for vpython-7.6.2b1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 061406a98738afe7c44f429e58c25d3737c2b285fdcbdebfe762440e042790ed
MD5 71792ce2462924905ec40dcc50cb86e6
BLAKE2b-256 cec0610698d3c3609499eec95ec491c957b55d328b0caeb2b03ac9a7ece9fd88

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.8

File hashes

Hashes for vpython-7.6.2b1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e5699e0efd6e8936bf90a35bc29b79e3c84b4e8572ff3422631cf4f1eb3a39e2
MD5 b1ac79f7e9745b987dc7ceb2415c3fc4
BLAKE2b-256 30633e7c0078951351407a87531f407e3d662b9b79f68811d190156e7123d257

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for vpython-7.6.2b1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5e93a0d8609c171d9da250441cd9d6b429db187143235607dd90f74a17ef7ad3
MD5 a77a8e9d485aa2af9d818699c1583ba3
BLAKE2b-256 1457538e5a39b0fecdec6a57e4c5a58beab8237a08e22cc89e7a5cf634e7c0ed

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.8

File hashes

Hashes for vpython-7.6.2b1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 02a3e4e648d36b12129bda6634c945ca84940dc82ad1cc6e57929cf30215142c
MD5 56b48f5cbfb2c48544a9c9ea378b3a07
BLAKE2b-256 6b78a993c66bf49fc16be986cfdbf5fab6609d0339b1f864cbd6efd722461af2

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.8

File hashes

Hashes for vpython-7.6.2b1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ce5a08a5c47d7c02634ab9d7f287fb116ffb4022252cb20c099a3ddc5be5104f
MD5 f137c63fdb3e49de240686503c77bc25
BLAKE2b-256 abe8991346966cd0b0c4ca93dad96b58af88695ddb5104c5935f0dcca4ef6b4d

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for vpython-7.6.2b1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 be2876c07378ce501b990e6983593758c16413870e2d9aeb3af10367ec957ded
MD5 9652e4f072af1ad0c566982c3e20bc45
BLAKE2b-256 d353a71d011a68a73a2355fe44a05c7ae5965a2c944ae3f2e2d7eedf5af16ca6

See more details on using hashes here.

File details

Details for the file vpython-7.6.2b1-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2b1-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.11

File hashes

Hashes for vpython-7.6.2b1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 27166f68c18dc53640d56e950bcd31a9e053daf3cb8cc4f82cdd4bef1950d06b
MD5 f4d634ae893e3fc66e8478fe4a913054
BLAKE2b-256 17aad6f32729c67080072cee79cfabba0765231e8a1e493f97d575ef36390823

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page