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.1b11.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

vpython-7.6.1b11-cp38-cp38-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.8Windows x86-64

vpython-7.6.1b11-cp38-cp38-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8

vpython-7.6.1b11-cp38-cp38-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

vpython-7.6.1b11-cp37-cp37m-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.1b11-cp37-cp37m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7m

vpython-7.6.1b11-cp37-cp37m-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

vpython-7.6.1b11-cp36-cp36m-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.6mWindows x86-64

vpython-7.6.1b11-cp36-cp36m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6m

vpython-7.6.1b11-cp36-cp36m-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

File details

Details for the file vpython-7.6.1b11.tar.gz.

File metadata

  • Download URL: vpython-7.6.1b11.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11.tar.gz
Algorithm Hash digest
SHA256 9d17eae84adb9a8c8ecdd2c085e4fea2d5e5a63d90aadcc4df1ee6f1c333ab57
MD5 390334f353d5cfb1781413fb4fb76027
BLAKE2b-256 2f781e2ad21104ee1b1f060fa1fd376bbe2462e93ca299740ff88a01c2e9ec6f

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-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.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9ac0f247e34654b3c3570ed5ae5ec5d8807d5896efb791514014c21d78d00c59
MD5 4350f094afda1056149030f41e1c1c81
BLAKE2b-256 e1d7780217e599b2fa8a5acee4fe5d6665e3b0c767a1998a68dd0962a76fd155

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-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.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b812fde154836e0ff0e513c43d3fc1d22cfb7a70096e2674223526463b3b524a
MD5 a62924a16a6c171c6345ad83db091346
BLAKE2b-256 222122d3c464b07db27ee2ff50a7e95102e9a344f91214ecdd2d9c2888ba8169

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 86007db6f242075a33a1423f17df1c6f739e01b85ccf488b2f23aa3cea6fb43a
MD5 4588cc18845e695434206be48f3026bf
BLAKE2b-256 c61dd447d728573c9af86362e910388e2e50caf33ecc7c2a2d97d94f78bf88f9

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for vpython-7.6.1b11-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a566849c09d8dad68a47fe67ab6ef6714c3f9a1cb46ec09c051f77217f21fba8
MD5 d4754528ef3b7331a46cf87bbdbec573
BLAKE2b-256 ee64f58be8b6dc9c6e8ce18fc04fa9caac0dbb186ebb67b2989b4b399f878219

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-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.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 406e5b65d18938905b88d919c626cb315c49f999bf0867ed1e76aefa9bfab21a
MD5 45f0d3032b38fa52748c8a18ec30df7d
BLAKE2b-256 f3d8b8f8b17e331115b0e5071a5de31eecb9a7fc455beecc1dda7d3793cdf947

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for vpython-7.6.1b11-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d03e816e4a3ac76b94b0d7d6de8a75b4855d3c8c14776f4bde510115937884fb
MD5 7942723bbc5166ffb949a6dabbeb6f4a
BLAKE2b-256 0c31ff31f7369c4289184a3ef50ce47b50c7d7563271413a6be3b45ebc547832

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for vpython-7.6.1b11-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 cdaab1b56a546ace23def57fe0fe1c38a0f4520278890c57d5aedb421dcb9f3c
MD5 f94014877fca4aec8ea2dbf89a284914
BLAKE2b-256 96b698f9560de844dd8448e2888c84b47b7f35177aeb56d0bd501666743f5b6e

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-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.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1b11-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 72a53059ad6be8798c6f783f4b856e3112c51d526622c102ac7dfe48de90947f
MD5 a83934a25562dd29a681efdb05403cb3
BLAKE2b-256 dda528fac79696fd9abc71ce51138d1b6ca65ff0ebdb2790b81116dfd53d032e

See more details on using hashes here.

File details

Details for the file vpython-7.6.1b11-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1b11-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10

File hashes

Hashes for vpython-7.6.1b11-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9ed9665cf9bf996a05bca74c842ff04d80843a86775f8bc9cfc016b370697d2d
MD5 63f8f038b43bc4c5ca03b599a11897ba
BLAKE2b-256 2c97cfdbab090f51626d32029fdc0b51b86af1327dd268f48cbb6407b7c77329

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