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)

Testing workfloww

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

Uploaded Source

Built Distributions

vpython-7.6.2-cp39-cp39-macosx_10_9_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8Windows x86-64

vpython-7.6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

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

Uploaded CPython 3.8macOS 10.14+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

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

Uploaded CPython 3.7mmacOS 10.14+ x86-64

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

Uploaded CPython 3.6mWindows x86-64

vpython-7.6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

vpython-7.6.2-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.2.tar.gz.

File metadata

  • Download URL: vpython-7.6.2.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11

File hashes

Hashes for vpython-7.6.2.tar.gz
Algorithm Hash digest
SHA256 cd5d2365eda9fa91ed5dd07e1eef8876b328e264601ba05b16f33a25b9365770
MD5 5bcfb550b9ce7455d0d978e42b7f6ee5
BLAKE2b-256 f6174a41cdffd9414a4d42111e05269a448af7b9f59655317912b09fcb3a9412

See more details on using hashes here.

File details

Details for the file vpython-7.6.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for vpython-7.6.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f7fd84de633e4a38e332fed094139dc9c02d9e8398e90dff894a7888d3149a1c
MD5 35013c0b52a2979846d51d88a60c45d0
BLAKE2b-256 f83a080dbe2daa53658ceffb571a42c80adf36f4997f09c9adcb766e29f8621b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for vpython-7.6.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9572daf5cf7cb8e1ab3602df39da11e7865e5b927b5f7d2c4eecc66a3003c4d8
MD5 cbfdfbad76b47b2776d104a05011c6d6
BLAKE2b-256 9ea90609638abb9e5f8302bfb90b68182bf9231aff4ee725bb044ee2728cf267

See more details on using hashes here.

File details

Details for the file vpython-7.6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 52bde3e14fdf320f4433f4842adf8fad788f564217619b6de7f605a8f9f9ce7f
MD5 c0bfcd2d49c0a1f60aa3ad5b7d3ad485
BLAKE2b-256 c3be1396f63b17925ff188e1046604cef67e3e134ddc7eba4c860eb7d8f3de29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11

File hashes

Hashes for vpython-7.6.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0ba64219967986a2f81de5f485b5547cec8284f2d85efc6f1e05464f2baa69b2
MD5 ecfa566595d917ebf2f64d535db717f9
BLAKE2b-256 484f25de8e706af6baf9f311bc2afed6602c9848b21c5237bbfc7b87a61dbb92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.9

File hashes

Hashes for vpython-7.6.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 83a1a1eeda647d8290b9f6a658babcbd16e5db475ceae9efdfc55ef7d1e64ad6
MD5 aaef585852aeb5c2a881d9160bbec06e
BLAKE2b-256 a652d05f6bb9451f02806d10b4476cf1b14cd4ac4b574609d31867770a93e05f

See more details on using hashes here.

File details

Details for the file vpython-7.6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 209d38e457f7b3e6b27c368786e3c53d9c023b88930885acdddd3e6076886399
MD5 29fb0310fdbba0d7afd94cd6dd8e9531
BLAKE2b-256 e2fedefe0ba1e695fd3b6c76ae27e7b1b18bf5f977474180144225f82b1ef517

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.11

File hashes

Hashes for vpython-7.6.2-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c4ccf59b56338bad5df1af5a0484575ae6e2be855536e8b6cdfece5cd715496b
MD5 60ec6bb11f4fc55eb77f0c65406c9ee0
BLAKE2b-256 35270d958036ddac3eb67cc10dc90d0fa10f5cac0a7873cee277fe4075730346

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.8

File hashes

Hashes for vpython-7.6.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 3b40136b62064458ad752542605152d038cc13a1ffc6e3b7a0cd6c6dde50563b
MD5 2abe5bbb5f585dedbd1effcb88728953
BLAKE2b-256 263e5b5d6d105df2d4ae0448ab33947359bf43d79e3e8a9e447dddeaff598eab

See more details on using hashes here.

File details

Details for the file vpython-7.6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 48aac59df33305f5dc04f7511663d034dd7bbbf228bc5f42c6410f672ec23423
MD5 4cc956081cd9744353227a9df750df2a
BLAKE2b-256 b44ccc85a3e019c57a2b8657190cae7603b30b08fcc5ba242707b9e470067db7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.14

File hashes

Hashes for vpython-7.6.2-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 bb69c5cff124ffd7cd9b1f2e957767c6a55f3f6617e86ddd138c9caf45b3726e
MD5 b50e4146871972045480bef96dd532fa
BLAKE2b-256 ae826b90adf2d90b6df1c5d739eb403ebd42b0e1f891f184587ae7dd5ae0400b

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