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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 10.14+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mmacOS 10.14+ x86-64

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

Uploaded CPython 3.6mWindows x86-64

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

File metadata

  • Download URL: vpython-7.6.2rc9.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for vpython-7.6.2rc9.tar.gz
Algorithm Hash digest
SHA256 0ca71002d4294b1827461e432cff7e818cd50aeebf5abd6b2501bb976e6a0925
MD5 e2388a4603521688c3c07a9b14e52356
BLAKE2b-256 e8d144293930933ed74db134bbb9a417fd57c4e3b18b215d2fdc9cb906172f0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for vpython-7.6.2rc9-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 67e735d92a7fedcd150ccc6c5b1c9710569d74b2a04765e3193206af850e4e84
MD5 9ea794d7cd9956aec716df7279567ea9
BLAKE2b-256 16ccbb2a09696d05dab70fc17f14f2eb2fa4db6d119a823aeffbe342c05f9bac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for vpython-7.6.2rc9-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4ead0d310e8e90c132df71b853268197cde34724c256d76f55f6330b10b59fe0
MD5 ef1ae8b67dd18c2ac5f83ec95115af0d
BLAKE2b-256 ea354c2b70b7e36f40cc70e2abcb552932be9358410c14a78c6026ed8ad1249a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.9

File hashes

Hashes for vpython-7.6.2rc9-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 cc517f237a53a1a52decf71d019e435e21c4f659c9fb53265c3823cdb62b9df4
MD5 5aa7f5fc435b7214a05e8b30340b5b3f
BLAKE2b-256 7b4fe7a953abfa4d4b289d951011bfa7079796be706781762703f92b3b010638

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.10

File hashes

Hashes for vpython-7.6.2rc9-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 11f29e2adf971e41236035c0cd05b1dd11903143c263832b6c6ad3ccf4ff84d8
MD5 d0f2b65aa8481dc1512ca8599eb5a25b
BLAKE2b-256 f3c40bc10ab5b7d0fdfba0db316e1e1254b416c4f874a4a6b8584966b614ea78

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.8

File hashes

Hashes for vpython-7.6.2rc9-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 171ba43046b359a6328ff7846612932fbf90c79a3c2281350684596453e18529
MD5 f206855eb19f9c0b9541cd1c97995ab6
BLAKE2b-256 f64c97835798968e3e33a7e4ebf688d646daa2bc311663b5100138308a48443b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.2rc9-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.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.13

File hashes

Hashes for vpython-7.6.2rc9-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b514189a1812c61acd192e759c76f38792050c6280ef7561a37110765cccaa23
MD5 ffb2651111f9f0de9078147aab7a26b0
BLAKE2b-256 3f80f88eb05b7ba1344f82d4c1f6abf3d1db9697e712dff6d761916e17053d20

See more details on using hashes here.

Supported by

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